2 /* { dg-options "-O2 --save-temps -fno-inline" } */
4 extern void abort (void);
7 bics_si_test1 (int a
, int b
, int c
)
16 bics_si_test2 (int a
, int b
, int c
)
24 typedef long long s64
;
27 bics_di_test1 (s64 a
, s64 b
, s64 c
)
36 bics_di_test2 (s64 a
, s64 b
, s64 c
)
50 x
= bics_si_test1 (0xf00d, 0xf11f, 0);
54 x
= bics_si_test1 (0xf11f, 0xf00d, 0);
58 x
= bics_si_test2 (0xf00d, 0xf11f, 0);
62 x
= bics_si_test2 (0xf11f, 0xf00d, 0);
66 y
= bics_di_test1 (0x10001000f00dll
, 0x12341000f00dll
, 0ll);
67 if (y
!= 0x10001000f00dll
)
70 y
= bics_di_test1 (0x12341000f00dll
, 0x10001000f00dll
, 0ll);
74 y
= bics_di_test2 (0x10001000f00dll
, 0x12341000f00dll
, 0ll);
78 y
= bics_di_test2 (0x12341000f00dll
, 0x10001000f00dll
, 0ll);
79 if (y
!= 0x10001000f00dll
)
85 /* { dg-final { scan-assembler-times "bics\twzr, w\[0-9\]+, w\[0-9\]+" 2 } } */
86 /* { dg-final { scan-assembler-times "bics\txzr, x\[0-9\]+, x\[0-9\]+" 2 } } */
87 /* { dg-final { cleanup-saved-temps } } */