(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr50310-2.c
       1  /* PR target/50310 */
       2  /* { dg-do run } */
       3  /* { dg-options "-O3" } */
       4  /* { dg-options "-O3 -mavx" { target avx_runtime } } */
       5  
       6  double s1[4], s2[4], s3[64];
       7  
       8  int
       9  main (void)
      10  {
      11    int i;
      12    asm volatile ("" : : : "memory");
      13    for (i = 0; i < 4; i++)
      14      s3[0 * 4 + i] = __builtin_isgreater (s1[i], s2[i]) ? -1.0 : 0.0;
      15    for (i = 0; i < 4; i++)
      16      s3[1 * 4 + i] = (!__builtin_isgreater (s1[i], s2[i])) ? -1.0 : 0.0;
      17    for (i = 0; i < 4; i++)
      18      s3[2 * 4 + i] = __builtin_isgreaterequal (s1[i], s2[i]) ? -1.0 : 0.0;
      19    for (i = 0; i < 4; i++)
      20      s3[3 * 4 + i] = (!__builtin_isgreaterequal (s1[i], s2[i])) ? -1.0 : 0.0;
      21    for (i = 0; i < 4; i++)
      22      s3[4 * 4 + i] = __builtin_isless (s1[i], s2[i]) ? -1.0 : 0.0;
      23    for (i = 0; i < 4; i++)
      24      s3[5 * 4 + i] = (!__builtin_isless (s1[i], s2[i])) ? -1.0 : 0.0;
      25    for (i = 0; i < 4; i++)
      26      s3[6 * 4 + i] = __builtin_islessequal (s1[i], s2[i]) ? -1.0 : 0.0;
      27    for (i = 0; i < 4; i++)
      28      s3[7 * 4 + i] = (!__builtin_islessequal (s1[i], s2[i])) ? -1.0 : 0.0;
      29    for (i = 0; i < 4; i++)
      30      s3[8 * 4 + i] = __builtin_islessgreater (s1[i], s2[i]) ? -1.0 : 0.0;
      31    for (i = 0; i < 4; i++)
      32      s3[9 * 4 + i] = (!__builtin_islessgreater (s1[i], s2[i])) ? -1.0 : 0.0;
      33    for (i = 0; i < 4; i++)
      34      s3[10 * 4 + i] = __builtin_isunordered (s1[i], s2[i]) ? -1.0 : 0.0;
      35    for (i = 0; i < 4; i++)
      36      s3[11 * 4 + i] = (!__builtin_isunordered (s1[i], s2[i])) ? -1.0 : 0.0;
      37    for (i = 0; i < 4; i++)
      38      s3[12 * 4 + i] = s1[i] > s2[i] ? -1.0 : 0.0;
      39    for (i = 0; i < 4; i++)
      40      s3[13 * 4 + i] = s1[i] >= s2[i] ? -1.0 : 0.0;
      41    for (i = 0; i < 4; i++)
      42      s3[14 * 4 + i] = s1[i] < s2[i] ? -1.0 : 0.0;
      43    for (i = 0; i < 4; i++)
      44      s3[15 * 4 + i] = s1[i] <= s2[i] ? -1.0 : 0.0;
      45    asm volatile ("" : : : "memory");
      46    return 0;
      47  }