1 /* PR target/82580 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2" } */
4 
5 #ifdef __SIZEOF_INT128__
6 typedef unsigned __int128 U;
7 typedef signed __int128 S;
8 #else
9 typedef unsigned long long U;
10 typedef signed long long S;
11 #endif
12 void bar (void);
f0(U x,U y)13 int f0 (U x, U y) { return x == y; }
f1(U x,U y)14 int f1 (U x, U y) { return x != y; }
f2(U x,U y)15 int f2 (U x, U y) { return x > y; }
f3(U x,U y)16 int f3 (U x, U y) { return x >= y; }
f4(U x,U y)17 int f4 (U x, U y) { return x < y; }
f5(U x,U y)18 int f5 (U x, U y) { return x <= y; }
f6(S x,S y)19 int f6 (S x, S y) { return x == y; }
f7(S x,S y)20 int f7 (S x, S y) { return x != y; }
f8(S x,S y)21 int f8 (S x, S y) { return x > y; }
f9(S x,S y)22 int f9 (S x, S y) { return x >= y; }
f10(S x,S y)23 int f10 (S x, S y) { return x < y; }
f11(S x,S y)24 int f11 (S x, S y) { return x <= y; }
f12(U x,U y)25 void f12 (U x, U y) { if (x == y) bar (); }
f13(U x,U y)26 void f13 (U x, U y) { if (x != y) bar (); }
f14(U x,U y)27 void f14 (U x, U y) { if (x > y) bar (); }
f15(U x,U y)28 void f15 (U x, U y) { if (x >= y) bar (); }
f16(U x,U y)29 void f16 (U x, U y) { if (x < y) bar (); }
f17(U x,U y)30 void f17 (U x, U y) { if (x <= y) bar (); }
f18(S x,S y)31 void f18 (S x, S y) { if (x == y) bar (); }
f19(S x,S y)32 void f19 (S x, S y) { if (x != y) bar (); }
f20(S x,S y)33 void f20 (S x, S y) { if (x > y) bar (); }
f21(S x,S y)34 void f21 (S x, S y) { if (x >= y) bar (); }
f22(S x,S y)35 void f22 (S x, S y) { if (x < y) bar (); }
f23(S x,S y)36 void f23 (S x, S y) { if (x <= y) bar (); }
37 
38 /* { dg-final { scan-assembler-times {\msbb} 16 } } */
39 /* { dg-final { scan-assembler-not {\mmovzb} { target lp64 } } } */
40