1 /* Ensure split constants can use replicated patterns.  */
2 /* { dg-options "-mthumb -O2" } */
3 /* { dg-require-effective-target arm_thumb2_ok } */
4 
5 int
foo1(int a)6 foo1 (int a)
7 {
8   return a + 0xfe00fe01;
9 }
10 
11 /* { dg-final { scan-assembler "add.*#-33489408" } } */
12 /* { dg-final { scan-assembler "add.*#1" } } */
13 
14 int
foo2(int a)15 foo2 (int a)
16 {
17   return a + 0xdd01dd00;
18 }
19 
20 /* { dg-final { scan-assembler "add.*#-587145984" } } */
21 /* { dg-final { scan-assembler "add.*#65536" } } */
22 
23 int
foo3(int a)24 foo3 (int a)
25 {
26   return a + 0x00443344;
27 }
28 
29 /* { dg-final { scan-assembler "add.*#4456516" } } */
30 /* { dg-final { scan-assembler "add.*#13056" } } */
31 
32 int
foo4(int a)33 foo4 (int a)
34 {
35   return a + 0x77330033;
36 }
37 
38 /* { dg-final { scan-assembler "add.*#1996488704" } } */
39 /* { dg-final { scan-assembler "add.*#3342387" } } */
40 
41 int
foo5(int a)42 foo5 (int a)
43 {
44   return a + 0x11221122;
45 }
46 
47 /* { dg-final { scan-assembler "add.*#285217024" } } */
48 /* { dg-final { scan-assembler "add.*#2228258" } } */
49 
50 int
foo6(int a)51 foo6 (int a)
52 {
53   return a + 0x66666677;
54 }
55 
56 /* { dg-final { scan-assembler "add.*#1717986918" } } */
57 /* { dg-final { scan-assembler "add.*#17" } } */
58 
59 int
foo7(int a)60 foo7 (int a)
61 {
62   return a + 0x99888888;
63 }
64 
65 /* { dg-final { scan-assembler "add.*#-2004318072" } } */
66 /* { dg-final { scan-assembler "add.*#285212672" } } */
67 
68 int
foo8(int a)69 foo8 (int a)
70 {
71   return a + 0xdddddfff;
72 }
73 
74 /* { dg-final { scan-assembler "add.*#-572662307" } } */
75 /* { dg-final { scan-assembler "addw.*#546" } } */
76