1/* { dg-require-effective-target int32plus } */ 2#define F 140 3#define T 13 4 5feq (int x, int y) 6{ 7 if (x == y) 8 return T; 9 else 10 return F; 11} 12 13fne (int x, int y) 14{ 15 if (x != y) 16 return T; 17 else 18 return F; 19} 20 21flt (int x, int y) 22{ 23 if (x < y) 24 return T; 25 else 26 return F; 27} 28 29fge (int x, int y) 30{ 31 if (x >= y) 32 return T; 33 else 34 return F; 35} 36 37fgt (int x, int y) 38{ 39 if (x > y) 40 return T; 41 else 42 return F; 43} 44 45fle (int x, int y) 46{ 47 if (x <= y) 48 return T; 49 else 50 return F; 51} 52 53fltu (unsigned int x, unsigned int y) 54{ 55 if (x < y) 56 return T; 57 else 58 return F; 59} 60 61fgeu (unsigned int x, unsigned int y) 62{ 63 if (x >= y) 64 return T; 65 else 66 return F; 67} 68 69fgtu (unsigned int x, unsigned int y) 70{ 71 if (x > y) 72 return T; 73 else 74 return F; 75} 76 77fleu (unsigned int x, unsigned int y) 78{ 79 if (x <= y) 80 return T; 81 else 82 return F; 83} 84 85unsigned int args[] = 86{ 87 0L, 88 1L, 89 -1L, 90 0x7fffffffL, 91 0x80000000L, 92 0x80000001L, 93 0x1A3F2373L, 94 0x93850E92L 95}; 96 97int correct_results[] = 98{ 99 T, F, F, T, F, T, F, T, F, T, 100 F, T, T, F, F, T, T, F, F, T, 101 F, T, F, T, T, F, T, F, F, T, 102 F, T, T, F, F, T, T, F, F, T, 103 F, T, F, T, T, F, T, F, F, T, 104 F, T, F, T, T, F, T, F, F, T, 105 F, T, T, F, F, T, T, F, F, T, 106 F, T, F, T, T, F, T, F, F, T, 107 F, T, F, T, T, F, F, T, T, F, 108 T, F, F, T, F, T, F, T, F, T, 109 F, T, F, T, T, F, T, F, F, T, 110 F, T, T, F, F, T, T, F, F, T, 111 F, T, F, T, T, F, T, F, F, T, 112 F, T, F, T, T, F, T, F, F, T, 113 F, T, T, F, F, T, T, F, F, T, 114 F, T, F, T, T, F, T, F, F, T, 115 F, T, T, F, F, T, F, T, T, F, 116 F, T, T, F, F, T, F, T, T, F, 117 T, F, F, T, F, T, F, T, F, T, 118 F, T, T, F, F, T, F, T, T, F, 119 F, T, F, T, T, F, F, T, T, F, 120 F, T, F, T, T, F, F, T, T, F, 121 F, T, T, F, F, T, F, T, T, F, 122 F, T, F, T, T, F, F, T, T, F, 123 F, T, F, T, T, F, F, T, T, F, 124 F, T, F, T, T, F, F, T, T, F, 125 F, T, F, T, T, F, T, F, F, T, 126 T, F, F, T, F, T, F, T, F, T, 127 F, T, F, T, T, F, T, F, F, T, 128 F, T, F, T, T, F, T, F, F, T, 129 F, T, F, T, T, F, F, T, T, F, 130 F, T, F, T, T, F, T, F, F, T, 131 F, T, T, F, F, T, F, T, T, F, 132 F, T, T, F, F, T, F, T, T, F, 133 F, T, T, F, F, T, T, F, F, T, 134 F, T, T, F, F, T, F, T, T, F, 135 T, F, F, T, F, T, F, T, F, T, 136 F, T, T, F, F, T, T, F, F, T, 137 F, T, T, F, F, T, F, T, T, F, 138 F, T, T, F, F, T, T, F, F, T, 139 F, T, T, F, F, T, F, T, T, F, 140 F, T, T, F, F, T, F, T, T, F, 141 F, T, T, F, F, T, T, F, F, T, 142 F, T, T, F, F, T, F, T, T, F, 143 F, T, F, T, T, F, F, T, T, F, 144 T, F, F, T, F, T, F, T, F, T, 145 F, T, T, F, F, T, F, T, T, F, 146 F, T, T, F, F, T, T, F, F, T, 147 F, T, F, T, T, F, F, T, T, F, 148 F, T, F, T, T, F, F, T, T, F, 149 F, T, F, T, T, F, T, F, F, T, 150 F, T, T, F, F, T, T, F, F, T, 151 F, T, F, T, T, F, T, F, F, T, 152 F, T, F, T, T, F, T, F, F, T, 153 T, F, F, T, F, T, F, T, F, T, 154 F, T, F, T, T, F, T, F, F, T, 155 F, T, T, F, F, T, F, T, T, F, 156 F, T, T, F, F, T, F, T, T, F, 157 F, T, T, F, F, T, T, F, F, T, 158 F, T, T, F, F, T, F, T, T, F, 159 F, T, F, T, T, F, F, T, T, F, 160 F, T, F, T, T, F, F, T, T, F, 161 F, T, T, F, F, T, F, T, T, F, 162 T, F, F, T, F, T, F, T, F, T 163}; 164 165int 166main (void) 167{ 168 int i, j, *res = correct_results; 169 170 for (i = 0; i < 8; i++) 171 { 172 unsigned int arg0 = args[i]; 173 for (j = 0; j < 8; j++) 174 { 175 unsigned int arg1 = args[j]; 176 177 if (feq (arg0, arg1) != *res++) 178 abort (); 179 if (fne (arg0, arg1) != *res++) 180 abort (); 181 if (flt (arg0, arg1) != *res++) 182 abort (); 183 if (fge (arg0, arg1) != *res++) 184 abort (); 185 if (fgt (arg0, arg1) != *res++) 186 abort (); 187 if (fle (arg0, arg1) != *res++) 188 abort (); 189 if (fltu (arg0, arg1) != *res++) 190 abort (); 191 if (fgeu (arg0, arg1) != *res++) 192 abort (); 193 if (fgtu (arg0, arg1) != *res++) 194 abort (); 195 if (fleu (arg0, arg1) != *res++) 196 abort (); 197 } 198 } 199 exit (0); 200} 201