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