]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.dg/pr61692.c
replace ISL with isl
[thirdparty/gcc.git] / gcc / testsuite / gcc.dg / pr61692.c
1 /* PR 61692 */
2 /* { dg-do compile } */
3
4 /* Check for ice when exceededing the max #
5 of parameters to inline asm. */
6
7 int Labels()
8 {
9 label01: label02: label03: label04: label05:
10 label06: label07: label08: label09: label10:
11 label11: label12: label13: label14: label15:
12 label16: label17: label18: label19: label20:
13 label21: label22: label23: label24: label25:
14 label26: label27: label28: label29: label30:
15 label31:
16
17 __asm__ goto ("" /* Works. */
18 : /* no outputs */
19 : /* no inputs */
20 : /* no clobbers */
21 : label01, label02, label03, label04, label05,
22 label06, label07, label08, label09, label10,
23 label11, label12, label13, label14, label15,
24 label16, label17, label18, label19, label20,
25 label21, label22, label23, label24, label25,
26 label26, label27, label28, label29, label30);
27
28 __asm__ goto ("" /* { dg-error "more than 30 operands" } */
29 : /* no outputs */
30 : /* no inputs */
31 : /* no clobbers */
32 : label01, label02, label03, label04, label05,
33 label06, label07, label08, label09, label10,
34 label11, label12, label13, label14, label15,
35 label16, label17, label18, label19, label20,
36 label21, label22, label23, label24, label25,
37 label26, label27, label28, label29, label30,
38 label31);
39
40 return 0;
41 }
42
43 int Labels_and_Inputs()
44 {
45 int b01, b02, b03, b04, b05, b06, b07, b08, b09, b10;
46 int b11, b12, b13, b14, b15, b16, b17, b18, b19, b20;
47 int b21, b22, b23, b24, b25, b26, b27, b28, b29, b30;
48 int b31;
49
50 label01: label02: label03: label04: label05:
51 label06: label07: label08: label09: label10:
52 label11: label12: label13: label14: label15:
53 label16: label17: label18: label19: label20:
54 label21: label22: label23: label24: label25:
55 label26: label27: label28: label29: label30:
56 label31:
57
58 b01 = b02 = b03 = b04 = b05 = b06 = b07 = b08 = b09 = b10 = 0;
59 b11 = b12 = b13 = b14 = b15 = b16 = b17 = b18 = b19 = b20 = 0;
60 b21 = b22 = b23 = b24 = b25 = b26 = b27 = b28 = b29 = b30 = 0;
61 b31 = 0;
62
63 __asm__ goto ("" /* Works. */
64 : /* no outputs */
65 : "m" (b01), "m" (b02), "m" (b03), "m" (b04), "m" (b05),
66 "m" (b06), "m" (b07), "m" (b08), "m" (b09), "m" (b10),
67 "m" (b11), "m" (b12), "m" (b13), "m" (b14), "m" (b15),
68 "m" (b16), "m" (b17), "m" (b18), "m" (b19), "m" (b20),
69 "m" (b21), "m" (b22), "m" (b23), "m" (b24), "m" (b25),
70 "m" (b26), "m" (b27), "m" (b28), "m" (b29)
71 : /* no clobbers */
72 : label01);
73
74 __asm__ goto ("" /* { dg-error "more than 30 operands" } */
75 : /* no outputs */
76 : "m" (b01), "m" (b02), "m" (b03), "m" (b04), "m" (b05),
77 "m" (b06), "m" (b07), "m" (b08), "m" (b09), "m" (b10),
78 "m" (b11), "m" (b12), "m" (b13), "m" (b14), "m" (b15),
79 "m" (b16), "m" (b17), "m" (b18), "m" (b19), "m" (b20),
80 "m" (b21), "m" (b22), "m" (b23), "m" (b24), "m" (b25),
81 "m" (b26), "m" (b27), "m" (b28), "m" (b29), "m" (b30)
82 : /* no clobbers */
83 : label01);
84
85 return 0;
86 }
87
88 int Outputs()
89 {
90 int b01, b02, b03, b04, b05, b06, b07, b08, b09, b10;
91 int b11, b12, b13, b14, b15, b16, b17, b18, b19, b20;
92 int b21, b22, b23, b24, b25, b26, b27, b28, b29, b30;
93 int b31;
94
95 /* Outputs. */
96 __asm__ volatile ("" /* Works. */
97 : "=m" (b01), "=m" (b02), "=m" (b03), "=m" (b04), "=m" (b05),
98 "=m" (b06), "=m" (b07), "=m" (b08), "=m" (b09), "=m" (b10),
99 "=m" (b11), "=m" (b12), "=m" (b13), "=m" (b14), "=m" (b15),
100 "=m" (b16), "=m" (b17), "=m" (b18), "=m" (b19), "=m" (b20),
101 "=m" (b21), "=m" (b22), "=m" (b23), "=m" (b24), "=m" (b25),
102 "=m" (b26), "=m" (b27), "=m" (b28), "=m" (b29), "=m" (b30));
103
104 __asm__ volatile ("" /* { dg-error "more than 30 operands" } */
105 : "=m" (b01), "=m" (b02), "=m" (b03), "=m" (b04), "=m" (b05),
106 "=m" (b06), "=m" (b07), "=m" (b08), "=m" (b09), "=m" (b10),
107 "=m" (b11), "=m" (b12), "=m" (b13), "=m" (b14), "=m" (b15),
108 "=m" (b16), "=m" (b17), "=m" (b18), "=m" (b19), "=m" (b20),
109 "=m" (b21), "=m" (b22), "=m" (b23), "=m" (b24), "=m" (b25),
110 "=m" (b26), "=m" (b27), "=m" (b28), "=m" (b29), "=m" (b30),
111 "=m" (b31));
112
113 return 0;
114 }
115
116 int Inputs()
117 {
118 int b01, b02, b03, b04, b05, b06, b07, b08, b09, b10;
119 int b11, b12, b13, b14, b15, b16, b17, b18, b19, b20;
120 int b21, b22, b23, b24, b25, b26, b27, b28, b29, b30;
121 int b31;
122
123 b01 = b02 = b03 = b04 = b05 = b06 = b07 = b08 = b09 = b10 = 0;
124 b11 = b12 = b13 = b14 = b15 = b16 = b17 = b18 = b19 = b20 = 0;
125 b21 = b22 = b23 = b24 = b25 = b26 = b27 = b28 = b29 = b30 = 0;
126 b31 = 0;
127
128 __asm__ volatile ("" /* Works. */
129 : /* no outputs */
130 : "m" (b01), "m" (b02), "m" (b03), "m" (b04), "m" (b05),
131 "m" (b06), "m" (b07), "m" (b08), "m" (b09), "m" (b10),
132 "m" (b11), "m" (b12), "m" (b13), "m" (b14), "m" (b15),
133 "m" (b16), "m" (b17), "m" (b18), "m" (b19), "m" (b20),
134 "m" (b21), "m" (b22), "m" (b23), "m" (b24), "m" (b25),
135 "m" (b26), "m" (b27), "m" (b28), "m" (b29), "m" (b30));
136
137 __asm__ volatile ("" /* { dg-error "more than 30 operands" } */
138 : /* no outputs */
139 : "m" (b01), "m" (b02), "m" (b03), "m" (b04), "m" (b05),
140 "m" (b06), "m" (b07), "m" (b08), "m" (b09), "m" (b10),
141 "m" (b11), "m" (b12), "m" (b13), "m" (b14), "m" (b15),
142 "m" (b16), "m" (b17), "m" (b18), "m" (b19), "m" (b20),
143 "m" (b21), "m" (b22), "m" (b23), "m" (b24), "m" (b25),
144 "m" (b26), "m" (b27), "m" (b28), "m" (b29), "m" (b30),
145 "m" (b31));
146
147 return 0;
148 }
149
150 int Input_Output()
151 {
152 int b01, b02, b03, b04, b05, b06, b07, b08, b09, b10;
153 int b11, b12, b13, b14, b15, b16, b17, b18, b19, b20;
154 int b21, b22, b23, b24, b25, b26, b27, b28, b29, b30;
155 int b31;
156
157 b01 = b02 = b03 = b04 = b05 = b06 = b07 = b08 = b09 = b10 = 0;
158 b11 = b12 = b13 = b14 = b15 = b16 = b17 = b18 = b19 = b20 = 0;
159 b21 = b22 = b23 = b24 = b25 = b26 = b27 = b28 = b29 = b30 = 0;
160 b31 = 0;
161
162 __asm__ volatile ("" /* Works. */
163 : "+m" (b01), "+m" (b02), "+m" (b03), "+m" (b04), "+m" (b05),
164 "+m" (b06), "+m" (b07), "+m" (b08), "+m" (b09), "+m" (b10),
165 "+m" (b11), "+m" (b12), "+m" (b13), "+m" (b14), "+m" (b15));
166
167 __asm__ volatile ("" /* { dg-error "more than 30 operands" } */
168 : "+m" (b01), "+m" (b02), "+m" (b03), "+m" (b04), "+m" (b05),
169 "+m" (b06), "+m" (b07), "+m" (b08), "+m" (b09), "+m" (b10),
170 "+m" (b11), "+m" (b12), "+m" (b13), "+m" (b14), "+m" (b15),
171 "+m" (b16));
172
173 return 0;
174 }