1 /* { dg-require-effective-target int32plus } */
2 /* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
3 
4 #define type double
5 
6 type glob0, glob1;
7 
8 #define E0 ((type *)10000000)
9 #define reg0 r0
10 #define indreg0 (*p0)
11 #define imm0 22
12 #define limm0 ((type)((int)&glob0))
13 #define adr0 (*E0)
14 #define adrreg0 (p0[10000000])
15 #define adrx0 (E0[x0])
16 #define regx0 (p0[x0])
17 
18 #define E1 ((type *)(11111111 & ~(__alignof__ (type) - 1)))
19 #define reg1 r1
20 #define indreg1 (*p1)
21 #define imm1 33
22 #define limm1 ((type)((int)&glob1))
23 #define adr1 (*E1)
24 #define adrreg1 (p1[1111111/4])
25 #define adrx1 (E1[x1])
26 #define regx1 (p1[x1])
27 
reg0reg1(r0,r1,x0,x1,p0,p1)28 reg0reg1 (r0, r1, x0, x1, p0, p1)
29 type r0, r1;  type *p0, *p1;
30 {if (reg0 <= reg1) return 1; else return 0;}
31 
reg0indreg1(r0,r1,x0,x1,p0,p1)32 reg0indreg1 (r0, r1, x0, x1, p0, p1)
33 type r0, r1;  type *p0, *p1;
34 {if (reg0 <= indreg1) return 1; else return 0;}
35 
reg0imm1(r0,r1,x0,x1,p0,p1)36 reg0imm1 (r0, r1, x0, x1, p0, p1)
37 type r0, r1;  type *p0, *p1;
38 {if (reg0 <= imm1) return 1; else return 0;}
39 
reg0limm1(r0,r1,x0,x1,p0,p1)40 reg0limm1 (r0, r1, x0, x1, p0, p1)
41 type r0, r1;  type *p0, *p1;
42 {if (reg0 <= limm1) return 1; else return 0;}
43 
reg0adr1(r0,r1,x0,x1,p0,p1)44 reg0adr1 (r0, r1, x0, x1, p0, p1)
45 type r0, r1;  type *p0, *p1;
46 {if (reg0 <= adr1) return 1; else return 0;}
47 
reg0adrreg1(r0,r1,x0,x1,p0,p1)48 reg0adrreg1 (r0, r1, x0, x1, p0, p1)
49 type r0, r1;  type *p0, *p1;
50 {if (reg0 <= adrreg1) return 1; else return 0;}
51 
reg0adrx1(r0,r1,x0,x1,p0,p1)52 reg0adrx1 (r0, r1, x0, x1, p0, p1)
53 type r0, r1;  type *p0, *p1;
54 {if (reg0 <= adrx1) return 1; else return 0;}
55 
reg0regx1(r0,r1,x0,x1,p0,p1)56 reg0regx1 (r0, r1, x0, x1, p0, p1)
57 type r0, r1;  type *p0, *p1;
58 {if (reg0 <= regx1) return 1; else return 0;}
59 
indreg0reg1(r0,r1,x0,x1,p0,p1)60 indreg0reg1 (r0, r1, x0, x1, p0, p1)
61 type r0, r1;  type *p0, *p1;
62 {if (indreg0 <= reg1) return 1; else return 0;}
63 
indreg0indreg1(r0,r1,x0,x1,p0,p1)64 indreg0indreg1 (r0, r1, x0, x1, p0, p1)
65 type r0, r1;  type *p0, *p1;
66 {if (indreg0 <= indreg1) return 1; else return 0;}
67 
indreg0imm1(r0,r1,x0,x1,p0,p1)68 indreg0imm1 (r0, r1, x0, x1, p0, p1)
69 type r0, r1;  type *p0, *p1;
70 {if (indreg0 <= imm1) return 1; else return 0;}
71 
indreg0limm1(r0,r1,x0,x1,p0,p1)72 indreg0limm1 (r0, r1, x0, x1, p0, p1)
73 type r0, r1;  type *p0, *p1;
74 {if (indreg0 <= limm1) return 1; else return 0;}
75 
indreg0adr1(r0,r1,x0,x1,p0,p1)76 indreg0adr1 (r0, r1, x0, x1, p0, p1)
77 type r0, r1;  type *p0, *p1;
78 {if (indreg0 <= adr1) return 1; else return 0;}
79 
indreg0adrreg1(r0,r1,x0,x1,p0,p1)80 indreg0adrreg1 (r0, r1, x0, x1, p0, p1)
81 type r0, r1;  type *p0, *p1;
82 {if (indreg0 <= adrreg1) return 1; else return 0;}
83 
indreg0adrx1(r0,r1,x0,x1,p0,p1)84 indreg0adrx1 (r0, r1, x0, x1, p0, p1)
85 type r0, r1;  type *p0, *p1;
86 {if (indreg0 <= adrx1) return 1; else return 0;}
87 
indreg0regx1(r0,r1,x0,x1,p0,p1)88 indreg0regx1 (r0, r1, x0, x1, p0, p1)
89 type r0, r1;  type *p0, *p1;
90 {if (indreg0 <= regx1) return 1; else return 0;}
91 
imm0reg1(r0,r1,x0,x1,p0,p1)92 imm0reg1 (r0, r1, x0, x1, p0, p1)
93 type r0, r1;  type *p0, *p1;
94 {if (imm0 <= reg1) return 1; else return 0;}
95 
imm0indreg1(r0,r1,x0,x1,p0,p1)96 imm0indreg1 (r0, r1, x0, x1, p0, p1)
97 type r0, r1;  type *p0, *p1;
98 {if (imm0 <= indreg1) return 1; else return 0;}
99 
imm0imm1(r0,r1,x0,x1,p0,p1)100 imm0imm1 (r0, r1, x0, x1, p0, p1)
101 type r0, r1;  type *p0, *p1;
102 {if (imm0 <= imm1) return 1; else return 0;}
103 
imm0limm1(r0,r1,x0,x1,p0,p1)104 imm0limm1 (r0, r1, x0, x1, p0, p1)
105 type r0, r1;  type *p0, *p1;
106 {if (imm0 <= limm1) return 1; else return 0;}
107 
imm0adr1(r0,r1,x0,x1,p0,p1)108 imm0adr1 (r0, r1, x0, x1, p0, p1)
109 type r0, r1;  type *p0, *p1;
110 {if (imm0 <= adr1) return 1; else return 0;}
111 
imm0adrreg1(r0,r1,x0,x1,p0,p1)112 imm0adrreg1 (r0, r1, x0, x1, p0, p1)
113 type r0, r1;  type *p0, *p1;
114 {if (imm0 <= adrreg1) return 1; else return 0;}
115 
imm0adrx1(r0,r1,x0,x1,p0,p1)116 imm0adrx1 (r0, r1, x0, x1, p0, p1)
117 type r0, r1;  type *p0, *p1;
118 {if (imm0 <= adrx1) return 1; else return 0;}
119 
imm0regx1(r0,r1,x0,x1,p0,p1)120 imm0regx1 (r0, r1, x0, x1, p0, p1)
121 type r0, r1;  type *p0, *p1;
122 {if (imm0 <= regx1) return 1; else return 0;}
123 
limm0reg1(r0,r1,x0,x1,p0,p1)124 limm0reg1 (r0, r1, x0, x1, p0, p1)
125 type r0, r1;  type *p0, *p1;
126 {if (limm0 <= reg1) return 1; else return 0;}
127 
limm0indreg1(r0,r1,x0,x1,p0,p1)128 limm0indreg1 (r0, r1, x0, x1, p0, p1)
129 type r0, r1;  type *p0, *p1;
130 {if (limm0 <= indreg1) return 1; else return 0;}
131 
limm0imm1(r0,r1,x0,x1,p0,p1)132 limm0imm1 (r0, r1, x0, x1, p0, p1)
133 type r0, r1;  type *p0, *p1;
134 {if (limm0 <= imm1) return 1; else return 0;}
135 
limm0limm1(r0,r1,x0,x1,p0,p1)136 limm0limm1 (r0, r1, x0, x1, p0, p1)
137 type r0, r1;  type *p0, *p1;
138 {if (limm0 <= limm1) return 1; else return 0;}
139 
limm0adr1(r0,r1,x0,x1,p0,p1)140 limm0adr1 (r0, r1, x0, x1, p0, p1)
141 type r0, r1;  type *p0, *p1;
142 {if (limm0 <= adr1) return 1; else return 0;}
143 
limm0adrreg1(r0,r1,x0,x1,p0,p1)144 limm0adrreg1 (r0, r1, x0, x1, p0, p1)
145 type r0, r1;  type *p0, *p1;
146 {if (limm0 <= adrreg1) return 1; else return 0;}
147 
limm0adrx1(r0,r1,x0,x1,p0,p1)148 limm0adrx1 (r0, r1, x0, x1, p0, p1)
149 type r0, r1;  type *p0, *p1;
150 {if (limm0 <= adrx1) return 1; else return 0;}
151 
limm0regx1(r0,r1,x0,x1,p0,p1)152 limm0regx1 (r0, r1, x0, x1, p0, p1)
153 type r0, r1;  type *p0, *p1;
154 {if (limm0 <= regx1) return 1; else return 0;}
155 
adr0reg1(r0,r1,x0,x1,p0,p1)156 adr0reg1 (r0, r1, x0, x1, p0, p1)
157 type r0, r1;  type *p0, *p1;
158 {if (adr0 <= reg1) return 1; else return 0;}
159 
adr0indreg1(r0,r1,x0,x1,p0,p1)160 adr0indreg1 (r0, r1, x0, x1, p0, p1)
161 type r0, r1;  type *p0, *p1;
162 {if (adr0 <= indreg1) return 1; else return 0;}
163 
adr0imm1(r0,r1,x0,x1,p0,p1)164 adr0imm1 (r0, r1, x0, x1, p0, p1)
165 type r0, r1;  type *p0, *p1;
166 {if (adr0 <= imm1) return 1; else return 0;}
167 
adr0limm1(r0,r1,x0,x1,p0,p1)168 adr0limm1 (r0, r1, x0, x1, p0, p1)
169 type r0, r1;  type *p0, *p1;
170 {if (adr0 <= limm1) return 1; else return 0;}
171 
adr0adr1(r0,r1,x0,x1,p0,p1)172 adr0adr1 (r0, r1, x0, x1, p0, p1)
173 type r0, r1;  type *p0, *p1;
174 {if (adr0 <= adr1) return 1; else return 0;}
175 
adr0adrreg1(r0,r1,x0,x1,p0,p1)176 adr0adrreg1 (r0, r1, x0, x1, p0, p1)
177 type r0, r1;  type *p0, *p1;
178 {if (adr0 <= adrreg1) return 1; else return 0;}
179 
adr0adrx1(r0,r1,x0,x1,p0,p1)180 adr0adrx1 (r0, r1, x0, x1, p0, p1)
181 type r0, r1;  type *p0, *p1;
182 {if (adr0 <= adrx1) return 1; else return 0;}
183 
adr0regx1(r0,r1,x0,x1,p0,p1)184 adr0regx1 (r0, r1, x0, x1, p0, p1)
185 type r0, r1;  type *p0, *p1;
186 {if (adr0 <= regx1) return 1; else return 0;}
187 
adrreg0reg1(r0,r1,x0,x1,p0,p1)188 adrreg0reg1 (r0, r1, x0, x1, p0, p1)
189 type r0, r1;  type *p0, *p1;
190 {if (adrreg0 <= reg1) return 1; else return 0;}
191 
adrreg0indreg1(r0,r1,x0,x1,p0,p1)192 adrreg0indreg1 (r0, r1, x0, x1, p0, p1)
193 type r0, r1;  type *p0, *p1;
194 {if (adrreg0 <= indreg1) return 1; else return 0;}
195 
adrreg0imm1(r0,r1,x0,x1,p0,p1)196 adrreg0imm1 (r0, r1, x0, x1, p0, p1)
197 type r0, r1;  type *p0, *p1;
198 {if (adrreg0 <= imm1) return 1; else return 0;}
199 
adrreg0limm1(r0,r1,x0,x1,p0,p1)200 adrreg0limm1 (r0, r1, x0, x1, p0, p1)
201 type r0, r1;  type *p0, *p1;
202 {if (adrreg0 <= limm1) return 1; else return 0;}
203 
adrreg0adr1(r0,r1,x0,x1,p0,p1)204 adrreg0adr1 (r0, r1, x0, x1, p0, p1)
205 type r0, r1;  type *p0, *p1;
206 {if (adrreg0 <= adr1) return 1; else return 0;}
207 
adrreg0adrreg1(r0,r1,x0,x1,p0,p1)208 adrreg0adrreg1 (r0, r1, x0, x1, p0, p1)
209 type r0, r1;  type *p0, *p1;
210 {if (adrreg0 <= adrreg1) return 1; else return 0;}
211 
adrreg0adrx1(r0,r1,x0,x1,p0,p1)212 adrreg0adrx1 (r0, r1, x0, x1, p0, p1)
213 type r0, r1;  type *p0, *p1;
214 {if (adrreg0 <= adrx1) return 1; else return 0;}
215 
adrreg0regx1(r0,r1,x0,x1,p0,p1)216 adrreg0regx1 (r0, r1, x0, x1, p0, p1)
217 type r0, r1;  type *p0, *p1;
218 {if (adrreg0 <= regx1) return 1; else return 0;}
219 
adrx0reg1(r0,r1,x0,x1,p0,p1)220 adrx0reg1 (r0, r1, x0, x1, p0, p1)
221 type r0, r1;  type *p0, *p1;
222 {if (adrx0 <= reg1) return 1; else return 0;}
223 
adrx0indreg1(r0,r1,x0,x1,p0,p1)224 adrx0indreg1 (r0, r1, x0, x1, p0, p1)
225 type r0, r1;  type *p0, *p1;
226 {if (adrx0 <= indreg1) return 1; else return 0;}
227 
adrx0imm1(r0,r1,x0,x1,p0,p1)228 adrx0imm1 (r0, r1, x0, x1, p0, p1)
229 type r0, r1;  type *p0, *p1;
230 {if (adrx0 <= imm1) return 1; else return 0;}
231 
adrx0limm1(r0,r1,x0,x1,p0,p1)232 adrx0limm1 (r0, r1, x0, x1, p0, p1)
233 type r0, r1;  type *p0, *p1;
234 {if (adrx0 <= limm1) return 1; else return 0;}
235 
adrx0adr1(r0,r1,x0,x1,p0,p1)236 adrx0adr1 (r0, r1, x0, x1, p0, p1)
237 type r0, r1;  type *p0, *p1;
238 {if (adrx0 <= adr1) return 1; else return 0;}
239 
adrx0adrreg1(r0,r1,x0,x1,p0,p1)240 adrx0adrreg1 (r0, r1, x0, x1, p0, p1)
241 type r0, r1;  type *p0, *p1;
242 {if (adrx0 <= adrreg1) return 1; else return 0;}
243 
adrx0adrx1(r0,r1,x0,x1,p0,p1)244 adrx0adrx1 (r0, r1, x0, x1, p0, p1)
245 type r0, r1;  type *p0, *p1;
246 {if (adrx0 <= adrx1) return 1; else return 0;}
247 
adrx0regx1(r0,r1,x0,x1,p0,p1)248 adrx0regx1 (r0, r1, x0, x1, p0, p1)
249 type r0, r1;  type *p0, *p1;
250 {if (adrx0 <= regx1) return 1; else return 0;}
251 
regx0reg1(r0,r1,x0,x1,p0,p1)252 regx0reg1 (r0, r1, x0, x1, p0, p1)
253 type r0, r1;  type *p0, *p1;
254 {if (regx0 <= reg1) return 1; else return 0;}
255 
regx0indreg1(r0,r1,x0,x1,p0,p1)256 regx0indreg1 (r0, r1, x0, x1, p0, p1)
257 type r0, r1;  type *p0, *p1;
258 {if (regx0 <= indreg1) return 1; else return 0;}
259 
regx0imm1(r0,r1,x0,x1,p0,p1)260 regx0imm1 (r0, r1, x0, x1, p0, p1)
261 type r0, r1;  type *p0, *p1;
262 {if (regx0 <= imm1) return 1; else return 0;}
263 
regx0limm1(r0,r1,x0,x1,p0,p1)264 regx0limm1 (r0, r1, x0, x1, p0, p1)
265 type r0, r1;  type *p0, *p1;
266 {if (regx0 <= limm1) return 1; else return 0;}
267 
regx0adr1(r0,r1,x0,x1,p0,p1)268 regx0adr1 (r0, r1, x0, x1, p0, p1)
269 type r0, r1;  type *p0, *p1;
270 {if (regx0 <= adr1) return 1; else return 0;}
271 
regx0adrreg1(r0,r1,x0,x1,p0,p1)272 regx0adrreg1 (r0, r1, x0, x1, p0, p1)
273 type r0, r1;  type *p0, *p1;
274 {if (regx0 <= adrreg1) return 1; else return 0;}
275 
regx0adrx1(r0,r1,x0,x1,p0,p1)276 regx0adrx1 (r0, r1, x0, x1, p0, p1)
277 type r0, r1;  type *p0, *p1;
278 {if (regx0 <= adrx1) return 1; else return 0;}
279 
regx0regx1(r0,r1,x0,x1,p0,p1)280 regx0regx1 (r0, r1, x0, x1, p0, p1)
281 type r0, r1;  type *p0, *p1;
282 {if (regx0 <= regx1) return 1; else return 0;}
283 
284