modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-3.c (about) 1 /* Copyright (C) 2004 Free Software Foundation. 2 3 Test for composite comparison always true/false optimization. 4 5 Written by Paolo Bonzini, 26th May 2004. */ 6 7 extern void link_error0 (); 8 extern void link_error1 (); 9 10 void 11 test1 (float x, float y) 12 { 13 if ((x==y) && (x!=y)) 14 link_error0(); 15 } 16 17 void 18 test2 (float x, float y) 19 { 20 if ((x<y) && (x>y)) 21 link_error0(); 22 } 23 24 void 25 test3 (float x, float y) 26 { 27 if ((x<y) && (y<x)) 28 link_error0(); 29 } 30 31 void 32 test4 (float x, float y) 33 { 34 if ((x==y) || (x!=y)) 35 { 36 } 37 else 38 link_error1 (); 39 } 40 41 void 42 test5 (float x, float y) 43 { 44 if (__builtin_isunordered (x, y) || (x>=y) || (x<y)) 45 { 46 } 47 else 48 link_error1 (); 49 } 50 51 void 52 test6 (float x, float y) 53 { 54 if (__builtin_isunordered (y, x) || (x<=y) || (y<x)) 55 { 56 } 57 else 58 link_error1 (); 59 } 60 61 void 62 test7 (float x, float y) 63 { 64 if (__builtin_isunordered (x, y) || !__builtin_isunordered (x, y)) 65 { 66 } 67 else 68 link_error1 (); 69 } 70 71 void 72 all_tests (float x, float y) 73 { 74 test1 (x, y); 75 test2 (x, y); 76 test3 (x, y); 77 test4 (x, y); 78 test5 (x, y); 79 test6 (x, y); 80 test7 (x, y); 81 } 82 83 int 84 main () 85 { 86 all_tests (0, 0); 87 all_tests (1, 2); 88 all_tests (4, 3); 89 90 return 0; 91 } 92 93 #ifndef __OPTIMIZE__ 94 void link_error0() {} 95 void link_error1() {} 96 #endif /* ! __OPTIMIZE__ */ 97