1 /* { dg-do compile } */
2 /* { dg-require-effective-target lp64 } */
3 /* { dg-options "-O3" } */
4
5 long long f1(void)
6 {
7 return 0xffff6666;
8 }
9
10 int f3(void)
11 {
12 return 0xffff6666;
13 }
14
15
16 long f2(void)
17 {
18 return 0x11110000ffff6666;
19 }
20
21 long f4(void)
22 {
23 return 0x11110001ffff6666;
24 }
25
26 long f5(void)
27 {
28 return 0x111100001ff6666;
29 }
30
31 long f6(void)
32 {
33 return 0x00001111ffff6666;
34 }
35
36 long f7(void)
37 {
38 return 0x000011116666ffff;
39 }
40
41 long f8(void)
42 {
43 return 0x0f0011116666ffff;
44 }
45
46 /* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, -39322" 1 } } */
47 /* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 4294927974" 3 } } */
48 /* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 1718026239" 1 } } */
49 /* { dg-final { scan-assembler-times "mov\tx\[0-9\]+, -2576941057" 1 } } */
50 /* { dg-final { scan-assembler-times "mov\tx\[0-9\]+, -39322" 1 } } */
51 /* { dg-final { scan-assembler-times "mov\tx\[0-9\]+, 26214" 1 } } */
52 /* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0xf00, lsl 48" 1 } } */
53 /* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1111, lsl 48" 2 } } */
54 /* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1000, lsl 32" 1 } } */
55 /* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1111, lsl 32" 3 } } */
56 /* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x111, lsl 48" 1 } } */
57 /* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1ff, lsl 16" 1 } } */
58 /* { dg-final { scan-assembler-times "movk\tx\[0-9\]+, 0x1, lsl 32" 1 } } */
59