(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr82580.c
       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);
      13  int f0 (U x, U y) { return x == y; }
      14  int f1 (U x, U y) { return x != y; }
      15  int f2 (U x, U y) { return x > y; }
      16  int f3 (U x, U y) { return x >= y; }
      17  int f4 (U x, U y) { return x < y; }
      18  int f5 (U x, U y) { return x <= y; }
      19  int f6 (S x, S y) { return x == y; }
      20  int f7 (S x, S y) { return x != y; }
      21  int f8 (S x, S y) { return x > y; }
      22  int f9 (S x, S y) { return x >= y; }
      23  int f10 (S x, S y) { return x < y; }
      24  int f11 (S x, S y) { return x <= y; }
      25  void f12 (U x, U y) { if (x == y) bar (); }
      26  void f13 (U x, U y) { if (x != y) bar (); }
      27  void f14 (U x, U y) { if (x > y) bar (); }
      28  void f15 (U x, U y) { if (x >= y) bar (); }
      29  void f16 (U x, U y) { if (x < y) bar (); }
      30  void f17 (U x, U y) { if (x <= y) bar (); }
      31  void f18 (S x, S y) { if (x == y) bar (); }
      32  void f19 (S x, S y) { if (x != y) bar (); }
      33  void f20 (S x, S y) { if (x > y) bar (); }
      34  void f21 (S x, S y) { if (x >= y) bar (); }
      35  void f22 (S x, S y) { if (x < y) bar (); }
      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 } } } */