(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
pr103316.c
       1  /* { dg-do compile } */
       2  /* { dg-require-effective-target power10_ok } */
       3  /* { dg-require-effective-target int128 } */
       4  /* { dg-options "-mdejagnu-cpu=power10 -O2" } */
       5  
       6  vector bool __int128
       7  test_eq (vector signed __int128 a, vector signed __int128 b)
       8  {
       9    return a == b;
      10  }
      11  
      12  vector bool __int128
      13  test_ne (vector signed __int128 a, vector signed __int128 b)
      14  {
      15    return a != b;
      16  }
      17  
      18  vector bool __int128
      19  test_gt (vector signed __int128 a, vector signed __int128 b)
      20  {
      21    return a > b;
      22  }
      23  
      24  vector bool __int128
      25  test_ge (vector signed __int128 a, vector signed __int128 b)
      26  {
      27    return a >= b;
      28  }
      29  
      30  vector bool __int128
      31  test_lt (vector signed __int128 a, vector signed __int128 b)
      32  {
      33    return a < b;
      34  }
      35  
      36  vector bool __int128
      37  test_le (vector signed __int128 a, vector signed __int128 b)
      38  {
      39    return a <= b;
      40  }
      41  
      42  vector bool __int128
      43  testu_eq (vector unsigned __int128 a, vector unsigned __int128 b)
      44  {
      45    return a == b;
      46  }
      47  
      48  vector bool __int128
      49  testu_ne (vector unsigned __int128 a, vector unsigned __int128 b)
      50  {
      51    return a != b;
      52  }
      53  
      54  vector bool __int128
      55  testu_gt (vector unsigned __int128 a, vector unsigned __int128 b)
      56  {
      57    return a > b;
      58  }
      59  
      60  vector bool __int128
      61  testu_ge (vector unsigned __int128 a, vector unsigned __int128 b)
      62  {
      63    return a >= b;
      64  }
      65  
      66  vector bool __int128
      67  testu_lt (vector unsigned __int128 a, vector unsigned __int128 b)
      68  {
      69    return a < b;
      70  }
      71  
      72  vector bool __int128
      73  testu_le (vector unsigned __int128 a, vector unsigned __int128 b)
      74  {
      75    return a <= b;
      76  }
      77  
      78  /* { dg-final { scan-assembler-times "vcmpequq" 4 } } */
      79  /* { dg-final { scan-assembler-times "vcmpgtsq" 4 } } */
      80  /* { dg-final { scan-assembler-times "vcmpgtuq" 4 } } */
      81  /* { dg-final { scan-assembler-times "xxlnor" 6 } } */