1 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
2 /* { dg-options "-g" } */
6 __attribute__((noclone
, noinline
)) long
9 long f
= (x
<< 12) | (x
>> (64 - 12));
11 asm volatile ("" : "+r" (f
));
12 vv
++; /* { dg-final { gdb-test 12 "g" "f" } } */
16 __attribute__((noclone
, noinline
)) long
17 f2 (unsigned long x
, int y
)
19 long f
= (x
<< y
) | (x
>> (64 - y
));
21 asm volatile ("" : "+r" (f
));
22 vv
++; /* { dg-final { gdb-test 22 "g" "f" } } */
26 __attribute__((noclone
, noinline
)) long
27 f3 (unsigned long x
, int y
)
29 long f
= (x
>> y
) | (x
<< (64 - y
));
31 asm volatile ("" : "+r" (f
));
32 vv
++; /* { dg-final { gdb-test 32 "g" "f" } } */
36 __attribute__((noclone
, noinline
)) unsigned int
39 unsigned int f
= (x
<< 12) | (x
>> (32 - 12));
41 asm volatile ("" : "+r" (f
));
42 vv
++; /* { dg-final { gdb-test 42 "g" "f" } } */
46 __attribute__((noclone
, noinline
)) unsigned int
47 f5 (unsigned int x
, int y
)
49 unsigned int f
= (x
<< y
) | (x
>> (32 - y
));
51 asm volatile ("" : "+r" (f
));
52 vv
++; /* { dg-final { gdb-test 52 "g" "f" } } */
56 __attribute__((noclone
, noinline
)) unsigned int
57 f6 (unsigned int x
, int y
)
59 unsigned int f
= (x
>> y
) | (x
<< (32 - y
));
61 asm volatile ("" : "+r" (f
));
62 vv
++; /* { dg-final { gdb-test 62 "g" "f" } } */
69 f1 (0x123456789abcde0fUL
);
70 f2 (0x123456789abcde0fUL
, 18);
71 f3 (0x123456789abcde0fUL
, 17);