/* Ensure 32-bit ALU instructions are not generated if -malu32 is not enabled. */ /* { dg-do compile } */ /* { dg-options "-mno-alu32" } */ int foo (int a, int b) { a += 1; b += a; b -= 5; a -= a; a *= 2; b *= a; a |= 0xfafa; b |= a; b &= 0x00ffff00; b &= a; a <<= 2; b <<= a; b >>= 5; a >>= b; int c = a; int d = 5; d ^= a; c ^= 0xe5e5e5e5; c = -c; unsigned int x = a; unsigned int y = b; x /= 3; y /= x; x %= 4; y %= x; return a + b - c + d - x + y; } /* { dg-final { scan-assembler-times "mov32\t0" 0 } } */ /* { dg-final { scan-assembler-times "add32\t0" 0 } } */ /* { dg-final { scan-assembler-times "sub32\t0" 0 } } */ /* { dg-final { scan-assembler-times "mul32\t0" 0 } } */ /* { dg-final { scan-assembler-times "div32\t0" 0 } } */ /* { dg-final { scan-assembler-times "mod32\t0" 0 } } */ /* { dg-final { scan-assembler-times "neg32\t0" 0 } } */ /* { dg-final { scan-assembler-times "and32\t0" 0 } } */ /* { dg-final { scan-assembler-times "or32\t0" 0 } } */ /* { dg-final { scan-assembler-times "xor32\t0" 0 } } */ /* { dg-final { scan-assembler-times "rsh32\t0" 0 } } */ /* { dg-final { scan-assembler-times "lsh32\t0" 0 } } */ /* { dg-final { scan-assembler-times "arsh32\t0" 0 } } */