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

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