2 /* { dg-options "-O2 --save-temps -fno-inline" } */
4 extern void abort (void);
5 typedef unsigned int u32
;
8 ngc_si (u32 a
, u32 b
, u32 c
, u32 d
)
14 typedef unsigned long long u64
;
17 ngc_si_tst (u64 a
, u32 b
, u32 c
, u32 d
)
24 ngc_di (u64 a
, u64 b
, u64 c
, u64 d
)
36 x
= ngc_si (29, 4, 5, 4);
40 x
= ngc_si (1024, 2, 20, 13);
44 y
= ngc_si_tst (0x130000029ll
, 32, 50, 12);
48 y
= ngc_si_tst (0x5000500050005ll
, 21, 2, 14);
52 y
= ngc_di (0x130000029ll
, 0x320000004ll
, 0x505050505ll
, 0x123123123ll
);
53 if (y
!= 0xfffffffcdffffffc)
56 y
= ngc_di (0x5000500050005ll
,
57 0x2111211121112ll
, 0x0000000002020ll
, 0x1414575046477ll
);
58 if (y
!= 0xfffdeeedeeedeeed)
64 /* { dg-final { scan-assembler-times "ngc\tw\[0-9\]+, w\[0-9\]+" 2 } } */
65 /* { dg-final { scan-assembler-times "ngc\tx\[0-9\]+, x\[0-9\]+" 1 } } */