1 /* { dg-require-effective-target int32plus } */
2 /* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
3 
4 #define E0 ((type *)10000000)
5 #define reg0 r0
6 #define indreg0 (*p0)
7 #define imm0 22
8 #define limm0 ((type)(int)&glob0)
9 #define adr0 (*E0)
10 #define adrreg0 (p0[10000000])
11 #define adrx0 (E0[x0])
12 #define regx0 (p0[x0])
13 
14 #define E1 ((type *)(11111111 & ~(__alignof__ (type) - 1)))
15 #define reg1 r1
16 #define indreg1 (*p1)
17 #define imm1 33
18 #define limm1 ((type)(int)&glob1)
19 #define adr1 (*E1)
20 #define adrreg1 (p1[1111111/4])
21 #define adrx1 (E1[x1])
22 #define regx1 (p1[x1])
23 
24 int glob0, glob1;
25 
26 #define type float
27 
reg0reg1_set(r0,r1,x0,x1,p0,p1)28 reg0reg1_set (r0, r1, x0, x1, p0, p1)
29 type r0, r1;  type *p0, *p1;
30 {reg0 = reg1;  }
31 
reg0indreg1_set(r0,r1,x0,x1,p0,p1)32 reg0indreg1_set (r0, r1, x0, x1, p0, p1)
33 type r0, r1;  type *p0, *p1;
34 {reg0 = indreg1;  }
35 
reg0imm1_set(r0,r1,x0,x1,p0,p1)36 reg0imm1_set (r0, r1, x0, x1, p0, p1)
37 type r0, r1;  type *p0, *p1;
38 {reg0 = imm1;  }
39 
reg0limm1_set(r0,r1,x0,x1,p0,p1)40 reg0limm1_set (r0, r1, x0, x1, p0, p1)
41 type r0, r1;  type *p0, *p1;
42 {reg0 = limm1;  }
43 
reg0adr1_set(r0,r1,x0,x1,p0,p1)44 reg0adr1_set (r0, r1, x0, x1, p0, p1)
45 type r0, r1;  type *p0, *p1;
46 {reg0 = adr1;  }
47 
reg0adrreg1_set(r0,r1,x0,x1,p0,p1)48 reg0adrreg1_set (r0, r1, x0, x1, p0, p1)
49 type r0, r1;  type *p0, *p1;
50 {reg0 = adrreg1;  }
51 
reg0adrx1_set(r0,r1,x0,x1,p0,p1)52 reg0adrx1_set (r0, r1, x0, x1, p0, p1)
53 type r0, r1;  type *p0, *p1;
54 {reg0 = adrx1;  }
55 
reg0regx1_set(r0,r1,x0,x1,p0,p1)56 reg0regx1_set (r0, r1, x0, x1, p0, p1)
57 type r0, r1;  type *p0, *p1;
58 {reg0 = regx1;  }
59 
indreg0reg1_set(r0,r1,x0,x1,p0,p1)60 indreg0reg1_set (r0, r1, x0, x1, p0, p1)
61 type r0, r1;  type *p0, *p1;
62 {indreg0 = reg1;  }
63 
indreg0indreg1_set(r0,r1,x0,x1,p0,p1)64 indreg0indreg1_set (r0, r1, x0, x1, p0, p1)
65 type r0, r1;  type *p0, *p1;
66 {indreg0 = indreg1;  }
67 
indreg0imm1_set(r0,r1,x0,x1,p0,p1)68 indreg0imm1_set (r0, r1, x0, x1, p0, p1)
69 type r0, r1;  type *p0, *p1;
70 {indreg0 = imm1;  }
71 
indreg0limm1_set(r0,r1,x0,x1,p0,p1)72 indreg0limm1_set (r0, r1, x0, x1, p0, p1)
73 type r0, r1;  type *p0, *p1;
74 {indreg0 = limm1;  }
75 
indreg0adr1_set(r0,r1,x0,x1,p0,p1)76 indreg0adr1_set (r0, r1, x0, x1, p0, p1)
77 type r0, r1;  type *p0, *p1;
78 {indreg0 = adr1;  }
79 
indreg0adrreg1_set(r0,r1,x0,x1,p0,p1)80 indreg0adrreg1_set (r0, r1, x0, x1, p0, p1)
81 type r0, r1;  type *p0, *p1;
82 {indreg0 = adrreg1;  }
83 
indreg0adrx1_set(r0,r1,x0,x1,p0,p1)84 indreg0adrx1_set (r0, r1, x0, x1, p0, p1)
85 type r0, r1;  type *p0, *p1;
86 {indreg0 = adrx1;  }
87 
indreg0regx1_set(r0,r1,x0,x1,p0,p1)88 indreg0regx1_set (r0, r1, x0, x1, p0, p1)
89 type r0, r1;  type *p0, *p1;
90 {indreg0 = regx1;  }
91 
adr0reg1_set(r0,r1,x0,x1,p0,p1)92 adr0reg1_set (r0, r1, x0, x1, p0, p1)
93 type r0, r1;  type *p0, *p1;
94 {adr0 = reg1;  }
95 
adr0indreg1_set(r0,r1,x0,x1,p0,p1)96 adr0indreg1_set (r0, r1, x0, x1, p0, p1)
97 type r0, r1;  type *p0, *p1;
98 {adr0 = indreg1;  }
99 
adr0imm1_set(r0,r1,x0,x1,p0,p1)100 adr0imm1_set (r0, r1, x0, x1, p0, p1)
101 type r0, r1;  type *p0, *p1;
102 {adr0 = imm1;  }
103 
adr0limm1_set(r0,r1,x0,x1,p0,p1)104 adr0limm1_set (r0, r1, x0, x1, p0, p1)
105 type r0, r1;  type *p0, *p1;
106 {adr0 = limm1;  }
107 
adr0adr1_set(r0,r1,x0,x1,p0,p1)108 adr0adr1_set (r0, r1, x0, x1, p0, p1)
109 type r0, r1;  type *p0, *p1;
110 {adr0 = adr1;  }
111 
adr0adrreg1_set(r0,r1,x0,x1,p0,p1)112 adr0adrreg1_set (r0, r1, x0, x1, p0, p1)
113 type r0, r1;  type *p0, *p1;
114 {adr0 = adrreg1;  }
115 
adr0adrx1_set(r0,r1,x0,x1,p0,p1)116 adr0adrx1_set (r0, r1, x0, x1, p0, p1)
117 type r0, r1;  type *p0, *p1;
118 {adr0 = adrx1;  }
119 
adr0regx1_set(r0,r1,x0,x1,p0,p1)120 adr0regx1_set (r0, r1, x0, x1, p0, p1)
121 type r0, r1;  type *p0, *p1;
122 {adr0 = regx1;  }
123 
adrreg0reg1_set(r0,r1,x0,x1,p0,p1)124 adrreg0reg1_set (r0, r1, x0, x1, p0, p1)
125 type r0, r1;  type *p0, *p1;
126 {adrreg0 = reg1;  }
127 
adrreg0indreg1_set(r0,r1,x0,x1,p0,p1)128 adrreg0indreg1_set (r0, r1, x0, x1, p0, p1)
129 type r0, r1;  type *p0, *p1;
130 {adrreg0 = indreg1;  }
131 
adrreg0imm1_set(r0,r1,x0,x1,p0,p1)132 adrreg0imm1_set (r0, r1, x0, x1, p0, p1)
133 type r0, r1;  type *p0, *p1;
134 {adrreg0 = imm1;  }
135 
adrreg0limm1_set(r0,r1,x0,x1,p0,p1)136 adrreg0limm1_set (r0, r1, x0, x1, p0, p1)
137 type r0, r1;  type *p0, *p1;
138 {adrreg0 = limm1;  }
139 
adrreg0adr1_set(r0,r1,x0,x1,p0,p1)140 adrreg0adr1_set (r0, r1, x0, x1, p0, p1)
141 type r0, r1;  type *p0, *p1;
142 {adrreg0 = adr1;  }
143 
adrreg0adrreg1_set(r0,r1,x0,x1,p0,p1)144 adrreg0adrreg1_set (r0, r1, x0, x1, p0, p1)
145 type r0, r1;  type *p0, *p1;
146 {adrreg0 = adrreg1;  }
147 
adrreg0adrx1_set(r0,r1,x0,x1,p0,p1)148 adrreg0adrx1_set (r0, r1, x0, x1, p0, p1)
149 type r0, r1;  type *p0, *p1;
150 {adrreg0 = adrx1;  }
151 
adrreg0regx1_set(r0,r1,x0,x1,p0,p1)152 adrreg0regx1_set (r0, r1, x0, x1, p0, p1)
153 type r0, r1;  type *p0, *p1;
154 {adrreg0 = regx1;  }
155 
adrx0reg1_set(r0,r1,x0,x1,p0,p1)156 adrx0reg1_set (r0, r1, x0, x1, p0, p1)
157 type r0, r1;  type *p0, *p1;
158 {adrx0 = reg1;  }
159 
adrx0indreg1_set(r0,r1,x0,x1,p0,p1)160 adrx0indreg1_set (r0, r1, x0, x1, p0, p1)
161 type r0, r1;  type *p0, *p1;
162 {adrx0 = indreg1;  }
163 
adrx0imm1_set(r0,r1,x0,x1,p0,p1)164 adrx0imm1_set (r0, r1, x0, x1, p0, p1)
165 type r0, r1;  type *p0, *p1;
166 {adrx0 = imm1;  }
167 
adrx0limm1_set(r0,r1,x0,x1,p0,p1)168 adrx0limm1_set (r0, r1, x0, x1, p0, p1)
169 type r0, r1;  type *p0, *p1;
170 {adrx0 = limm1;  }
171 
adrx0adr1_set(r0,r1,x0,x1,p0,p1)172 adrx0adr1_set (r0, r1, x0, x1, p0, p1)
173 type r0, r1;  type *p0, *p1;
174 {adrx0 = adr1;  }
175 
adrx0adrreg1_set(r0,r1,x0,x1,p0,p1)176 adrx0adrreg1_set (r0, r1, x0, x1, p0, p1)
177 type r0, r1;  type *p0, *p1;
178 {adrx0 = adrreg1;  }
179 
adrx0adrx1_set(r0,r1,x0,x1,p0,p1)180 adrx0adrx1_set (r0, r1, x0, x1, p0, p1)
181 type r0, r1;  type *p0, *p1;
182 {adrx0 = adrx1;  }
183 
adrx0regx1_set(r0,r1,x0,x1,p0,p1)184 adrx0regx1_set (r0, r1, x0, x1, p0, p1)
185 type r0, r1;  type *p0, *p1;
186 {adrx0 = regx1;  }
187 
regx0reg1_set(r0,r1,x0,x1,p0,p1)188 regx0reg1_set (r0, r1, x0, x1, p0, p1)
189 type r0, r1;  type *p0, *p1;
190 {regx0 = reg1;  }
191 
regx0indreg1_set(r0,r1,x0,x1,p0,p1)192 regx0indreg1_set (r0, r1, x0, x1, p0, p1)
193 type r0, r1;  type *p0, *p1;
194 {regx0 = indreg1;  }
195 
regx0imm1_set(r0,r1,x0,x1,p0,p1)196 regx0imm1_set (r0, r1, x0, x1, p0, p1)
197 type r0, r1;  type *p0, *p1;
198 {regx0 = imm1;  }
199 
regx0limm1_set(r0,r1,x0,x1,p0,p1)200 regx0limm1_set (r0, r1, x0, x1, p0, p1)
201 type r0, r1;  type *p0, *p1;
202 {regx0 = limm1;  }
203 
regx0adr1_set(r0,r1,x0,x1,p0,p1)204 regx0adr1_set (r0, r1, x0, x1, p0, p1)
205 type r0, r1;  type *p0, *p1;
206 {regx0 = adr1;  }
207 
regx0adrreg1_set(r0,r1,x0,x1,p0,p1)208 regx0adrreg1_set (r0, r1, x0, x1, p0, p1)
209 type r0, r1;  type *p0, *p1;
210 {regx0 = adrreg1;  }
211 
regx0adrx1_set(r0,r1,x0,x1,p0,p1)212 regx0adrx1_set (r0, r1, x0, x1, p0, p1)
213 type r0, r1;  type *p0, *p1;
214 {regx0 = adrx1;  }
215 
regx0regx1_set(r0,r1,x0,x1,p0,p1)216 regx0regx1_set (r0, r1, x0, x1, p0, p1)
217 type r0, r1;  type *p0, *p1;
218 {regx0 = regx1;  }
219 
220