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