modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/cmpsi-2.c (about)

     1  /* { dg-require-effective-target int32plus } */
     2  #define F 140
     3  #define T 13
     4  
     5  feq (int x, int y)
     6  {
     7    if (x == y)
     8      return T;
     9    else
    10      return F;
    11  }
    12  
    13  fne (int x, int y)
    14  {
    15    if (x != y)
    16      return T;
    17    else
    18      return F;
    19  }
    20  
    21  flt (int x, int y)
    22  {
    23    if (x < y)
    24      return T;
    25    else
    26      return F;
    27  }
    28  
    29  fge (int x, int y)
    30  {
    31    if (x >= y)
    32      return T;
    33    else
    34      return F;
    35  }
    36  
    37  fgt (int x, int y)
    38  {
    39    if (x > y)
    40      return T;
    41    else
    42      return F;
    43  }
    44  
    45  fle (int x, int y)
    46  {
    47    if (x <= y)
    48      return T;
    49    else
    50      return F;
    51  }
    52  
    53  fltu (unsigned int x, unsigned int y)
    54  {
    55    if (x < y)
    56      return T;
    57    else
    58      return F;
    59  }
    60  
    61  fgeu (unsigned int x, unsigned int y)
    62  {
    63    if (x >= y)
    64      return T;
    65    else
    66      return F;
    67  }
    68  
    69  fgtu (unsigned int x, unsigned int y)
    70  {
    71    if (x > y)
    72      return T;
    73    else
    74      return F;
    75  }
    76  
    77  fleu (unsigned int x, unsigned int y)
    78  {
    79    if (x <= y)
    80      return T;
    81    else
    82      return F;
    83  }
    84  
    85  unsigned int args[] =
    86  {
    87    0L,
    88    1L,
    89    -1L,
    90    0x7fffffffL,
    91    0x80000000L,
    92    0x80000001L,
    93    0x1A3F2373L,
    94    0x93850E92L
    95  };
    96  
    97  int 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  
   165  int
   166  main (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  }