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