(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
s390/
arch13/
bitops-2.c
       1  /* { dg-compile } */
       2  
       3  /* Check if the instruction are being used also for compares.  */
       4  
       5  /* and with complement */
       6  
       7  int
       8  ncrk (int a, int b)
       9  {
      10    return (a & ~b) ? 23 : 42;
      11  }
      12  
      13  /* { dg-final { scan-assembler-times "\tncrk\t" 1 } } */
      14  
      15  int
      16  ncgrk (long long a, long long b)
      17  {
      18    return (a & ~b) ? 23 : 42;
      19  }
      20  
      21  /* { dg-final { scan-assembler-times "\tncgrk\t" 1 } } */
      22  
      23  /* or with complement */
      24  
      25  int
      26  ocrk (int a, int b)
      27  {
      28    return (a | ~b) ? 23 : 42;
      29  }
      30  
      31  /* { dg-final { scan-assembler-times "\tocrk\t" 1 } } */
      32  
      33  int
      34  ocgrk (long long a, long long b)
      35  {
      36    return (a | ~b) ? 23 : 42;
      37  }
      38  
      39  /* { dg-final { scan-assembler-times "\tocgrk\t" 1 } } */
      40  
      41  /* nand */
      42  
      43  int
      44  nnrk (int a, int b)
      45  {
      46    return ~(a & b) ? 23 : 42;
      47  }
      48  
      49  /* { dg-final { scan-assembler-times "\tnnrk\t" 1 } } */
      50  
      51  int
      52  nngrk (long long a, long long b)
      53  {
      54    return ~(a & b) ? 23 : 42;
      55  }
      56  
      57  /* { dg-final { scan-assembler-times "\tnngrk\t" 1 } } */
      58  
      59  /* nor */
      60  
      61  int
      62  nork (int a, int b)
      63  {
      64    return ~(a | b);
      65  }
      66  
      67  /* { dg-final { scan-assembler-times "\tnork\t" 1 } } */
      68  
      69  int
      70  nogrk (long long a, long long b)
      71  {
      72    return ~(a | b) ? 23 : 42;
      73  }
      74  
      75  /* { dg-final { scan-assembler-times "\tnogrk\t" 1 } } */
      76  
      77  /* nxor */
      78  
      79  int
      80  nxrk (int a, int b)
      81  {
      82    return ~(a ^ b) ? 23 : 42;
      83  }
      84  
      85  /* { dg-final { scan-assembler-times "\tnxrk\t" 1 } } */
      86  
      87  int
      88  nxgrk (long long a, long long b)
      89  {
      90    return ~(a ^ b) ? 23 : 42;
      91  }
      92  
      93  /* { dg-final { scan-assembler-times "\tnxgrk\t" 1 } } */