[PR81647][AARCH64] Fix handling of Unordered Comparisons in aarch64-simd.md
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / var_shift_mask_2.c
blobc1fe691820ba36ca9d9ae0e9789ac7e06bc2c93a
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
4 long long
5 f1 (long long x, int i)
8 return x >> (64 - i);
11 unsigned long long
12 f2 (unsigned long long x, unsigned int i)
15 return x >> (64 - i);
18 int
19 f3 (int x, int i)
22 return x >> (32 - i);
25 unsigned int
26 f4 (unsigned int x, unsigned int i)
29 return x >> (32 - i);
32 int
33 f5 (int x, int i)
35 return x << (32 - i);
38 long long
39 f6 (long long x, int i)
41 return x << (64 - i);
44 /* { dg-final { scan-assembler "lsl\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" } } */
45 /* { dg-final { scan-assembler "lsl\tx\[0-9\]+, x\[0-9\]+, x\[0-9\]+" } } */
46 /* { dg-final { scan-assembler "lsr\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" } } */
47 /* { dg-final { scan-assembler "lsr\tx\[0-9\]+, x\[0-9\]+, x\[0-9\]+" } } */
48 /* { dg-final { scan-assembler "asr\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" } } */
49 /* { dg-final { scan-assembler "asr\tx\[0-9\]+, x\[0-9\]+, x\[0-9\]+" } } */
50 /* { dg-final { scan-assembler-times "neg\tw\[0-9\]+, w\[0-9\]+" 6 } } */
51 /* { dg-final { scan-assembler-not "sub\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" } } */