(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
bpf/
alu-1.c
       1  /* Ensure 32-bit ALU instructions are not generated if -malu32 is
       2     not enabled.  */
       3  
       4  /* { dg-do compile } */
       5  /* { dg-options "-mno-alu32" } */
       6  
       7  int foo (int a, int b)
       8  {
       9    a += 1;
      10    b += a;
      11    b -= 5;
      12    a -= a;
      13  
      14    a *= 2;
      15    b *= a;
      16  
      17    a |= 0xfafa;
      18    b |= a;
      19    b &= 0x00ffff00;
      20    b &= a;
      21  
      22    a <<= 2;
      23    b <<= a;
      24    b >>= 5;
      25    a >>= b;
      26  
      27    int c = a;
      28    int d = 5;
      29  
      30    d ^= a;
      31    c ^= 0xe5e5e5e5;
      32    c = -c;
      33  
      34    unsigned int x = a;
      35    unsigned int y = b;
      36    x /= 3;
      37    y /= x;
      38    x %= 4;
      39    y %= x;
      40  
      41    return a + b - c + d - x + y;
      42  }
      43  
      44  /* { dg-final { scan-assembler-times "mov32\t0" 0 } } */
      45  /* { dg-final { scan-assembler-times "add32\t0" 0 } } */
      46  /* { dg-final { scan-assembler-times "sub32\t0" 0 } } */
      47  /* { dg-final { scan-assembler-times "mul32\t0" 0 } } */
      48  /* { dg-final { scan-assembler-times "div32\t0" 0 } } */
      49  /* { dg-final { scan-assembler-times "mod32\t0" 0 } } */
      50  /* { dg-final { scan-assembler-times "neg32\t0" 0 } } */
      51  /* { dg-final { scan-assembler-times "and32\t0" 0 } } */
      52  /* { dg-final { scan-assembler-times "or32\t0" 0 } } */
      53  /* { dg-final { scan-assembler-times "xor32\t0" 0 } } */
      54  /* { dg-final { scan-assembler-times "rsh32\t0" 0 } } */
      55  /* { dg-final { scan-assembler-times "lsh32\t0" 0 } } */
      56  /* { dg-final { scan-assembler-times "arsh32\t0" 0 } } */