xref: /llvm-project/clang/test/CodeGen/RISCV/attr-rvv-vector-bits-types.c (revision 635d20e9e72e25966b196bb012a90e750ae00c6d)
1 // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +f -target-feature +d -target-feature +zve64d -mvscale-min=1 -mvscale-max=1 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-64
2 // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +f -target-feature +d -target-feature +zve64d -mvscale-min=2 -mvscale-max=2 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-128
3 // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +f -target-feature +d -target-feature +zve64d -mvscale-min=4 -mvscale-max=4 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-256
4 // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +f -target-feature +d -target-feature +zve64d -mvscale-min=8 -mvscale-max=8 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-512
5 // RUN: %clang_cc1 -triple riscv64-none-linux-gnu -target-feature +f -target-feature +d -target-feature +zve64d -mvscale-min=16 -mvscale-max=16 -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK-1024
6 
7 // REQUIRES: riscv-registered-target
8 
9 #include <stdint.h>
10 
11 typedef __rvv_bool64_t vbool64_t;
12 typedef __rvv_bool32_t vbool32_t;
13 typedef __rvv_bool16_t vbool16_t;
14 typedef __rvv_bool8_t vbool8_t;
15 typedef __rvv_bool4_t vbool4_t;
16 typedef __rvv_bool2_t vbool2_t;
17 typedef __rvv_bool1_t vbool1_t;
18 
19 typedef __rvv_int8mf8_t vint8mf8_t;
20 typedef __rvv_uint8mf8_t vuint8mf8_t;
21 
22 typedef __rvv_int8mf4_t vint8mf4_t;
23 typedef __rvv_uint8mf4_t vuint8mf4_t;
24 typedef __rvv_int16mf4_t vint16mf4_t;
25 typedef __rvv_uint16mf4_t vuint16mf4_t;
26 
27 typedef __rvv_int8mf2_t vint8mf2_t;
28 typedef __rvv_uint8mf2_t vuint8mf2_t;
29 typedef __rvv_int16mf2_t vint16mf2_t;
30 typedef __rvv_uint16mf2_t vuint16mf2_t;
31 typedef __rvv_int32mf2_t vint32mf2_t;
32 typedef __rvv_uint32mf2_t vuint32mf2_t;
33 typedef __rvv_float32mf2_t vfloat32mf2_t;
34 
35 typedef __rvv_int8m1_t vint8m1_t;
36 typedef __rvv_uint8m1_t vuint8m1_t;
37 typedef __rvv_int16m1_t vint16m1_t;
38 typedef __rvv_uint16m1_t vuint16m1_t;
39 typedef __rvv_int32m1_t vint32m1_t;
40 typedef __rvv_uint32m1_t vuint32m1_t;
41 typedef __rvv_int64m1_t vint64m1_t;
42 typedef __rvv_uint64m1_t vuint64m1_t;
43 typedef __rvv_float32m1_t vfloat32m1_t;
44 typedef __rvv_float64m1_t vfloat64m1_t;
45 
46 typedef __rvv_int8m2_t vint8m2_t;
47 typedef __rvv_uint8m2_t vuint8m2_t;
48 typedef __rvv_int16m2_t vint16m2_t;
49 typedef __rvv_uint16m2_t vuint16m2_t;
50 typedef __rvv_int32m2_t vint32m2_t;
51 typedef __rvv_uint32m2_t vuint32m2_t;
52 typedef __rvv_int64m2_t vint64m2_t;
53 typedef __rvv_uint64m2_t vuint64m2_t;
54 typedef __rvv_float32m2_t vfloat32m2_t;
55 typedef __rvv_float64m2_t vfloat64m2_t;
56 
57 typedef __rvv_int8m4_t vint8m4_t;
58 typedef __rvv_uint8m4_t vuint8m4_t;
59 typedef __rvv_int16m4_t vint16m4_t;
60 typedef __rvv_uint16m4_t vuint16m4_t;
61 typedef __rvv_int32m4_t vint32m4_t;
62 typedef __rvv_uint32m4_t vuint32m4_t;
63 typedef __rvv_int64m4_t vint64m4_t;
64 typedef __rvv_uint64m4_t vuint64m4_t;
65 typedef __rvv_float32m4_t vfloat32m4_t;
66 typedef __rvv_float64m4_t vfloat64m4_t;
67 
68 typedef __rvv_int8m8_t vint8m8_t;
69 typedef __rvv_uint8m8_t vuint8m8_t;
70 typedef __rvv_int16m8_t vint16m8_t;
71 typedef __rvv_uint16m8_t vuint16m8_t;
72 typedef __rvv_int32m8_t vint32m8_t;
73 typedef __rvv_uint32m8_t vuint32m8_t;
74 typedef __rvv_int64m8_t vint64m8_t;
75 typedef __rvv_uint64m8_t vuint64m8_t;
76 typedef __rvv_float32m8_t vfloat32m8_t;
77 typedef __rvv_float64m8_t vfloat64m8_t;
78 
79 // Define valid fixed-width RVV types
80 typedef vint8mf8_t fixed_int8mf8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 8)));
81 
82 typedef vuint8mf8_t fixed_uint8mf8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 8)));
83 
84 typedef vint8mf4_t fixed_int8mf4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 4)));
85 typedef vint16mf4_t fixed_int16mf4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 4)));
86 
87 typedef vuint8mf4_t fixed_uint8mf4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 4)));
88 typedef vuint16mf4_t fixed_uint16mf4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 4)));
89 
90 typedef vint8mf2_t fixed_int8mf2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
91 typedef vint16mf2_t fixed_int16mf2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
92 typedef vint32mf2_t fixed_int32mf2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
93 
94 typedef vuint8mf2_t fixed_uint8mf2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
95 typedef vuint16mf2_t fixed_uint16mf2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
96 typedef vuint32mf2_t fixed_uint32mf2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
97 
98 typedef vfloat32mf2_t fixed_float32mf2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
99 
100 typedef vint8m1_t fixed_int8m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
101 typedef vint16m1_t fixed_int16m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
102 typedef vint32m1_t fixed_int32m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
103 typedef vint64m1_t fixed_int64m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
104 
105 typedef vuint8m1_t fixed_uint8m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
106 typedef vuint16m1_t fixed_uint16m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
107 typedef vuint32m1_t fixed_uint32m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
108 typedef vuint64m1_t fixed_uint64m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
109 
110 typedef vfloat32m1_t fixed_float32m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
111 typedef vfloat64m1_t fixed_float64m1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
112 
113 typedef vint8m2_t fixed_int8m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
114 typedef vint16m2_t fixed_int16m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
115 typedef vint32m2_t fixed_int32m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
116 typedef vint64m2_t fixed_int64m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
117 
118 typedef vuint8m2_t fixed_uint8m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
119 typedef vuint16m2_t fixed_uint16m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
120 typedef vuint32m2_t fixed_uint32m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
121 typedef vuint64m2_t fixed_uint64m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
122 
123 typedef vfloat32m2_t fixed_float32m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
124 typedef vfloat64m2_t fixed_float64m2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 2)));
125 
126 typedef vint8m4_t fixed_int8m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
127 typedef vint16m4_t fixed_int16m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
128 typedef vint32m4_t fixed_int32m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
129 typedef vint64m4_t fixed_int64m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
130 
131 typedef vuint8m4_t fixed_uint8m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
132 typedef vuint16m4_t fixed_uint16m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
133 typedef vuint32m4_t fixed_uint32m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
134 typedef vuint64m4_t fixed_uint64m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
135 
136 typedef vfloat32m4_t fixed_float32m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
137 typedef vfloat64m4_t fixed_float64m4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 4)));
138 
139 typedef vint8m8_t fixed_int8m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
140 typedef vint16m8_t fixed_int16m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
141 typedef vint32m8_t fixed_int32m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
142 typedef vint64m8_t fixed_int64m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
143 
144 typedef vuint8m8_t fixed_uint8m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
145 typedef vuint16m8_t fixed_uint16m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
146 typedef vuint32m8_t fixed_uint32m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
147 typedef vuint64m8_t fixed_uint64m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
148 
149 typedef vfloat32m8_t fixed_float32m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
150 typedef vfloat64m8_t fixed_float64m8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen * 8)));
151 
152 typedef vbool64_t fixed_bool64_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 64)));
153 typedef vbool32_t fixed_bool32_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 32)));
154 typedef vbool16_t fixed_bool16_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 16)));
155 typedef vbool8_t fixed_bool8_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 8)));
156 typedef vbool4_t fixed_bool4_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 4)));
157 typedef vbool2_t fixed_bool2_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen / 2)));
158 typedef vbool1_t fixed_bool1_t __attribute__((riscv_rvv_vector_bits(__riscv_v_fixed_vlen)));
159 
160 //===----------------------------------------------------------------------===//
161 // Structs and unions
162 //===----------------------------------------------------------------------===//
163 #define DEFINE_STRUCT(ty) \
164   struct struct_##ty {    \
165     fixed_##ty##_t x;     \
166   } struct_##ty;
167 
168 #define DEFINE_UNION(ty) \
169   union union_##ty {     \
170     fixed_##ty##_t x;    \
171   } union_##ty;
172 
173 DEFINE_STRUCT(int8m1)
174 DEFINE_STRUCT(int16m1)
175 DEFINE_STRUCT(int32m1)
176 DEFINE_STRUCT(int64m1)
177 DEFINE_STRUCT(uint8m1)
178 DEFINE_STRUCT(uint16m1)
179 DEFINE_STRUCT(uint32m1)
180 DEFINE_STRUCT(uint64m1)
181 DEFINE_STRUCT(float32m1)
182 DEFINE_STRUCT(float64m1)
183 
184 DEFINE_STRUCT(int8m2)
185 DEFINE_STRUCT(int16m2)
186 DEFINE_STRUCT(int32m2)
187 DEFINE_STRUCT(int64m2)
188 DEFINE_STRUCT(uint8m2)
189 DEFINE_STRUCT(uint16m2)
190 DEFINE_STRUCT(uint32m2)
191 DEFINE_STRUCT(uint64m2)
192 DEFINE_STRUCT(float32m2)
193 DEFINE_STRUCT(float64m2)
194 
195 DEFINE_STRUCT(int8m4)
196 DEFINE_STRUCT(int16m4)
197 DEFINE_STRUCT(int32m4)
198 DEFINE_STRUCT(int64m4)
199 DEFINE_STRUCT(uint8m4)
200 DEFINE_STRUCT(uint16m4)
201 DEFINE_STRUCT(uint32m4)
202 DEFINE_STRUCT(uint64m4)
203 DEFINE_STRUCT(float32m4)
204 DEFINE_STRUCT(float64m4)
205 
206 DEFINE_STRUCT(int8m8)
207 DEFINE_STRUCT(int16m8)
208 DEFINE_STRUCT(int32m8)
209 DEFINE_STRUCT(int64m8)
210 DEFINE_STRUCT(uint8m8)
211 DEFINE_STRUCT(uint16m8)
212 DEFINE_STRUCT(uint32m8)
213 DEFINE_STRUCT(uint64m8)
214 DEFINE_STRUCT(float32m8)
215 DEFINE_STRUCT(float64m8)
216 
217 DEFINE_STRUCT(bool1)
218 DEFINE_STRUCT(bool2)
219 DEFINE_STRUCT(bool4)
220 DEFINE_STRUCT(bool8)
221 DEFINE_STRUCT(bool16)
222 DEFINE_STRUCT(bool32)
223 DEFINE_STRUCT(bool64)
224 
225 DEFINE_UNION(int8m1)
226 DEFINE_UNION(int16m1)
227 DEFINE_UNION(int32m1)
228 DEFINE_UNION(int64m1)
229 DEFINE_UNION(uint8m1)
230 DEFINE_UNION(uint16m1)
231 DEFINE_UNION(uint32m1)
232 DEFINE_UNION(uint64m1)
233 DEFINE_UNION(float32m1)
234 DEFINE_UNION(float64m1)
235 
236 DEFINE_UNION(int8m2)
237 DEFINE_UNION(int16m2)
238 DEFINE_UNION(int32m2)
239 DEFINE_UNION(int64m2)
240 DEFINE_UNION(uint8m2)
241 DEFINE_UNION(uint16m2)
242 DEFINE_UNION(uint32m2)
243 DEFINE_UNION(uint64m2)
244 DEFINE_UNION(float32m2)
245 DEFINE_UNION(float64m2)
246 
247 DEFINE_UNION(int8m4)
248 DEFINE_UNION(int16m4)
249 DEFINE_UNION(int32m4)
250 DEFINE_UNION(int64m4)
251 DEFINE_UNION(uint8m4)
252 DEFINE_UNION(uint16m4)
253 DEFINE_UNION(uint32m4)
254 DEFINE_UNION(uint64m4)
255 DEFINE_UNION(float32m4)
256 DEFINE_UNION(float64m4)
257 
258 DEFINE_UNION(int8m8)
259 DEFINE_UNION(int16m8)
260 DEFINE_UNION(int32m8)
261 DEFINE_UNION(int64m8)
262 DEFINE_UNION(uint8m8)
263 DEFINE_UNION(uint16m8)
264 DEFINE_UNION(uint32m8)
265 DEFINE_UNION(uint64m8)
266 DEFINE_UNION(float32m8)
267 DEFINE_UNION(float64m8)
268 
269 DEFINE_UNION(bool1)
270 DEFINE_UNION(bool2)
271 DEFINE_UNION(bool4)
272 DEFINE_UNION(bool8)
273 DEFINE_UNION(bool16)
274 DEFINE_UNION(bool32)
275 DEFINE_UNION(bool64)
276 
277 //===----------------------------------------------------------------------===//
278 // Global variables
279 //===----------------------------------------------------------------------===//
280 fixed_int8m1_t global_i8;
281 fixed_int16m1_t global_i16;
282 fixed_int32m1_t global_i32;
283 fixed_int64m1_t global_i64;
284 
285 fixed_uint8m1_t global_u8;
286 fixed_uint16m1_t global_u16;
287 fixed_uint32m1_t global_u32;
288 fixed_uint64m1_t global_u64;
289 
290 fixed_float32m1_t global_f32;
291 fixed_float64m1_t global_f64;
292 
293 fixed_int8m2_t global_i8m2;
294 fixed_int16m2_t global_i16m2;
295 fixed_int32m2_t global_i32m2;
296 fixed_int64m2_t global_i64m2;
297 
298 fixed_uint8m2_t global_u8m2;
299 fixed_uint16m2_t global_u16m2;
300 fixed_uint32m2_t global_u32m2;
301 fixed_uint64m2_t global_u64m2;
302 
303 fixed_float32m2_t global_f32m2;
304 fixed_float64m2_t global_f64m2;
305 
306 fixed_int8m4_t global_i8m4;
307 fixed_int16m4_t global_i16m4;
308 fixed_int32m4_t global_i32m4;
309 fixed_int64m4_t global_i64m4;
310 
311 fixed_uint8m4_t global_u8m4;
312 fixed_uint16m4_t global_u16m4;
313 fixed_uint32m4_t global_u32m4;
314 fixed_uint64m4_t global_u64m4;
315 
316 fixed_float32m4_t global_f32m4;
317 fixed_float64m4_t global_f64m4;
318 
319 fixed_int8m8_t global_i8m8;
320 fixed_int16m8_t global_i16m8;
321 fixed_int32m8_t global_i32m8;
322 fixed_int64m8_t global_i64m8;
323 
324 fixed_uint8m8_t global_u8m8;
325 fixed_uint16m8_t global_u16m8;
326 fixed_uint32m8_t global_u32m8;
327 fixed_uint64m8_t global_u64m8;
328 
329 fixed_float32m8_t global_f32m8;
330 fixed_float64m8_t global_f64m8;
331 
332 fixed_bool1_t global_bool1;
333 fixed_bool2_t global_bool2;
334 fixed_bool4_t global_bool4;
335 fixed_bool8_t global_bool8;
336 fixed_bool16_t global_bool16;
337 fixed_bool32_t global_bool32;
338 fixed_bool64_t global_bool64;
339 
340 //===----------------------------------------------------------------------===//
341 // Global arrays
342 //===----------------------------------------------------------------------===//
343 fixed_int8m1_t global_arr_i8[3];
344 fixed_int16m1_t global_arr_i16[3];
345 fixed_int32m1_t global_arr_i32[3];
346 fixed_int64m1_t global_arr_i64[3];
347 
348 fixed_uint8m1_t global_arr_u8[3];
349 fixed_uint16m1_t global_arr_u16[3];
350 fixed_uint32m1_t global_arr_u32[3];
351 fixed_uint64m1_t global_arr_u64[3];
352 
353 fixed_float32m1_t global_arr_f32[3];
354 fixed_float64m1_t global_arr_f64[3];
355 
356 fixed_int8m2_t global_arr_i8m2[3];
357 fixed_int16m2_t global_arr_i16m2[3];
358 fixed_int32m2_t global_arr_i32m2[3];
359 fixed_int64m2_t global_arr_i64m2[3];
360 
361 fixed_uint8m2_t global_arr_u8m2[3];
362 fixed_uint16m2_t global_arr_u16m2[3];
363 fixed_uint32m2_t global_arr_u32m2[3];
364 fixed_uint64m2_t global_arr_u64m2[3];
365 
366 fixed_float32m2_t global_arr_f32m2[3];
367 fixed_float64m2_t global_arr_f64m2[3];
368 
369 fixed_int8m4_t global_arr_i8m4[3];
370 fixed_int16m4_t global_arr_i16m4[3];
371 fixed_int32m4_t global_arr_i32m4[3];
372 fixed_int64m4_t global_arr_i64m4[3];
373 
374 fixed_uint8m4_t global_arr_u8m4[3];
375 fixed_uint16m4_t global_arr_u16m4[3];
376 fixed_uint32m4_t global_arr_u32m4[3];
377 fixed_uint64m4_t global_arr_u64m4[3];
378 
379 fixed_float32m4_t global_arr_f32m4[3];
380 fixed_float64m4_t global_arr_f64m4[3];
381 
382 fixed_int8m8_t global_arr_i8m8[3];
383 fixed_int16m8_t global_arr_i16m8[3];
384 fixed_int32m8_t global_arr_i32m8[3];
385 fixed_int64m8_t global_arr_i64m8[3];
386 
387 fixed_uint8m8_t global_arr_u8m8[3];
388 fixed_uint16m8_t global_arr_u16m8[3];
389 fixed_uint32m8_t global_arr_u32m8[3];
390 fixed_uint64m8_t global_arr_u64m8[3];
391 
392 fixed_float32m8_t global_arr_f32m8[3];
393 fixed_float64m8_t global_arr_f64m8[3];
394 
395 fixed_bool1_t global_arr_bool1[3];
396 fixed_bool2_t global_arr_bool2[3];
397 fixed_bool4_t global_arr_bool4[3];
398 fixed_bool8_t global_arr_bool8[3];
399 fixed_bool16_t global_arr_bool16[3];
400 fixed_bool32_t global_arr_bool32[3];
401 fixed_bool64_t global_arr_bool64[3];
402 
403 //===----------------------------------------------------------------------===//
404 // Locals
405 //===----------------------------------------------------------------------===//
406 void f() {
407   // Variables
408   fixed_int8m1_t local_i8;
409   fixed_int16m1_t local_i16;
410   fixed_int32m1_t local_i32;
411   fixed_int64m1_t local_i64;
412   fixed_uint8m1_t local_u8;
413   fixed_uint16m1_t local_u16;
414   fixed_uint32m1_t local_u32;
415   fixed_uint64m1_t local_u64;
416   fixed_float32m1_t local_f32;
417   fixed_float64m1_t local_f64;
418 
419   fixed_int8m2_t local_i8m2;
420   fixed_int16m2_t local_i16m2;
421   fixed_int32m2_t local_i32m2;
422   fixed_int64m2_t local_i64m2;
423   fixed_uint8m2_t local_u8m2;
424   fixed_uint16m2_t local_u16m2;
425   fixed_uint32m2_t local_u32m2;
426   fixed_uint64m2_t local_u64m2;
427   fixed_float32m2_t local_f32m2;
428   fixed_float64m2_t local_f64m2;
429 
430   fixed_int8m4_t local_i8m4;
431   fixed_int16m4_t local_i16m4;
432   fixed_int32m4_t local_i32m4;
433   fixed_int64m4_t local_i64m4;
434   fixed_uint8m4_t local_u8m4;
435   fixed_uint16m4_t local_u16m4;
436   fixed_uint32m4_t local_u32m4;
437   fixed_uint64m4_t local_u64m4;
438   fixed_float32m4_t local_f32m4;
439   fixed_float64m4_t local_f64m4;
440 
441   fixed_int8m8_t local_i8m8;
442   fixed_int16m8_t local_i16m8;
443   fixed_int32m8_t local_i32m8;
444   fixed_int64m8_t local_i64m8;
445   fixed_uint8m8_t local_u8m8;
446   fixed_uint16m8_t local_u16m8;
447   fixed_uint32m8_t local_u32m8;
448   fixed_uint64m8_t local_u64m8;
449   fixed_float32m8_t local_f32m8;
450   fixed_float64m8_t local_f64m8;
451 
452   fixed_bool1_t local_bool1;
453   fixed_bool2_t local_bool2;
454   fixed_bool4_t local_bool4;
455   fixed_bool8_t local_bool8;
456   fixed_bool16_t local_bool16;
457   fixed_bool32_t local_bool32;
458   fixed_bool64_t local_bool64;
459 
460   // Arrays
461   fixed_int8m1_t local_arr_i8[3];
462   fixed_int16m1_t local_arr_i16[3];
463   fixed_int32m1_t local_arr_i32[3];
464   fixed_int64m1_t local_arr_i64[3];
465   fixed_uint8m1_t local_arr_u8[3];
466   fixed_uint16m1_t local_arr_u16[3];
467   fixed_uint32m1_t local_arr_u32[3];
468   fixed_uint64m1_t local_arr_u64[3];
469   fixed_float32m1_t local_arr_f32[3];
470   fixed_float64m1_t local_arr_f64[3];
471 
472   fixed_int8m2_t local_arr_i8m2[3];
473   fixed_int16m2_t local_arr_i16m2[3];
474   fixed_int32m2_t local_arr_i32m2[3];
475   fixed_int64m2_t local_arr_i64m2[3];
476   fixed_uint8m2_t local_arr_u8m2[3];
477   fixed_uint16m2_t local_arr_u16m2[3];
478   fixed_uint32m2_t local_arr_u32m2[3];
479   fixed_uint64m2_t local_arr_u64m2[3];
480   fixed_float32m2_t local_arr_f32m2[3];
481   fixed_float64m2_t local_arr_f64m2[3];
482 
483   fixed_int8m4_t local_arr_i8m4[3];
484   fixed_int16m4_t local_arr_i16m4[3];
485   fixed_int32m4_t local_arr_i32m4[3];
486   fixed_int64m4_t local_arr_i64m4[3];
487   fixed_uint8m4_t local_arr_u8m4[3];
488   fixed_uint16m4_t local_arr_u16m4[3];
489   fixed_uint32m4_t local_arr_u32m4[3];
490   fixed_uint64m4_t local_arr_u64m4[3];
491   fixed_float32m4_t local_arr_f32m4[3];
492   fixed_float64m4_t local_arr_f64m4[3];
493 
494   fixed_int8m8_t local_arr_i8m8[3];
495   fixed_int16m8_t local_arr_i16m8[3];
496   fixed_int32m8_t local_arr_i32m8[3];
497   fixed_int64m8_t local_arr_i64m8[3];
498   fixed_uint8m8_t local_arr_u8m8[3];
499   fixed_uint16m8_t local_arr_u16m8[3];
500   fixed_uint32m8_t local_arr_u32m8[3];
501   fixed_uint64m8_t local_arr_u64m8[3];
502   fixed_float32m8_t local_arr_f32m8[3];
503   fixed_float64m8_t local_arr_f64m8[3];
504 
505   fixed_int8mf2_t local_arr_i8mf2[3];
506   fixed_int16mf2_t local_arr_i16mf2[3];
507   fixed_int32mf2_t local_arr_i32mf2[3];
508   fixed_uint8mf2_t local_arr_u8mf2[3];
509   fixed_uint16mf2_t local_arr_u16mf2[3];
510   fixed_uint32mf2_t local_arr_u32mf2[3];
511   fixed_float32mf2_t local_arr_f32mf2[3];
512 
513   fixed_int8mf4_t local_arr_i8mf4[3];
514   fixed_int16mf4_t local_arr_i16mf4[3];
515   fixed_uint8mf4_t local_arr_u8mf4[3];
516   fixed_uint16mf4_t local_arr_u16mf4[3];
517 
518   fixed_int8mf8_t local_arr_i8mf8[3];
519   fixed_uint8mf8_t local_arr_u8mf8[3];
520 
521   fixed_bool1_t local_arr_bool1[3];
522   fixed_bool2_t local_arr_bool2[3];
523   fixed_bool4_t local_arr_bool4[3];
524   fixed_bool8_t local_arr_bool8[3];
525   fixed_bool16_t local_arr_bool16[3];
526   fixed_bool32_t local_arr_bool32[3];
527   fixed_bool64_t local_arr_bool64[3];
528 }
529 
530 //===----------------------------------------------------------------------===//
531 // Structs and unions
532 //===----------------------------------------------------------------------===//
533 // CHECK-64:      %struct.struct_int8m1 = type { <8 x i8> }
534 // CHECK-64-NEXT: %struct.struct_int16m1 = type { <4 x i16> }
535 // CHECK-64-NEXT: %struct.struct_int32m1 = type { <2 x i32> }
536 // CHECK-64-NEXT: %struct.struct_int64m1 = type { <1 x i64> }
537 // CHECK-64-NEXT: %struct.struct_uint8m1 = type { <8 x i8> }
538 // CHECK-64-NEXT: %struct.struct_uint16m1 = type { <4 x i16> }
539 // CHECK-64-NEXT: %struct.struct_uint32m1 = type { <2 x i32> }
540 // CHECK-64-NEXT: %struct.struct_uint64m1 = type { <1 x i64> }
541 // CHECK-64-NEXT: %struct.struct_float32m1 = type { <2 x float> }
542 // CHECK-64-NEXT: %struct.struct_float64m1 = type { <1 x double> }
543 // CHECK-64-NEXT: %struct.struct_int8m2 = type { <16 x i8> }
544 // CHECK-64-NEXT: %struct.struct_int16m2 = type { <8 x i16> }
545 // CHECK-64-NEXT: %struct.struct_int32m2 = type { <4 x i32> }
546 // CHECK-64-NEXT: %struct.struct_int64m2 = type { <2 x i64> }
547 // CHECK-64-NEXT: %struct.struct_uint8m2 = type { <16 x i8> }
548 // CHECK-64-NEXT: %struct.struct_uint16m2 = type { <8 x i16> }
549 // CHECK-64-NEXT: %struct.struct_uint32m2 = type { <4 x i32> }
550 // CHECK-64-NEXT: %struct.struct_uint64m2 = type { <2 x i64> }
551 // CHECK-64-NEXT: %struct.struct_float32m2 = type { <4 x float> }
552 // CHECK-64-NEXT: %struct.struct_float64m2 = type { <2 x double> }
553 // CHECK-64-NEXT: %struct.struct_int8m4 = type { <32 x i8> }
554 // CHECK-64-NEXT: %struct.struct_int16m4 = type { <16 x i16> }
555 // CHECK-64-NEXT: %struct.struct_int32m4 = type { <8 x i32> }
556 // CHECK-64-NEXT: %struct.struct_int64m4 = type { <4 x i64> }
557 // CHECK-64-NEXT: %struct.struct_uint8m4 = type { <32 x i8> }
558 // CHECK-64-NEXT: %struct.struct_uint16m4 = type { <16 x i16> }
559 // CHECK-64-NEXT: %struct.struct_uint32m4 = type { <8 x i32> }
560 // CHECK-64-NEXT: %struct.struct_uint64m4 = type { <4 x i64> }
561 // CHECK-64-NEXT: %struct.struct_float32m4 = type { <8 x float> }
562 // CHECK-64-NEXT: %struct.struct_float64m4 = type { <4 x double> }
563 // CHECK-64-NEXT: %struct.struct_int8m8 = type { <64 x i8> }
564 // CHECK-64-NEXT: %struct.struct_int16m8 = type { <32 x i16> }
565 // CHECK-64-NEXT: %struct.struct_int32m8 = type { <16 x i32> }
566 // CHECK-64-NEXT: %struct.struct_int64m8 = type { <8 x i64> }
567 // CHECK-64-NEXT: %struct.struct_uint8m8 = type { <64 x i8> }
568 // CHECK-64-NEXT: %struct.struct_uint16m8 = type { <32 x i16> }
569 // CHECK-64-NEXT: %struct.struct_uint32m8 = type { <16 x i32> }
570 // CHECK-64-NEXT: %struct.struct_uint64m8 = type { <8 x i64> }
571 // CHECK-64-NEXT: %struct.struct_float32m8 = type { <16 x float> }
572 // CHECK-64-NEXT: %struct.struct_float64m8 = type { <8 x double> }
573 // CHECK-64-NEXT: %struct.struct_bool1 = type { <8 x i8> }
574 // CHECK-64-NEXT: %struct.struct_bool2 = type { <4 x i8> }
575 // CHECK-64-NEXT: %struct.struct_bool4 = type { <2 x i8> }
576 // CHECK-64-NEXT: %struct.struct_bool8 = type { <1 x i8> }
577 // CHECK-64-NEXT: %struct.struct_bool16 = type { <1 x i8> }
578 // CHECK-64-NEXT: %struct.struct_bool32 = type { <1 x i8> }
579 // CHECK-64-NEXT: %struct.struct_bool64 = type { <1 x i8> }
580 
581 // CHECK-128:      %struct.struct_int8m1 = type { <16 x i8> }
582 // CHECK-128-NEXT: %struct.struct_int16m1 = type { <8 x i16> }
583 // CHECK-128-NEXT: %struct.struct_int32m1 = type { <4 x i32> }
584 // CHECK-128-NEXT: %struct.struct_int64m1 = type { <2 x i64> }
585 // CHECK-128-NEXT: %struct.struct_uint8m1 = type { <16 x i8> }
586 // CHECK-128-NEXT: %struct.struct_uint16m1 = type { <8 x i16> }
587 // CHECK-128-NEXT: %struct.struct_uint32m1 = type { <4 x i32> }
588 // CHECK-128-NEXT: %struct.struct_uint64m1 = type { <2 x i64> }
589 // CHECK-128-NEXT: %struct.struct_float32m1 = type { <4 x float> }
590 // CHECK-128-NEXT: %struct.struct_float64m1 = type { <2 x double> }
591 // CHECK-128-NEXT: %struct.struct_int8m2 = type { <32 x i8> }
592 // CHECK-128-NEXT: %struct.struct_int16m2 = type { <16 x i16> }
593 // CHECK-128-NEXT: %struct.struct_int32m2 = type { <8 x i32> }
594 // CHECK-128-NEXT: %struct.struct_int64m2 = type { <4 x i64> }
595 // CHECK-128-NEXT: %struct.struct_uint8m2 = type { <32 x i8> }
596 // CHECK-128-NEXT: %struct.struct_uint16m2 = type { <16 x i16> }
597 // CHECK-128-NEXT: %struct.struct_uint32m2 = type { <8 x i32> }
598 // CHECK-128-NEXT: %struct.struct_uint64m2 = type { <4 x i64> }
599 // CHECK-128-NEXT: %struct.struct_float32m2 = type { <8 x float> }
600 // CHECK-128-NEXT: %struct.struct_float64m2 = type { <4 x double> }
601 // CHECK-128-NEXT: %struct.struct_int8m4 = type { <64 x i8> }
602 // CHECK-128-NEXT: %struct.struct_int16m4 = type { <32 x i16> }
603 // CHECK-128-NEXT: %struct.struct_int32m4 = type { <16 x i32> }
604 // CHECK-128-NEXT: %struct.struct_int64m4 = type { <8 x i64> }
605 // CHECK-128-NEXT: %struct.struct_uint8m4 = type { <64 x i8> }
606 // CHECK-128-NEXT: %struct.struct_uint16m4 = type { <32 x i16> }
607 // CHECK-128-NEXT: %struct.struct_uint32m4 = type { <16 x i32> }
608 // CHECK-128-NEXT: %struct.struct_uint64m4 = type { <8 x i64> }
609 // CHECK-128-NEXT: %struct.struct_float32m4 = type { <16 x float> }
610 // CHECK-128-NEXT: %struct.struct_float64m4 = type { <8 x double> }
611 // CHECK-128-NEXT: %struct.struct_int8m8 = type { <128 x i8> }
612 // CHECK-128-NEXT: %struct.struct_int16m8 = type { <64 x i16> }
613 // CHECK-128-NEXT: %struct.struct_int32m8 = type { <32 x i32> }
614 // CHECK-128-NEXT: %struct.struct_int64m8 = type { <16 x i64> }
615 // CHECK-128-NEXT: %struct.struct_uint8m8 = type { <128 x i8> }
616 // CHECK-128-NEXT: %struct.struct_uint16m8 = type { <64 x i16> }
617 // CHECK-128-NEXT: %struct.struct_uint32m8 = type { <32 x i32> }
618 // CHECK-128-NEXT: %struct.struct_uint64m8 = type { <16 x i64> }
619 // CHECK-128-NEXT: %struct.struct_float32m8 = type { <32 x float> }
620 // CHECK-128-NEXT: %struct.struct_float64m8 = type { <16 x double> }
621 // CHECK-128-NEXT: %struct.struct_bool1 = type { <16 x i8> }
622 // CHECK-128-NEXT: %struct.struct_bool2 = type { <8 x i8> }
623 // CHECK-128-NEXT: %struct.struct_bool4 = type { <4 x i8> }
624 // CHECK-128-NEXT: %struct.struct_bool8 = type { <2 x i8> }
625 // CHECK-128-NEXT: %struct.struct_bool16 = type { <1 x i8> }
626 // CHECK-128-NEXT: %struct.struct_bool32 = type { <1 x i8> }
627 // CHECK-128-NEXT: %struct.struct_bool64 = type { <1 x i8> }
628 
629 // CHECK-256:      %struct.struct_int8m1 = type { <32 x i8> }
630 // CHECK-256-NEXT: %struct.struct_int16m1 = type { <16 x i16> }
631 // CHECK-256-NEXT: %struct.struct_int32m1 = type { <8 x i32> }
632 // CHECK-256-NEXT: %struct.struct_int64m1 = type { <4 x i64> }
633 // CHECK-256-NEXT: %struct.struct_uint8m1 = type { <32 x i8> }
634 // CHECK-256-NEXT: %struct.struct_uint16m1 = type { <16 x i16> }
635 // CHECK-256-NEXT: %struct.struct_uint32m1 = type { <8 x i32> }
636 // CHECK-256-NEXT: %struct.struct_uint64m1 = type { <4 x i64> }
637 // CHECK-256-NEXT: %struct.struct_float32m1 = type { <8 x float> }
638 // CHECK-256-NEXT: %struct.struct_float64m1 = type { <4 x double> }
639 // CHECK-256-NEXT: %struct.struct_int8m2 = type { <64 x i8> }
640 // CHECK-256-NEXT: %struct.struct_int16m2 = type { <32 x i16> }
641 // CHECK-256-NEXT: %struct.struct_int32m2 = type { <16 x i32> }
642 // CHECK-256-NEXT: %struct.struct_int64m2 = type { <8 x i64> }
643 // CHECK-256-NEXT: %struct.struct_uint8m2 = type { <64 x i8> }
644 // CHECK-256-NEXT: %struct.struct_uint16m2 = type { <32 x i16> }
645 // CHECK-256-NEXT: %struct.struct_uint32m2 = type { <16 x i32> }
646 // CHECK-256-NEXT: %struct.struct_uint64m2 = type { <8 x i64> }
647 // CHECK-256-NEXT: %struct.struct_float32m2 = type { <16 x float> }
648 // CHECK-256-NEXT: %struct.struct_float64m2 = type { <8 x double> }
649 // CHECK-256-NEXT: %struct.struct_int8m4 = type { <128 x i8> }
650 // CHECK-256-NEXT: %struct.struct_int16m4 = type { <64 x i16> }
651 // CHECK-256-NEXT: %struct.struct_int32m4 = type { <32 x i32> }
652 // CHECK-256-NEXT: %struct.struct_int64m4 = type { <16 x i64> }
653 // CHECK-256-NEXT: %struct.struct_uint8m4 = type { <128 x i8> }
654 // CHECK-256-NEXT: %struct.struct_uint16m4 = type { <64 x i16> }
655 // CHECK-256-NEXT: %struct.struct_uint32m4 = type { <32 x i32> }
656 // CHECK-256-NEXT: %struct.struct_uint64m4 = type { <16 x i64> }
657 // CHECK-256-NEXT: %struct.struct_float32m4 = type { <32 x float> }
658 // CHECK-256-NEXT: %struct.struct_float64m4 = type { <16 x double> }
659 // CHECK-256-NEXT: %struct.struct_int8m8 = type { <256 x i8> }
660 // CHECK-256-NEXT: %struct.struct_int16m8 = type { <128 x i16> }
661 // CHECK-256-NEXT: %struct.struct_int32m8 = type { <64 x i32> }
662 // CHECK-256-NEXT: %struct.struct_int64m8 = type { <32 x i64> }
663 // CHECK-256-NEXT: %struct.struct_uint8m8 = type { <256 x i8> }
664 // CHECK-256-NEXT: %struct.struct_uint16m8 = type { <128 x i16> }
665 // CHECK-256-NEXT: %struct.struct_uint32m8 = type { <64 x i32> }
666 // CHECK-256-NEXT: %struct.struct_uint64m8 = type { <32 x i64> }
667 // CHECK-256-NEXT: %struct.struct_float32m8 = type { <64 x float> }
668 // CHECK-256-NEXT: %struct.struct_float64m8 = type { <32 x double> }
669 // CHECK-256-NEXT: %struct.struct_bool1 = type { <32 x i8> }
670 // CHECK-256-NEXT: %struct.struct_bool2 = type { <16 x i8> }
671 // CHECK-256-NEXT: %struct.struct_bool4 = type { <8 x i8> }
672 // CHECK-256-NEXT: %struct.struct_bool8 = type { <4 x i8> }
673 // CHECK-256-NEXT: %struct.struct_bool16 = type { <2 x i8> }
674 // CHECK-256-NEXT: %struct.struct_bool32 = type { <1 x i8> }
675 // CHECK-256-NEXT: %struct.struct_bool64 = type { <1 x i8> }
676 
677 // CHECK-512:      %struct.struct_int8m1 = type { <64 x i8> }
678 // CHECK-512-NEXT: %struct.struct_int16m1 = type { <32 x i16> }
679 // CHECK-512-NEXT: %struct.struct_int32m1 = type { <16 x i32> }
680 // CHECK-512-NEXT: %struct.struct_int64m1 = type { <8 x i64> }
681 // CHECK-512-NEXT: %struct.struct_uint8m1 = type { <64 x i8> }
682 // CHECK-512-NEXT: %struct.struct_uint16m1 = type { <32 x i16> }
683 // CHECK-512-NEXT: %struct.struct_uint32m1 = type { <16 x i32> }
684 // CHECK-512-NEXT: %struct.struct_uint64m1 = type { <8 x i64> }
685 // CHECK-512-NEXT: %struct.struct_float32m1 = type { <16 x float> }
686 // CHECK-512-NEXT: %struct.struct_float64m1 = type { <8 x double> }
687 // CHECK-512-NEXT: %struct.struct_int8m2 = type { <128 x i8> }
688 // CHECK-512-NEXT: %struct.struct_int16m2 = type { <64 x i16> }
689 // CHECK-512-NEXT: %struct.struct_int32m2 = type { <32 x i32> }
690 // CHECK-512-NEXT: %struct.struct_int64m2 = type { <16 x i64> }
691 // CHECK-512-NEXT: %struct.struct_uint8m2 = type { <128 x i8> }
692 // CHECK-512-NEXT: %struct.struct_uint16m2 = type { <64 x i16> }
693 // CHECK-512-NEXT: %struct.struct_uint32m2 = type { <32 x i32> }
694 // CHECK-512-NEXT: %struct.struct_uint64m2 = type { <16 x i64> }
695 // CHECK-512-NEXT: %struct.struct_float32m2 = type { <32 x float> }
696 // CHECK-512-NEXT: %struct.struct_float64m2 = type { <16 x double> }
697 // CHECK-512-NEXT: %struct.struct_int8m4 = type { <256 x i8> }
698 // CHECK-512-NEXT: %struct.struct_int16m4 = type { <128 x i16> }
699 // CHECK-512-NEXT: %struct.struct_int32m4 = type { <64 x i32> }
700 // CHECK-512-NEXT: %struct.struct_int64m4 = type { <32 x i64> }
701 // CHECK-512-NEXT: %struct.struct_uint8m4 = type { <256 x i8> }
702 // CHECK-512-NEXT: %struct.struct_uint16m4 = type { <128 x i16> }
703 // CHECK-512-NEXT: %struct.struct_uint32m4 = type { <64 x i32> }
704 // CHECK-512-NEXT: %struct.struct_uint64m4 = type { <32 x i64> }
705 // CHECK-512-NEXT: %struct.struct_float32m4 = type { <64 x float> }
706 // CHECK-512-NEXT: %struct.struct_float64m4 = type { <32 x double> }
707 // CHECK-512-NEXT: %struct.struct_int8m8 = type { <512 x i8> }
708 // CHECK-512-NEXT: %struct.struct_int16m8 = type { <256 x i16> }
709 // CHECK-512-NEXT: %struct.struct_int32m8 = type { <128 x i32> }
710 // CHECK-512-NEXT: %struct.struct_int64m8 = type { <64 x i64> }
711 // CHECK-512-NEXT: %struct.struct_uint8m8 = type { <512 x i8> }
712 // CHECK-512-NEXT: %struct.struct_uint16m8 = type { <256 x i16> }
713 // CHECK-512-NEXT: %struct.struct_uint32m8 = type { <128 x i32> }
714 // CHECK-512-NEXT: %struct.struct_uint64m8 = type { <64 x i64> }
715 // CHECK-512-NEXT: %struct.struct_float32m8 = type { <128 x float> }
716 // CHECK-512-NEXT: %struct.struct_float64m8 = type { <64 x double> }
717 // CHECK-512-NEXT: %struct.struct_bool1 = type { <64 x i8> }
718 // CHECK-512-NEXT: %struct.struct_bool2 = type { <32 x i8> }
719 // CHECK-512-NEXT: %struct.struct_bool4 = type { <16 x i8> }
720 // CHECK-512-NEXT: %struct.struct_bool8 = type { <8 x i8> }
721 // CHECK-512-NEXT: %struct.struct_bool16 = type { <4 x i8> }
722 // CHECK-512-NEXT: %struct.struct_bool32 = type { <2 x i8> }
723 // CHECK-512-NEXT: %struct.struct_bool64 = type { <1 x i8> }
724 
725 // CHECK-1024:      %struct.struct_int8m1 = type { <128 x i8> }
726 // CHECK-1024-NEXT: %struct.struct_int16m1 = type { <64 x i16> }
727 // CHECK-1024-NEXT: %struct.struct_int32m1 = type { <32 x i32> }
728 // CHECK-1024-NEXT: %struct.struct_int64m1 = type { <16 x i64> }
729 // CHECK-1024-NEXT: %struct.struct_uint8m1 = type { <128 x i8> }
730 // CHECK-1024-NEXT: %struct.struct_uint16m1 = type { <64 x i16> }
731 // CHECK-1024-NEXT: %struct.struct_uint32m1 = type { <32 x i32> }
732 // CHECK-1024-NEXT: %struct.struct_uint64m1 = type { <16 x i64> }
733 // CHECK-1024-NEXT: %struct.struct_float32m1 = type { <32 x float> }
734 // CHECK-1024-NEXT: %struct.struct_float64m1 = type { <16 x double> }
735 // CHECK-1024-NEXT: %struct.struct_int8m2 = type { <256 x i8> }
736 // CHECK-1024-NEXT: %struct.struct_int16m2 = type { <128 x i16> }
737 // CHECK-1024-NEXT: %struct.struct_int32m2 = type { <64 x i32> }
738 // CHECK-1024-NEXT: %struct.struct_int64m2 = type { <32 x i64> }
739 // CHECK-1024-NEXT: %struct.struct_uint8m2 = type { <256 x i8> }
740 // CHECK-1024-NEXT: %struct.struct_uint16m2 = type { <128 x i16> }
741 // CHECK-1024-NEXT: %struct.struct_uint32m2 = type { <64 x i32> }
742 // CHECK-1024-NEXT: %struct.struct_uint64m2 = type { <32 x i64> }
743 // CHECK-1024-NEXT: %struct.struct_float32m2 = type { <64 x float> }
744 // CHECK-1024-NEXT: %struct.struct_float64m2 = type { <32 x double> }
745 // CHECK-1024-NEXT: %struct.struct_int8m4 = type { <512 x i8> }
746 // CHECK-1024-NEXT: %struct.struct_int16m4 = type { <256 x i16> }
747 // CHECK-1024-NEXT: %struct.struct_int32m4 = type { <128 x i32> }
748 // CHECK-1024-NEXT: %struct.struct_int64m4 = type { <64 x i64> }
749 // CHECK-1024-NEXT: %struct.struct_uint8m4 = type { <512 x i8> }
750 // CHECK-1024-NEXT: %struct.struct_uint16m4 = type { <256 x i16> }
751 // CHECK-1024-NEXT: %struct.struct_uint32m4 = type { <128 x i32> }
752 // CHECK-1024-NEXT: %struct.struct_uint64m4 = type { <64 x i64> }
753 // CHECK-1024-NEXT: %struct.struct_float32m4 = type { <128 x float> }
754 // CHECK-1024-NEXT: %struct.struct_float64m4 = type { <64 x double> }
755 // CHECK-1024-NEXT: %struct.struct_int8m8 = type { <1024 x i8> }
756 // CHECK-1024-NEXT: %struct.struct_int16m8 = type { <512 x i16> }
757 // CHECK-1024-NEXT: %struct.struct_int32m8 = type { <256 x i32> }
758 // CHECK-1024-NEXT: %struct.struct_int64m8 = type { <128 x i64> }
759 // CHECK-1024-NEXT: %struct.struct_uint8m8 = type { <1024 x i8> }
760 // CHECK-1024-NEXT: %struct.struct_uint16m8 = type { <512 x i16> }
761 // CHECK-1024-NEXT: %struct.struct_uint32m8 = type { <256 x i32> }
762 // CHECK-1024-NEXT: %struct.struct_uint64m8 = type { <128 x i64> }
763 // CHECK-1024-NEXT: %struct.struct_float32m8 = type { <256 x float> }
764 // CHECK-1024-NEXT: %struct.struct_float64m8 = type { <128 x double> }
765 // CHECK-1024-NEXT: %struct.struct_bool1 = type { <128 x i8> }
766 // CHECK-1024-NEXT: %struct.struct_bool2 = type { <64 x i8> }
767 // CHECK-1024-NEXT: %struct.struct_bool4 = type { <32 x i8> }
768 // CHECK-1024-NEXT: %struct.struct_bool8 = type { <16 x i8> }
769 // CHECK-1024-NEXT: %struct.struct_bool16 = type { <8 x i8> }
770 // CHECK-1024-NEXT: %struct.struct_bool32 = type { <4 x i8> }
771 // CHECK-1024-NEXT: %struct.struct_bool64 = type { <2 x i8> }
772 
773 // CHECK-64:      %union.union_int8m1 = type { <8 x i8> }
774 // CHECK-64-NEXT: %union.union_int16m1 = type { <4 x i16> }
775 // CHECK-64-NEXT: %union.union_int32m1 = type { <2 x i32> }
776 // CHECK-64-NEXT: %union.union_int64m1 = type { <1 x i64> }
777 // CHECK-64-NEXT: %union.union_uint8m1 = type { <8 x i8> }
778 // CHECK-64-NEXT: %union.union_uint16m1 = type { <4 x i16> }
779 // CHECK-64-NEXT: %union.union_uint32m1 = type { <2 x i32> }
780 // CHECK-64-NEXT: %union.union_uint64m1 = type { <1 x i64> }
781 // CHECK-64-NEXT: %union.union_float32m1 = type { <2 x float> }
782 // CHECK-64-NEXT: %union.union_float64m1 = type { <1 x double> }
783 // CHECK-64-NEXT: %union.union_int8m2 = type { <16 x i8> }
784 // CHECK-64-NEXT: %union.union_int16m2 = type { <8 x i16> }
785 // CHECK-64-NEXT: %union.union_int32m2 = type { <4 x i32> }
786 // CHECK-64-NEXT: %union.union_int64m2 = type { <2 x i64> }
787 // CHECK-64-NEXT: %union.union_uint8m2 = type { <16 x i8> }
788 // CHECK-64-NEXT: %union.union_uint16m2 = type { <8 x i16> }
789 // CHECK-64-NEXT: %union.union_uint32m2 = type { <4 x i32> }
790 // CHECK-64-NEXT: %union.union_uint64m2 = type { <2 x i64> }
791 // CHECK-64-NEXT: %union.union_float32m2 = type { <4 x float> }
792 // CHECK-64-NEXT: %union.union_float64m2 = type { <2 x double> }
793 // CHECK-64-NEXT: %union.union_int8m4 = type { <32 x i8> }
794 // CHECK-64-NEXT: %union.union_int16m4 = type { <16 x i16> }
795 // CHECK-64-NEXT: %union.union_int32m4 = type { <8 x i32> }
796 // CHECK-64-NEXT: %union.union_int64m4 = type { <4 x i64> }
797 // CHECK-64-NEXT: %union.union_uint8m4 = type { <32 x i8> }
798 // CHECK-64-NEXT: %union.union_uint16m4 = type { <16 x i16> }
799 // CHECK-64-NEXT: %union.union_uint32m4 = type { <8 x i32> }
800 // CHECK-64-NEXT: %union.union_uint64m4 = type { <4 x i64> }
801 // CHECK-64-NEXT: %union.union_float32m4 = type { <8 x float> }
802 // CHECK-64-NEXT: %union.union_float64m4 = type { <4 x double> }
803 // CHECK-64-NEXT: %union.union_int8m8 = type { <64 x i8> }
804 // CHECK-64-NEXT: %union.union_int16m8 = type { <32 x i16> }
805 // CHECK-64-NEXT: %union.union_int32m8 = type { <16 x i32> }
806 // CHECK-64-NEXT: %union.union_int64m8 = type { <8 x i64> }
807 // CHECK-64-NEXT: %union.union_uint8m8 = type { <64 x i8> }
808 // CHECK-64-NEXT: %union.union_uint16m8 = type { <32 x i16> }
809 // CHECK-64-NEXT: %union.union_uint32m8 = type { <16 x i32> }
810 // CHECK-64-NEXT: %union.union_uint64m8 = type { <8 x i64> }
811 // CHECK-64-NEXT: %union.union_float32m8 = type { <16 x float> }
812 // CHECK-64-NEXT: %union.union_float64m8 = type { <8 x double> }
813 // CHECK-64-NEXT: %union.union_bool1 = type { <8 x i8> }
814 // CHECK-64-NEXT: %union.union_bool2 = type { <4 x i8> }
815 // CHECK-64-NEXT: %union.union_bool4 = type { <2 x i8> }
816 // CHECK-64-NEXT: %union.union_bool8 = type { <1 x i8> }
817 // CHECK-64-NEXT: %union.union_bool16 = type { <1 x i8> }
818 // CHECK-64-NEXT: %union.union_bool32 = type { <1 x i8> }
819 // CHECK-64-NEXT: %union.union_bool64 = type { <1 x i8> }
820 
821 // CHECK-128:      %union.union_int8m1 = type { <16 x i8> }
822 // CHECK-128-NEXT: %union.union_int16m1 = type { <8 x i16> }
823 // CHECK-128-NEXT: %union.union_int32m1 = type { <4 x i32> }
824 // CHECK-128-NEXT: %union.union_int64m1 = type { <2 x i64> }
825 // CHECK-128-NEXT: %union.union_uint8m1 = type { <16 x i8> }
826 // CHECK-128-NEXT: %union.union_uint16m1 = type { <8 x i16> }
827 // CHECK-128-NEXT: %union.union_uint32m1 = type { <4 x i32> }
828 // CHECK-128-NEXT: %union.union_uint64m1 = type { <2 x i64> }
829 // CHECK-128-NEXT: %union.union_float32m1 = type { <4 x float> }
830 // CHECK-128-NEXT: %union.union_float64m1 = type { <2 x double> }
831 // CHECK-128-NEXT: %union.union_int8m2 = type { <32 x i8> }
832 // CHECK-128-NEXT: %union.union_int16m2 = type { <16 x i16> }
833 // CHECK-128-NEXT: %union.union_int32m2 = type { <8 x i32> }
834 // CHECK-128-NEXT: %union.union_int64m2 = type { <4 x i64> }
835 // CHECK-128-NEXT: %union.union_uint8m2 = type { <32 x i8> }
836 // CHECK-128-NEXT: %union.union_uint16m2 = type { <16 x i16> }
837 // CHECK-128-NEXT: %union.union_uint32m2 = type { <8 x i32> }
838 // CHECK-128-NEXT: %union.union_uint64m2 = type { <4 x i64> }
839 // CHECK-128-NEXT: %union.union_float32m2 = type { <8 x float> }
840 // CHECK-128-NEXT: %union.union_float64m2 = type { <4 x double> }
841 // CHECK-128-NEXT: %union.union_int8m4 = type { <64 x i8> }
842 // CHECK-128-NEXT: %union.union_int16m4 = type { <32 x i16> }
843 // CHECK-128-NEXT: %union.union_int32m4 = type { <16 x i32> }
844 // CHECK-128-NEXT: %union.union_int64m4 = type { <8 x i64> }
845 // CHECK-128-NEXT: %union.union_uint8m4 = type { <64 x i8> }
846 // CHECK-128-NEXT: %union.union_uint16m4 = type { <32 x i16> }
847 // CHECK-128-NEXT: %union.union_uint32m4 = type { <16 x i32> }
848 // CHECK-128-NEXT: %union.union_uint64m4 = type { <8 x i64> }
849 // CHECK-128-NEXT: %union.union_float32m4 = type { <16 x float> }
850 // CHECK-128-NEXT: %union.union_float64m4 = type { <8 x double> }
851 // CHECK-128-NEXT: %union.union_int8m8 = type { <128 x i8> }
852 // CHECK-128-NEXT: %union.union_int16m8 = type { <64 x i16> }
853 // CHECK-128-NEXT: %union.union_int32m8 = type { <32 x i32> }
854 // CHECK-128-NEXT: %union.union_int64m8 = type { <16 x i64> }
855 // CHECK-128-NEXT: %union.union_uint8m8 = type { <128 x i8> }
856 // CHECK-128-NEXT: %union.union_uint16m8 = type { <64 x i16> }
857 // CHECK-128-NEXT: %union.union_uint32m8 = type { <32 x i32> }
858 // CHECK-128-NEXT: %union.union_uint64m8 = type { <16 x i64> }
859 // CHECK-128-NEXT: %union.union_float32m8 = type { <32 x float> }
860 // CHECK-128-NEXT: %union.union_float64m8 = type { <16 x double> }
861 // CHECK-128-NEXT: %union.union_bool1 = type { <16 x i8> }
862 // CHECK-128-NEXT: %union.union_bool2 = type { <8 x i8> }
863 // CHECK-128-NEXT: %union.union_bool4 = type { <4 x i8> }
864 // CHECK-128-NEXT: %union.union_bool8 = type { <2 x i8> }
865 // CHECK-128-NEXT: %union.union_bool16 = type { <1 x i8> }
866 // CHECK-128-NEXT: %union.union_bool32 = type { <1 x i8> }
867 // CHECK-128-NEXT: %union.union_bool64 = type { <1 x i8> }
868 
869 // CHECK-256:      %union.union_int8m1 = type { <32 x i8> }
870 // CHECK-256-NEXT: %union.union_int16m1 = type { <16 x i16> }
871 // CHECK-256-NEXT: %union.union_int32m1 = type { <8 x i32> }
872 // CHECK-256-NEXT: %union.union_int64m1 = type { <4 x i64> }
873 // CHECK-256-NEXT: %union.union_uint8m1 = type { <32 x i8> }
874 // CHECK-256-NEXT: %union.union_uint16m1 = type { <16 x i16> }
875 // CHECK-256-NEXT: %union.union_uint32m1 = type { <8 x i32> }
876 // CHECK-256-NEXT: %union.union_uint64m1 = type { <4 x i64> }
877 // CHECK-256-NEXT: %union.union_float32m1 = type { <8 x float> }
878 // CHECK-256-NEXT: %union.union_float64m1 = type { <4 x double> }
879 // CHECK-256-NEXT: %union.union_int8m2 = type { <64 x i8> }
880 // CHECK-256-NEXT: %union.union_int16m2 = type { <32 x i16> }
881 // CHECK-256-NEXT: %union.union_int32m2 = type { <16 x i32> }
882 // CHECK-256-NEXT: %union.union_int64m2 = type { <8 x i64> }
883 // CHECK-256-NEXT: %union.union_uint8m2 = type { <64 x i8> }
884 // CHECK-256-NEXT: %union.union_uint16m2 = type { <32 x i16> }
885 // CHECK-256-NEXT: %union.union_uint32m2 = type { <16 x i32> }
886 // CHECK-256-NEXT: %union.union_uint64m2 = type { <8 x i64> }
887 // CHECK-256-NEXT: %union.union_float32m2 = type { <16 x float> }
888 // CHECK-256-NEXT: %union.union_float64m2 = type { <8 x double> }
889 // CHECK-256-NEXT: %union.union_int8m4 = type { <128 x i8> }
890 // CHECK-256-NEXT: %union.union_int16m4 = type { <64 x i16> }
891 // CHECK-256-NEXT: %union.union_int32m4 = type { <32 x i32> }
892 // CHECK-256-NEXT: %union.union_int64m4 = type { <16 x i64> }
893 // CHECK-256-NEXT: %union.union_uint8m4 = type { <128 x i8> }
894 // CHECK-256-NEXT: %union.union_uint16m4 = type { <64 x i16> }
895 // CHECK-256-NEXT: %union.union_uint32m4 = type { <32 x i32> }
896 // CHECK-256-NEXT: %union.union_uint64m4 = type { <16 x i64> }
897 // CHECK-256-NEXT: %union.union_float32m4 = type { <32 x float> }
898 // CHECK-256-NEXT: %union.union_float64m4 = type { <16 x double> }
899 // CHECK-256-NEXT: %union.union_int8m8 = type { <256 x i8> }
900 // CHECK-256-NEXT: %union.union_int16m8 = type { <128 x i16> }
901 // CHECK-256-NEXT: %union.union_int32m8 = type { <64 x i32> }
902 // CHECK-256-NEXT: %union.union_int64m8 = type { <32 x i64> }
903 // CHECK-256-NEXT: %union.union_uint8m8 = type { <256 x i8> }
904 // CHECK-256-NEXT: %union.union_uint16m8 = type { <128 x i16> }
905 // CHECK-256-NEXT: %union.union_uint32m8 = type { <64 x i32> }
906 // CHECK-256-NEXT: %union.union_uint64m8 = type { <32 x i64> }
907 // CHECK-256-NEXT: %union.union_float32m8 = type { <64 x float> }
908 // CHECK-256-NEXT: %union.union_float64m8 = type { <32 x double> }
909 // CHECK-256-NEXT: %union.union_bool1 = type { <32 x i8> }
910 // CHECK-256-NEXT: %union.union_bool2 = type { <16 x i8> }
911 // CHECK-256-NEXT: %union.union_bool4 = type { <8 x i8> }
912 // CHECK-256-NEXT: %union.union_bool8 = type { <4 x i8> }
913 // CHECK-256-NEXT: %union.union_bool16 = type { <2 x i8> }
914 // CHECK-256-NEXT: %union.union_bool32 = type { <1 x i8> }
915 // CHECK-256-NEXT: %union.union_bool64 = type { <1 x i8> }
916 
917 // CHECK-512:      %union.union_int8m1 = type { <64 x i8> }
918 // CHECK-512-NEXT: %union.union_int16m1 = type { <32 x i16> }
919 // CHECK-512-NEXT: %union.union_int32m1 = type { <16 x i32> }
920 // CHECK-512-NEXT: %union.union_int64m1 = type { <8 x i64> }
921 // CHECK-512-NEXT: %union.union_uint8m1 = type { <64 x i8> }
922 // CHECK-512-NEXT: %union.union_uint16m1 = type { <32 x i16> }
923 // CHECK-512-NEXT: %union.union_uint32m1 = type { <16 x i32> }
924 // CHECK-512-NEXT: %union.union_uint64m1 = type { <8 x i64> }
925 // CHECK-512-NEXT: %union.union_float32m1 = type { <16 x float> }
926 // CHECK-512-NEXT: %union.union_float64m1 = type { <8 x double> }
927 // CHECK-512-NEXT: %union.union_int8m2 = type { <128 x i8> }
928 // CHECK-512-NEXT: %union.union_int16m2 = type { <64 x i16> }
929 // CHECK-512-NEXT: %union.union_int32m2 = type { <32 x i32> }
930 // CHECK-512-NEXT: %union.union_int64m2 = type { <16 x i64> }
931 // CHECK-512-NEXT: %union.union_uint8m2 = type { <128 x i8> }
932 // CHECK-512-NEXT: %union.union_uint16m2 = type { <64 x i16> }
933 // CHECK-512-NEXT: %union.union_uint32m2 = type { <32 x i32> }
934 // CHECK-512-NEXT: %union.union_uint64m2 = type { <16 x i64> }
935 // CHECK-512-NEXT: %union.union_float32m2 = type { <32 x float> }
936 // CHECK-512-NEXT: %union.union_float64m2 = type { <16 x double> }
937 // CHECK-512-NEXT: %union.union_int8m4 = type { <256 x i8> }
938 // CHECK-512-NEXT: %union.union_int16m4 = type { <128 x i16> }
939 // CHECK-512-NEXT: %union.union_int32m4 = type { <64 x i32> }
940 // CHECK-512-NEXT: %union.union_int64m4 = type { <32 x i64> }
941 // CHECK-512-NEXT: %union.union_uint8m4 = type { <256 x i8> }
942 // CHECK-512-NEXT: %union.union_uint16m4 = type { <128 x i16> }
943 // CHECK-512-NEXT: %union.union_uint32m4 = type { <64 x i32> }
944 // CHECK-512-NEXT: %union.union_uint64m4 = type { <32 x i64> }
945 // CHECK-512-NEXT: %union.union_float32m4 = type { <64 x float> }
946 // CHECK-512-NEXT: %union.union_float64m4 = type { <32 x double> }
947 // CHECK-512-NEXT: %union.union_int8m8 = type { <512 x i8> }
948 // CHECK-512-NEXT: %union.union_int16m8 = type { <256 x i16> }
949 // CHECK-512-NEXT: %union.union_int32m8 = type { <128 x i32> }
950 // CHECK-512-NEXT: %union.union_int64m8 = type { <64 x i64> }
951 // CHECK-512-NEXT: %union.union_uint8m8 = type { <512 x i8> }
952 // CHECK-512-NEXT: %union.union_uint16m8 = type { <256 x i16> }
953 // CHECK-512-NEXT: %union.union_uint32m8 = type { <128 x i32> }
954 // CHECK-512-NEXT: %union.union_uint64m8 = type { <64 x i64> }
955 // CHECK-512-NEXT: %union.union_float32m8 = type { <128 x float> }
956 // CHECK-512-NEXT: %union.union_float64m8 = type { <64 x double> }
957 // CHECK-512-NEXT: %union.union_bool1 = type { <64 x i8> }
958 // CHECK-512-NEXT: %union.union_bool2 = type { <32 x i8> }
959 // CHECK-512-NEXT: %union.union_bool4 = type { <16 x i8> }
960 // CHECK-512-NEXT: %union.union_bool8 = type { <8 x i8> }
961 // CHECK-512-NEXT: %union.union_bool16 = type { <4 x i8> }
962 // CHECK-512-NEXT: %union.union_bool32 = type { <2 x i8> }
963 // CHECK-512-NEXT: %union.union_bool64 = type { <1 x i8> }
964 
965 // CHECK-1024:      %union.union_int8m1 = type { <128 x i8> }
966 // CHECK-1024-NEXT: %union.union_int16m1 = type { <64 x i16> }
967 // CHECK-1024-NEXT: %union.union_int32m1 = type { <32 x i32> }
968 // CHECK-1024-NEXT: %union.union_int64m1 = type { <16 x i64> }
969 // CHECK-1024-NEXT: %union.union_uint8m1 = type { <128 x i8> }
970 // CHECK-1024-NEXT: %union.union_uint16m1 = type { <64 x i16> }
971 // CHECK-1024-NEXT: %union.union_uint32m1 = type { <32 x i32> }
972 // CHECK-1024-NEXT: %union.union_uint64m1 = type { <16 x i64> }
973 // CHECK-1024-NEXT: %union.union_float32m1 = type { <32 x float> }
974 // CHECK-1024-NEXT: %union.union_float64m1 = type { <16 x double> }
975 // CHECK-1024-NEXT: %union.union_int8m2 = type { <256 x i8> }
976 // CHECK-1024-NEXT: %union.union_int16m2 = type { <128 x i16> }
977 // CHECK-1024-NEXT: %union.union_int32m2 = type { <64 x i32> }
978 // CHECK-1024-NEXT: %union.union_int64m2 = type { <32 x i64> }
979 // CHECK-1024-NEXT: %union.union_uint8m2 = type { <256 x i8> }
980 // CHECK-1024-NEXT: %union.union_uint16m2 = type { <128 x i16> }
981 // CHECK-1024-NEXT: %union.union_uint32m2 = type { <64 x i32> }
982 // CHECK-1024-NEXT: %union.union_uint64m2 = type { <32 x i64> }
983 // CHECK-1024-NEXT: %union.union_float32m2 = type { <64 x float> }
984 // CHECK-1024-NEXT: %union.union_float64m2 = type { <32 x double> }
985 // CHECK-1024-NEXT: %union.union_int8m4 = type { <512 x i8> }
986 // CHECK-1024-NEXT: %union.union_int16m4 = type { <256 x i16> }
987 // CHECK-1024-NEXT: %union.union_int32m4 = type { <128 x i32> }
988 // CHECK-1024-NEXT: %union.union_int64m4 = type { <64 x i64> }
989 // CHECK-1024-NEXT: %union.union_uint8m4 = type { <512 x i8> }
990 // CHECK-1024-NEXT: %union.union_uint16m4 = type { <256 x i16> }
991 // CHECK-1024-NEXT: %union.union_uint32m4 = type { <128 x i32> }
992 // CHECK-1024-NEXT: %union.union_uint64m4 = type { <64 x i64> }
993 // CHECK-1024-NEXT: %union.union_float32m4 = type { <128 x float> }
994 // CHECK-1024-NEXT: %union.union_float64m4 = type { <64 x double> }
995 // CHECK-1024-NEXT: %union.union_int8m8 = type { <1024 x i8> }
996 // CHECK-1024-NEXT: %union.union_int16m8 = type { <512 x i16> }
997 // CHECK-1024-NEXT: %union.union_int32m8 = type { <256 x i32> }
998 // CHECK-1024-NEXT: %union.union_int64m8 = type { <128 x i64> }
999 // CHECK-1024-NEXT: %union.union_uint8m8 = type { <1024 x i8> }
1000 // CHECK-1024-NEXT: %union.union_uint16m8 = type { <512 x i16> }
1001 // CHECK-1024-NEXT: %union.union_uint32m8 = type { <256 x i32> }
1002 // CHECK-1024-NEXT: %union.union_uint64m8 = type { <128 x i64> }
1003 // CHECK-1024-NEXT: %union.union_float32m8 = type { <256 x float> }
1004 // CHECK-1024-NEXT: %union.union_float64m8 = type { <128 x double> }
1005 // CHECK-1024-NEXT: %union.union_bool1 = type { <128 x i8> }
1006 // CHECK-1024-NEXT: %union.union_bool2 = type { <64 x i8> }
1007 // CHECK-1024-NEXT: %union.union_bool4 = type { <32 x i8> }
1008 // CHECK-1024-NEXT: %union.union_bool8 = type { <16 x i8> }
1009 // CHECK-1024-NEXT: %union.union_bool16 = type { <8 x i8> }
1010 // CHECK-1024-NEXT: %union.union_bool32 = type { <4 x i8> }
1011 // CHECK-1024-NEXT: %union.union_bool64 = type { <2 x i8> }
1012 
1013 //===----------------------------------------------------------------------===//
1014 // Global variables
1015 //===----------------------------------------------------------------------===//
1016 // CHECK-64:      @global_i8 ={{.*}} global <8 x i8> zeroinitializer, align 8
1017 // CHECK-64-NEXT: @global_i16 ={{.*}} global <4 x i16> zeroinitializer, align 8
1018 // CHECK-64-NEXT: @global_i32 ={{.*}} global <2 x i32> zeroinitializer, align 8
1019 // CHECK-64-NEXT: @global_i64 ={{.*}} global <1 x i64> zeroinitializer, align 8
1020 // CHECK-64-NEXT: @global_u8 ={{.*}} global <8 x i8> zeroinitializer, align 8
1021 // CHECK-64-NEXT: @global_u16 ={{.*}} global <4 x i16> zeroinitializer, align 8
1022 // CHECK-64-NEXT: @global_u32 ={{.*}} global <2 x i32> zeroinitializer, align 8
1023 // CHECK-64-NEXT: @global_u64 ={{.*}} global <1 x i64> zeroinitializer, align 8
1024 // CHECK-64-NEXT: @global_f32 ={{.*}} global <2 x float> zeroinitializer, align 8
1025 // CHECK-64-NEXT: @global_f64 ={{.*}} global <1 x double> zeroinitializer, align 8
1026 // CHECK-64-NEXT: @global_i8m2 ={{.*}} global <16 x i8> zeroinitializer, align 8
1027 // CHECK-64-NEXT: @global_i16m2 ={{.*}} global <8 x i16> zeroinitializer, align 8
1028 // CHECK-64-NEXT: @global_i32m2 ={{.*}} global <4 x i32> zeroinitializer, align 8
1029 // CHECK-64-NEXT: @global_i64m2 ={{.*}} global <2 x i64> zeroinitializer, align 8
1030 // CHECK-64-NEXT: @global_u8m2 ={{.*}} global <16 x i8> zeroinitializer, align 8
1031 // CHECK-64-NEXT: @global_u16m2 ={{.*}} global <8 x i16> zeroinitializer, align 8
1032 // CHECK-64-NEXT: @global_u32m2 ={{.*}} global <4 x i32> zeroinitializer, align 8
1033 // CHECK-64-NEXT: @global_u64m2 ={{.*}} global <2 x i64> zeroinitializer, align 8
1034 // CHECK-64-NEXT: @global_f32m2 ={{.*}} global <4 x float> zeroinitializer, align 8
1035 // CHECK-64-NEXT: @global_f64m2 ={{.*}} global <2 x double> zeroinitializer, align 8
1036 // CHECK-64-NEXT: @global_i8m4 ={{.*}} global <32 x i8> zeroinitializer, align 8
1037 // CHECK-64-NEXT: @global_i16m4 ={{.*}} global <16 x i16> zeroinitializer, align 8
1038 // CHECK-64-NEXT: @global_i32m4 ={{.*}} global <8 x i32> zeroinitializer, align 8
1039 // CHECK-64-NEXT: @global_i64m4 ={{.*}} global <4 x i64> zeroinitializer, align 8
1040 // CHECK-64-NEXT: @global_u8m4 ={{.*}} global <32 x i8> zeroinitializer, align 8
1041 // CHECK-64-NEXT: @global_u16m4 ={{.*}} global <16 x i16> zeroinitializer, align 8
1042 // CHECK-64-NEXT: @global_u32m4 ={{.*}} global <8 x i32> zeroinitializer, align 8
1043 // CHECK-64-NEXT: @global_u64m4 ={{.*}} global <4 x i64> zeroinitializer, align 8
1044 // CHECK-64-NEXT: @global_f32m4 ={{.*}} global <8 x float> zeroinitializer, align 8
1045 // CHECK-64-NEXT: @global_f64m4 ={{.*}} global <4 x double> zeroinitializer, align 8
1046 // CHECK-64-NEXT: @global_i8m8 ={{.*}} global <64 x i8> zeroinitializer, align 8
1047 // CHECK-64-NEXT: @global_i16m8 ={{.*}} global <32 x i16> zeroinitializer, align 8
1048 // CHECK-64-NEXT: @global_i32m8 ={{.*}} global <16 x i32> zeroinitializer, align 8
1049 // CHECK-64-NEXT: @global_i64m8 ={{.*}} global <8 x i64> zeroinitializer, align 8
1050 // CHECK-64-NEXT: @global_u8m8 ={{.*}} global <64 x i8> zeroinitializer, align 8
1051 // CHECK-64-NEXT: @global_u16m8 ={{.*}} global <32 x i16> zeroinitializer, align 8
1052 // CHECK-64-NEXT: @global_u32m8 ={{.*}} global <16 x i32> zeroinitializer, align 8
1053 // CHECK-64-NEXT: @global_u64m8 ={{.*}} global <8 x i64> zeroinitializer, align 8
1054 // CHECK-64-NEXT: @global_f32m8 ={{.*}} global <16 x float> zeroinitializer, align 8
1055 // CHECK-64-NEXT: @global_f64m8 ={{.*}} global <8 x double> zeroinitializer, align 8
1056 // CHECK-64-NEXT: @global_bool1 ={{.*}} global <8 x i8> zeroinitializer, align 8
1057 // CHECK-64-NEXT: @global_bool2 ={{.*}} global <4 x i8> zeroinitializer, align 4
1058 // CHECK-64-NEXT: @global_bool4 ={{.*}} global <2 x i8> zeroinitializer, align 2
1059 // CHECK-64-NEXT: @global_bool8 ={{.*}} global <1 x i8> zeroinitializer, align 1
1060 // CHECK-64-NEXT: @global_bool16 ={{.*}} global <1 x i8> zeroinitializer, align 1
1061 // CHECK-64-NEXT: @global_bool32 ={{.*}} global <1 x i8> zeroinitializer, align 1
1062 // CHECK-64-NEXT: @global_bool64 ={{.*}} global <1 x i8> zeroinitializer, align 1
1063 
1064 // CHECK-128:      @global_i8 ={{.*}} global <16 x i8> zeroinitializer, align 8
1065 // CHECK-128-NEXT: @global_i16 ={{.*}} global <8 x i16> zeroinitializer, align 8
1066 // CHECK-128-NEXT: @global_i32 ={{.*}} global <4 x i32> zeroinitializer, align 8
1067 // CHECK-128-NEXT: @global_i64 ={{.*}} global <2 x i64> zeroinitializer, align 8
1068 // CHECK-128-NEXT: @global_u8 ={{.*}} global <16 x i8> zeroinitializer, align 8
1069 // CHECK-128-NEXT: @global_u16 ={{.*}} global <8 x i16> zeroinitializer, align 8
1070 // CHECK-128-NEXT: @global_u32 ={{.*}} global <4 x i32> zeroinitializer, align 8
1071 // CHECK-128-NEXT: @global_u64 ={{.*}} global <2 x i64> zeroinitializer, align 8
1072 // CHECK-128-NEXT: @global_f32 ={{.*}} global <4 x float> zeroinitializer, align 8
1073 // CHECK-128-NEXT: @global_f64 ={{.*}} global <2 x double> zeroinitializer, align 8
1074 // CHECK-128-NEXT: @global_i8m2 ={{.*}} global <32 x i8> zeroinitializer, align 8
1075 // CHECK-128-NEXT: @global_i16m2 ={{.*}} global <16 x i16> zeroinitializer, align 8
1076 // CHECK-128-NEXT: @global_i32m2 ={{.*}} global <8 x i32> zeroinitializer, align 8
1077 // CHECK-128-NEXT: @global_i64m2 ={{.*}} global <4 x i64> zeroinitializer, align 8
1078 // CHECK-128-NEXT: @global_u8m2 ={{.*}} global <32 x i8> zeroinitializer, align 8
1079 // CHECK-128-NEXT: @global_u16m2 ={{.*}} global <16 x i16> zeroinitializer, align 8
1080 // CHECK-128-NEXT: @global_u32m2 ={{.*}} global <8 x i32> zeroinitializer, align 8
1081 // CHECK-128-NEXT: @global_u64m2 ={{.*}} global <4 x i64> zeroinitializer, align 8
1082 // CHECK-128-NEXT: @global_f32m2 ={{.*}} global <8 x float> zeroinitializer, align 8
1083 // CHECK-128-NEXT: @global_f64m2 ={{.*}} global <4 x double> zeroinitializer, align 8
1084 // CHECK-128-NEXT: @global_i8m4 ={{.*}} global <64 x i8> zeroinitializer, align 8
1085 // CHECK-128-NEXT: @global_i16m4 ={{.*}} global <32 x i16> zeroinitializer, align 8
1086 // CHECK-128-NEXT: @global_i32m4 ={{.*}} global <16 x i32> zeroinitializer, align 8
1087 // CHECK-128-NEXT: @global_i64m4 ={{.*}} global <8 x i64> zeroinitializer, align 8
1088 // CHECK-128-NEXT: @global_u8m4 ={{.*}} global <64 x i8> zeroinitializer, align 8
1089 // CHECK-128-NEXT: @global_u16m4 ={{.*}} global <32 x i16> zeroinitializer, align 8
1090 // CHECK-128-NEXT: @global_u32m4 ={{.*}} global <16 x i32> zeroinitializer, align 8
1091 // CHECK-128-NEXT: @global_u64m4 ={{.*}} global <8 x i64> zeroinitializer, align 8
1092 // CHECK-128-NEXT: @global_f32m4 ={{.*}} global <16 x float> zeroinitializer, align 8
1093 // CHECK-128-NEXT: @global_f64m4 ={{.*}} global <8 x double> zeroinitializer, align 8
1094 // CHECK-128-NEXT: @global_i8m8 ={{.*}} global <128 x i8> zeroinitializer, align 8
1095 // CHECK-128-NEXT: @global_i16m8 ={{.*}} global <64 x i16> zeroinitializer, align 8
1096 // CHECK-128-NEXT: @global_i32m8 ={{.*}} global <32 x i32> zeroinitializer, align 8
1097 // CHECK-128-NEXT: @global_i64m8 ={{.*}} global <16 x i64> zeroinitializer, align 8
1098 // CHECK-128-NEXT: @global_u8m8 ={{.*}} global <128 x i8> zeroinitializer, align 8
1099 // CHECK-128-NEXT: @global_u16m8 ={{.*}} global <64 x i16> zeroinitializer, align 8
1100 // CHECK-128-NEXT: @global_u32m8 ={{.*}} global <32 x i32> zeroinitializer, align 8
1101 // CHECK-128-NEXT: @global_u64m8 ={{.*}} global <16 x i64> zeroinitializer, align 8
1102 // CHECK-128-NEXT: @global_f32m8 ={{.*}} global <32 x float> zeroinitializer, align 8
1103 // CHECK-128-NEXT: @global_f64m8 ={{.*}} global <16 x double> zeroinitializer, align 8
1104 // CHECK-128-NEXT: @global_bool1 ={{.*}} global <16 x i8> zeroinitializer, align 8
1105 // CHECK-128-NEXT: @global_bool2 ={{.*}} global <8 x i8> zeroinitializer, align 8
1106 // CHECK-128-NEXT: @global_bool4 ={{.*}} global <4 x i8> zeroinitializer, align 4
1107 // CHECK-128-NEXT: @global_bool8 ={{.*}} global <2 x i8> zeroinitializer, align 2
1108 // CHECK-128-NEXT: @global_bool16 ={{.*}} global <1 x i8> zeroinitializer, align 1
1109 // CHECK-128-NEXT: @global_bool32 ={{.*}} global <1 x i8> zeroinitializer, align 1
1110 // CHECK-128-NEXT: @global_bool64 ={{.*}} global <1 x i8> zeroinitializer, align 1
1111 
1112 // CHECK-256:      @global_i8 ={{.*}} global <32 x i8> zeroinitializer, align 8
1113 // CHECK-256-NEXT: @global_i16 ={{.*}} global <16 x i16> zeroinitializer, align 8
1114 // CHECK-256-NEXT: @global_i32 ={{.*}} global <8 x i32> zeroinitializer, align 8
1115 // CHECK-256-NEXT: @global_i64 ={{.*}} global <4 x i64> zeroinitializer, align 8
1116 // CHECK-256-NEXT: @global_u8 ={{.*}} global <32 x i8> zeroinitializer, align 8
1117 // CHECK-256-NEXT: @global_u16 ={{.*}} global <16 x i16> zeroinitializer, align 8
1118 // CHECK-256-NEXT: @global_u32 ={{.*}} global <8 x i32> zeroinitializer, align 8
1119 // CHECK-256-NEXT: @global_u64 ={{.*}} global <4 x i64> zeroinitializer, align 8
1120 // CHECK-256-NEXT: @global_f32 ={{.*}} global <8 x float> zeroinitializer, align 8
1121 // CHECK-256-NEXT: @global_f64 ={{.*}} global <4 x double> zeroinitializer, align 8
1122 // CHECK-256-NEXT: @global_i8m2 ={{.*}} global <64 x i8> zeroinitializer, align 8
1123 // CHECK-256-NEXT: @global_i16m2 ={{.*}} global <32 x i16> zeroinitializer, align 8
1124 // CHECK-256-NEXT: @global_i32m2 ={{.*}} global <16 x i32> zeroinitializer, align 8
1125 // CHECK-256-NEXT: @global_i64m2 ={{.*}} global <8 x i64> zeroinitializer, align 8
1126 // CHECK-256-NEXT: @global_u8m2 ={{.*}} global <64 x i8> zeroinitializer, align 8
1127 // CHECK-256-NEXT: @global_u16m2 ={{.*}} global <32 x i16> zeroinitializer, align 8
1128 // CHECK-256-NEXT: @global_u32m2 ={{.*}} global <16 x i32> zeroinitializer, align 8
1129 // CHECK-256-NEXT: @global_u64m2 ={{.*}} global <8 x i64> zeroinitializer, align 8
1130 // CHECK-256-NEXT: @global_f32m2 ={{.*}} global <16 x float> zeroinitializer, align 8
1131 // CHECK-256-NEXT: @global_f64m2 ={{.*}} global <8 x double> zeroinitializer, align 8
1132 // CHECK-256-NEXT: @global_i8m4 ={{.*}} global <128 x i8> zeroinitializer, align 8
1133 // CHECK-256-NEXT: @global_i16m4 ={{.*}} global <64 x i16> zeroinitializer, align 8
1134 // CHECK-256-NEXT: @global_i32m4 ={{.*}} global <32 x i32> zeroinitializer, align 8
1135 // CHECK-256-NEXT: @global_i64m4 ={{.*}} global <16 x i64> zeroinitializer, align 8
1136 // CHECK-256-NEXT: @global_u8m4 ={{.*}} global <128 x i8> zeroinitializer, align 8
1137 // CHECK-256-NEXT: @global_u16m4 ={{.*}} global <64 x i16> zeroinitializer, align 8
1138 // CHECK-256-NEXT: @global_u32m4 ={{.*}} global <32 x i32> zeroinitializer, align 8
1139 // CHECK-256-NEXT: @global_u64m4 ={{.*}} global <16 x i64> zeroinitializer, align 8
1140 // CHECK-256-NEXT: @global_f32m4 ={{.*}} global <32 x float> zeroinitializer, align 8
1141 // CHECK-256-NEXT: @global_f64m4 ={{.*}} global <16 x double> zeroinitializer, align 8
1142 // CHECK-256-NEXT: @global_i8m8 ={{.*}} global <256 x i8> zeroinitializer, align 8
1143 // CHECK-256-NEXT: @global_i16m8 ={{.*}} global <128 x i16> zeroinitializer, align 8
1144 // CHECK-256-NEXT: @global_i32m8 ={{.*}} global <64 x i32> zeroinitializer, align 8
1145 // CHECK-256-NEXT: @global_i64m8 ={{.*}} global <32 x i64> zeroinitializer, align 8
1146 // CHECK-256-NEXT: @global_u8m8 ={{.*}} global <256 x i8> zeroinitializer, align 8
1147 // CHECK-256-NEXT: @global_u16m8 ={{.*}} global <128 x i16> zeroinitializer, align 8
1148 // CHECK-256-NEXT: @global_u32m8 ={{.*}} global <64 x i32> zeroinitializer, align 8
1149 // CHECK-256-NEXT: @global_u64m8 ={{.*}} global <32 x i64> zeroinitializer, align 8
1150 // CHECK-256-NEXT: @global_f32m8 ={{.*}} global <64 x float> zeroinitializer, align 8
1151 // CHECK-256-NEXT: @global_f64m8 ={{.*}} global <32 x double> zeroinitializer, align 8
1152 // CHECK-256-NEXT: @global_bool1 ={{.*}} global <32 x i8> zeroinitializer, align 8
1153 // CHECK-256-NEXT: @global_bool2 ={{.*}} global <16 x i8> zeroinitializer, align 8
1154 // CHECK-256-NEXT: @global_bool4 ={{.*}} global <8 x i8> zeroinitializer, align 8
1155 // CHECK-256-NEXT: @global_bool8 ={{.*}} global <4 x i8> zeroinitializer, align 4
1156 // CHECK-256-NEXT: @global_bool16 ={{.*}} global <2 x i8> zeroinitializer, align 2
1157 // CHECK-256-NEXT: @global_bool32 ={{.*}} global <1 x i8> zeroinitializer, align 1
1158 // CHECK-256-NEXT: @global_bool64 ={{.*}} global <1 x i8> zeroinitializer, align 1
1159 
1160 // CHECK-512:      @global_i8 ={{.*}} global <64 x i8> zeroinitializer, align 8
1161 // CHECK-512-NEXT: @global_i16 ={{.*}} global <32 x i16> zeroinitializer, align 8
1162 // CHECK-512-NEXT: @global_i32 ={{.*}} global <16 x i32> zeroinitializer, align 8
1163 // CHECK-512-NEXT: @global_i64 ={{.*}} global <8 x i64> zeroinitializer, align 8
1164 // CHECK-512-NEXT: @global_u8 ={{.*}} global <64 x i8> zeroinitializer, align 8
1165 // CHECK-512-NEXT: @global_u16 ={{.*}} global <32 x i16> zeroinitializer, align 8
1166 // CHECK-512-NEXT: @global_u32 ={{.*}} global <16 x i32> zeroinitializer, align 8
1167 // CHECK-512-NEXT: @global_u64 ={{.*}} global <8 x i64> zeroinitializer, align 8
1168 // CHECK-512-NEXT: @global_f32 ={{.*}} global <16 x float> zeroinitializer, align 8
1169 // CHECK-512-NEXT: @global_f64 ={{.*}} global <8 x double> zeroinitializer, align 8
1170 // CHECK-512-NEXT: @global_i8m2 ={{.*}} global <128 x i8> zeroinitializer, align 8
1171 // CHECK-512-NEXT: @global_i16m2 ={{.*}} global <64 x i16> zeroinitializer, align 8
1172 // CHECK-512-NEXT: @global_i32m2 ={{.*}} global <32 x i32> zeroinitializer, align 8
1173 // CHECK-512-NEXT: @global_i64m2 ={{.*}} global <16 x i64> zeroinitializer, align 8
1174 // CHECK-512-NEXT: @global_u8m2 ={{.*}} global <128 x i8> zeroinitializer, align 8
1175 // CHECK-512-NEXT: @global_u16m2 ={{.*}} global <64 x i16> zeroinitializer, align 8
1176 // CHECK-512-NEXT: @global_u32m2 ={{.*}} global <32 x i32> zeroinitializer, align 8
1177 // CHECK-512-NEXT: @global_u64m2 ={{.*}} global <16 x i64> zeroinitializer, align 8
1178 // CHECK-512-NEXT: @global_f32m2 ={{.*}} global <32 x float> zeroinitializer, align 8
1179 // CHECK-512-NEXT: @global_f64m2 ={{.*}} global <16 x double> zeroinitializer, align 8
1180 // CHECK-512-NEXT: @global_i8m4 ={{.*}} global <256 x i8> zeroinitializer, align 8
1181 // CHECK-512-NEXT: @global_i16m4 ={{.*}} global <128 x i16> zeroinitializer, align 8
1182 // CHECK-512-NEXT: @global_i32m4 ={{.*}} global <64 x i32> zeroinitializer, align 8
1183 // CHECK-512-NEXT: @global_i64m4 ={{.*}} global <32 x i64> zeroinitializer, align 8
1184 // CHECK-512-NEXT: @global_u8m4 ={{.*}} global <256 x i8> zeroinitializer, align 8
1185 // CHECK-512-NEXT: @global_u16m4 ={{.*}} global <128 x i16> zeroinitializer, align 8
1186 // CHECK-512-NEXT: @global_u32m4 ={{.*}} global <64 x i32> zeroinitializer, align 8
1187 // CHECK-512-NEXT: @global_u64m4 ={{.*}} global <32 x i64> zeroinitializer, align 8
1188 // CHECK-512-NEXT: @global_f32m4 ={{.*}} global <64 x float> zeroinitializer, align 8
1189 // CHECK-512-NEXT: @global_f64m4 ={{.*}} global <32 x double> zeroinitializer, align 8
1190 // CHECK-512-NEXT: @global_i8m8 ={{.*}} global <512 x i8> zeroinitializer, align 8
1191 // CHECK-512-NEXT: @global_i16m8 ={{.*}} global <256 x i16> zeroinitializer, align 8
1192 // CHECK-512-NEXT: @global_i32m8 ={{.*}} global <128 x i32> zeroinitializer, align 8
1193 // CHECK-512-NEXT: @global_i64m8 ={{.*}} global <64 x i64> zeroinitializer, align 8
1194 // CHECK-512-NEXT: @global_u8m8 ={{.*}} global <512 x i8> zeroinitializer, align 8
1195 // CHECK-512-NEXT: @global_u16m8 ={{.*}} global <256 x i16> zeroinitializer, align 8
1196 // CHECK-512-NEXT: @global_u32m8 ={{.*}} global <128 x i32> zeroinitializer, align 8
1197 // CHECK-512-NEXT: @global_u64m8 ={{.*}} global <64 x i64> zeroinitializer, align 8
1198 // CHECK-512-NEXT: @global_f32m8 ={{.*}} global <128 x float> zeroinitializer, align 8
1199 // CHECK-512-NEXT: @global_f64m8 ={{.*}} global <64 x double> zeroinitializer, align 8
1200 // CHECK-512-NEXT: @global_bool1 ={{.*}} global <64 x i8> zeroinitializer, align 8
1201 // CHECK-512-NEXT: @global_bool2 ={{.*}} global <32 x i8> zeroinitializer, align 8
1202 // CHECK-512-NEXT: @global_bool4 ={{.*}} global <16 x i8> zeroinitializer, align 8
1203 // CHECK-512-NEXT: @global_bool8 ={{.*}} global <8 x i8> zeroinitializer, align 8
1204 // CHECK-512-NEXT: @global_bool16 ={{.*}} global <4 x i8> zeroinitializer, align 4
1205 // CHECK-512-NEXT: @global_bool32 ={{.*}} global <2 x i8> zeroinitializer, align 2
1206 // CHECK-512-NEXT: @global_bool64 ={{.*}} global <1 x i8> zeroinitializer, align 1
1207 
1208 // CHECK-1024:      @global_i8 ={{.*}} global <128 x i8> zeroinitializer, align 8
1209 // CHECK-1024-NEXT: @global_i16 ={{.*}} global <64 x i16> zeroinitializer, align 8
1210 // CHECK-1024-NEXT: @global_i32 ={{.*}} global <32 x i32> zeroinitializer, align 8
1211 // CHECK-1024-NEXT: @global_i64 ={{.*}} global <16 x i64> zeroinitializer, align 8
1212 // CHECK-1024-NEXT: @global_u8 ={{.*}} global <128 x i8> zeroinitializer, align 8
1213 // CHECK-1024-NEXT: @global_u16 ={{.*}} global <64 x i16> zeroinitializer, align 8
1214 // CHECK-1024-NEXT: @global_u32 ={{.*}} global <32 x i32> zeroinitializer, align 8
1215 // CHECK-1024-NEXT: @global_u64 ={{.*}} global <16 x i64> zeroinitializer, align 8
1216 // CHECK-1024-NEXT: @global_f32 ={{.*}} global <32 x float> zeroinitializer, align 8
1217 // CHECK-1024-NEXT: @global_f64 ={{.*}} global <16 x double> zeroinitializer, align 8
1218 // CHECK-1024-NEXT: @global_i8m2 ={{.*}} global <256 x i8> zeroinitializer, align 8
1219 // CHECK-1024-NEXT: @global_i16m2 ={{.*}} global <128 x i16> zeroinitializer, align 8
1220 // CHECK-1024-NEXT: @global_i32m2 ={{.*}} global <64 x i32> zeroinitializer, align 8
1221 // CHECK-1024-NEXT: @global_i64m2 ={{.*}} global <32 x i64> zeroinitializer, align 8
1222 // CHECK-1024-NEXT: @global_u8m2 ={{.*}} global <256 x i8> zeroinitializer, align 8
1223 // CHECK-1024-NEXT: @global_u16m2 ={{.*}} global <128 x i16> zeroinitializer, align 8
1224 // CHECK-1024-NEXT: @global_u32m2 ={{.*}} global <64 x i32> zeroinitializer, align 8
1225 // CHECK-1024-NEXT: @global_u64m2 ={{.*}} global <32 x i64> zeroinitializer, align 8
1226 // CHECK-1024-NEXT: @global_f32m2 ={{.*}} global <64 x float> zeroinitializer, align 8
1227 // CHECK-1024-NEXT: @global_f64m2 ={{.*}} global <32 x double> zeroinitializer, align 8
1228 // CHECK-1024-NEXT: @global_i8m4 ={{.*}} global <512 x i8> zeroinitializer, align 8
1229 // CHECK-1024-NEXT: @global_i16m4 ={{.*}} global <256 x i16> zeroinitializer, align 8
1230 // CHECK-1024-NEXT: @global_i32m4 ={{.*}} global <128 x i32> zeroinitializer, align 8
1231 // CHECK-1024-NEXT: @global_i64m4 ={{.*}} global <64 x i64> zeroinitializer, align 8
1232 // CHECK-1024-NEXT: @global_u8m4 ={{.*}} global <512 x i8> zeroinitializer, align 8
1233 // CHECK-1024-NEXT: @global_u16m4 ={{.*}} global <256 x i16> zeroinitializer, align 8
1234 // CHECK-1024-NEXT: @global_u32m4 ={{.*}} global <128 x i32> zeroinitializer, align 8
1235 // CHECK-1024-NEXT: @global_u64m4 ={{.*}} global <64 x i64> zeroinitializer, align 8
1236 // CHECK-1024-NEXT: @global_f32m4 ={{.*}} global <128 x float> zeroinitializer, align 8
1237 // CHECK-1024-NEXT: @global_f64m4 ={{.*}} global <64 x double> zeroinitializer, align 8
1238 // CHECK-1024-NEXT: @global_i8m8 ={{.*}} global <1024 x i8> zeroinitializer, align 8
1239 // CHECK-1024-NEXT: @global_i16m8 ={{.*}} global <512 x i16> zeroinitializer, align 8
1240 // CHECK-1024-NEXT: @global_i32m8 ={{.*}} global <256 x i32> zeroinitializer, align 8
1241 // CHECK-1024-NEXT: @global_i64m8 ={{.*}} global <128 x i64> zeroinitializer, align 8
1242 // CHECK-1024-NEXT: @global_u8m8 ={{.*}} global <1024 x i8> zeroinitializer, align 8
1243 // CHECK-1024-NEXT: @global_u16m8 ={{.*}} global <512 x i16> zeroinitializer, align 8
1244 // CHECK-1024-NEXT: @global_u32m8 ={{.*}} global <256 x i32> zeroinitializer, align 8
1245 // CHECK-1024-NEXT: @global_u64m8 ={{.*}} global <128 x i64> zeroinitializer, align 8
1246 // CHECK-1024-NEXT: @global_f32m8 ={{.*}} global <256 x float> zeroinitializer, align 8
1247 // CHECK-1024-NEXT: @global_f64m8 ={{.*}} global <128 x double> zeroinitializer, align 8
1248 // CHECK-1024-NEXT: @global_bool1 ={{.*}} global <128 x i8> zeroinitializer, align 8
1249 // CHECK-1024-NEXT: @global_bool2 ={{.*}} global <64 x i8> zeroinitializer, align 8
1250 // CHECK-1024-NEXT: @global_bool4 ={{.*}} global <32 x i8> zeroinitializer, align 8
1251 // CHECK-1024-NEXT: @global_bool8 ={{.*}} global <16 x i8> zeroinitializer, align 8
1252 // CHECK-1024-NEXT: @global_bool16 ={{.*}} global <8 x i8> zeroinitializer, align 8
1253 // CHECK-1024-NEXT: @global_bool32 ={{.*}} global <4 x i8> zeroinitializer, align 4
1254 // CHECK-1024-NEXT: @global_bool64 ={{.*}} global <2 x i8> zeroinitializer, align 2
1255 
1256 //===----------------------------------------------------------------------===//
1257 // Global arrays
1258 //===----------------------------------------------------------------------===//
1259 // CHECK-64:      @global_arr_i8 ={{.*}} global [3 x <8 x i8>] zeroinitializer, align 8
1260 // CHECK-64-NEXT: @global_arr_i16 ={{.*}} global [3 x <4 x i16>] zeroinitializer, align 8
1261 // CHECK-64-NEXT: @global_arr_i32 ={{.*}} global [3 x <2 x i32>] zeroinitializer, align 8
1262 // CHECK-64-NEXT: @global_arr_i64 ={{.*}} global [3 x <1 x i64>] zeroinitializer, align 8
1263 // CHECK-64-NEXT: @global_arr_u8 ={{.*}} global [3 x <8 x i8>] zeroinitializer, align 8
1264 // CHECK-64-NEXT: @global_arr_u16 ={{.*}} global [3 x <4 x i16>] zeroinitializer, align 8
1265 // CHECK-64-NEXT: @global_arr_u32 ={{.*}} global [3 x <2 x i32>] zeroinitializer, align 8
1266 // CHECK-64-NEXT: @global_arr_u64 ={{.*}} global [3 x <1 x i64>] zeroinitializer, align 8
1267 // CHECK-64-NEXT: @global_arr_f32 ={{.*}} global [3 x <2 x float>] zeroinitializer, align 8
1268 // CHECK-64-NEXT: @global_arr_f64 ={{.*}} global [3 x <1 x double>] zeroinitializer, align 8
1269 // CHECK-64-NEXT: @global_arr_i8m2 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1270 // CHECK-64-NEXT: @global_arr_i16m2 ={{.*}} global [3 x <8 x i16>] zeroinitializer, align 8
1271 // CHECK-64-NEXT: @global_arr_i32m2 ={{.*}} global [3 x <4 x i32>] zeroinitializer, align 8
1272 // CHECK-64-NEXT: @global_arr_i64m2 ={{.*}} global [3 x <2 x i64>] zeroinitializer, align 8
1273 // CHECK-64-NEXT: @global_arr_u8m2 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1274 // CHECK-64-NEXT: @global_arr_u16m2 ={{.*}} global [3 x <8 x i16>] zeroinitializer, align 8
1275 // CHECK-64-NEXT: @global_arr_u32m2 ={{.*}} global [3 x <4 x i32>] zeroinitializer, align 8
1276 // CHECK-64-NEXT: @global_arr_u64m2 ={{.*}} global [3 x <2 x i64>] zeroinitializer, align 8
1277 // CHECK-64-NEXT: @global_arr_f32m2 ={{.*}} global [3 x <4 x float>] zeroinitializer, align 8
1278 // CHECK-64-NEXT: @global_arr_f64m2 ={{.*}} global [3 x <2 x double>] zeroinitializer, align 8
1279 // CHECK-64-NEXT: @global_arr_i8m4 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1280 // CHECK-64-NEXT: @global_arr_i16m4 ={{.*}} global [3 x <16 x i16>] zeroinitializer, align 8
1281 // CHECK-64-NEXT: @global_arr_i32m4 ={{.*}} global [3 x <8 x i32>] zeroinitializer, align 8
1282 // CHECK-64-NEXT: @global_arr_i64m4 ={{.*}} global [3 x <4 x i64>] zeroinitializer, align 8
1283 // CHECK-64-NEXT: @global_arr_u8m4 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1284 // CHECK-64-NEXT: @global_arr_u16m4 ={{.*}} global [3 x <16 x i16>] zeroinitializer, align 8
1285 // CHECK-64-NEXT: @global_arr_u32m4 ={{.*}} global [3 x <8 x i32>] zeroinitializer, align 8
1286 // CHECK-64-NEXT: @global_arr_u64m4 ={{.*}} global [3 x <4 x i64>] zeroinitializer, align 8
1287 // CHECK-64-NEXT: @global_arr_f32m4 ={{.*}} global [3 x <8 x float>] zeroinitializer, align 8
1288 // CHECK-64-NEXT: @global_arr_f64m4 ={{.*}} global [3 x <4 x double>] zeroinitializer, align 8
1289 // CHECK-64-NEXT: @global_arr_i8m8 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1290 // CHECK-64-NEXT: @global_arr_i16m8 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1291 // CHECK-64-NEXT: @global_arr_i32m8 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1292 // CHECK-64-NEXT: @global_arr_i64m8 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1293 // CHECK-64-NEXT: @global_arr_u8m8 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1294 // CHECK-64-NEXT: @global_arr_u16m8 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1295 // CHECK-64-NEXT: @global_arr_u32m8 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1296 // CHECK-64-NEXT: @global_arr_u64m8 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1297 // CHECK-64-NEXT: @global_arr_f32m8 ={{.*}} global [3 x <16 x float>] zeroinitializer, align 8
1298 // CHECK-64-NEXT: @global_arr_f64m8 ={{.*}} global [3 x <8 x double>] zeroinitializer, align 8
1299 // CHECK-64-NEXT: @global_arr_bool1 ={{.*}} global [3 x <8 x i8>] zeroinitializer, align 8
1300 // CHECK-64-NEXT: @global_arr_bool2 ={{.*}} global [3 x <4 x i8>] zeroinitializer, align 4
1301 // CHECK-64-NEXT: @global_arr_bool4 ={{.*}} global [3 x <2 x i8>] zeroinitializer, align 2
1302 // CHECK-64-NEXT: @global_arr_bool8 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1303 // CHECK-64-NEXT: @global_arr_bool16 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1304 // CHECK-64-NEXT: @global_arr_bool32 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1305 // CHECK-64-NEXT: @global_arr_bool64 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1306 
1307 // CHECK-128:      @global_arr_i8 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1308 // CHECK-128-NEXT: @global_arr_i16 ={{.*}} global [3 x <8 x i16>] zeroinitializer, align 8
1309 // CHECK-128-NEXT: @global_arr_i32 ={{.*}} global [3 x <4 x i32>] zeroinitializer, align 8
1310 // CHECK-128-NEXT: @global_arr_i64 ={{.*}} global [3 x <2 x i64>] zeroinitializer, align 8
1311 // CHECK-128-NEXT: @global_arr_u8 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1312 // CHECK-128-NEXT: @global_arr_u16 ={{.*}} global [3 x <8 x i16>] zeroinitializer, align 8
1313 // CHECK-128-NEXT: @global_arr_u32 ={{.*}} global [3 x <4 x i32>] zeroinitializer, align 8
1314 // CHECK-128-NEXT: @global_arr_u64 ={{.*}} global [3 x <2 x i64>] zeroinitializer, align 8
1315 // CHECK-128-NEXT: @global_arr_f32 ={{.*}} global [3 x <4 x float>] zeroinitializer, align 8
1316 // CHECK-128-NEXT: @global_arr_f64 ={{.*}} global [3 x <2 x double>] zeroinitializer, align 8
1317 // CHECK-128-NEXT: @global_arr_i8m2 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1318 // CHECK-128-NEXT: @global_arr_i16m2 ={{.*}} global [3 x <16 x i16>] zeroinitializer, align 8
1319 // CHECK-128-NEXT: @global_arr_i32m2 ={{.*}} global [3 x <8 x i32>] zeroinitializer, align 8
1320 // CHECK-128-NEXT: @global_arr_i64m2 ={{.*}} global [3 x <4 x i64>] zeroinitializer, align 8
1321 // CHECK-128-NEXT: @global_arr_u8m2 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1322 // CHECK-128-NEXT: @global_arr_u16m2 ={{.*}} global [3 x <16 x i16>] zeroinitializer, align 8
1323 // CHECK-128-NEXT: @global_arr_u32m2 ={{.*}} global [3 x <8 x i32>] zeroinitializer, align 8
1324 // CHECK-128-NEXT: @global_arr_u64m2 ={{.*}} global [3 x <4 x i64>] zeroinitializer, align 8
1325 // CHECK-128-NEXT: @global_arr_f32m2 ={{.*}} global [3 x <8 x float>] zeroinitializer, align 8
1326 // CHECK-128-NEXT: @global_arr_f64m2 ={{.*}} global [3 x <4 x double>] zeroinitializer, align 8
1327 // CHECK-128-NEXT: @global_arr_i8m4 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1328 // CHECK-128-NEXT: @global_arr_i16m4 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1329 // CHECK-128-NEXT: @global_arr_i32m4 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1330 // CHECK-128-NEXT: @global_arr_i64m4 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1331 // CHECK-128-NEXT: @global_arr_u8m4 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1332 // CHECK-128-NEXT: @global_arr_u16m4 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1333 // CHECK-128-NEXT: @global_arr_u32m4 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1334 // CHECK-128-NEXT: @global_arr_u64m4 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1335 // CHECK-128-NEXT: @global_arr_f32m4 ={{.*}} global [3 x <16 x float>] zeroinitializer, align 8
1336 // CHECK-128-NEXT: @global_arr_f64m4 ={{.*}} global [3 x <8 x double>] zeroinitializer, align 8
1337 // CHECK-128-NEXT: @global_arr_i8m8 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1338 // CHECK-128-NEXT: @global_arr_i16m8 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1339 // CHECK-128-NEXT: @global_arr_i32m8 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1340 // CHECK-128-NEXT: @global_arr_i64m8 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1341 // CHECK-128-NEXT: @global_arr_u8m8 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1342 // CHECK-128-NEXT: @global_arr_u16m8 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1343 // CHECK-128-NEXT: @global_arr_u32m8 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1344 // CHECK-128-NEXT: @global_arr_u64m8 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1345 // CHECK-128-NEXT: @global_arr_f32m8 ={{.*}} global [3 x <32 x float>] zeroinitializer, align 8
1346 // CHECK-128-NEXT: @global_arr_f64m8 ={{.*}} global [3 x <16 x double>] zeroinitializer, align 8
1347 // CHECK-128-NEXT: @global_arr_bool1 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1348 // CHECK-128-NEXT: @global_arr_bool2 ={{.*}} global [3 x <8 x i8>] zeroinitializer, align 8
1349 // CHECK-128-NEXT: @global_arr_bool4 ={{.*}} global [3 x <4 x i8>] zeroinitializer, align 4
1350 // CHECK-128-NEXT: @global_arr_bool8 ={{.*}} global [3 x <2 x i8>] zeroinitializer, align 2
1351 // CHECK-128-NEXT: @global_arr_bool16 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1352 // CHECK-128-NEXT: @global_arr_bool32 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1353 // CHECK-128-NEXT: @global_arr_bool64 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1354 
1355 // CHECK-256:      @global_arr_i8 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1356 // CHECK-256-NEXT: @global_arr_i16 ={{.*}} global [3 x <16 x i16>] zeroinitializer, align 8
1357 // CHECK-256-NEXT: @global_arr_i32 ={{.*}} global [3 x <8 x i32>] zeroinitializer, align 8
1358 // CHECK-256-NEXT: @global_arr_i64 ={{.*}} global [3 x <4 x i64>] zeroinitializer, align 8
1359 // CHECK-256-NEXT: @global_arr_u8 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1360 // CHECK-256-NEXT: @global_arr_u16 ={{.*}} global [3 x <16 x i16>] zeroinitializer, align 8
1361 // CHECK-256-NEXT: @global_arr_u32 ={{.*}} global [3 x <8 x i32>] zeroinitializer, align 8
1362 // CHECK-256-NEXT: @global_arr_u64 ={{.*}} global [3 x <4 x i64>] zeroinitializer, align 8
1363 // CHECK-256-NEXT: @global_arr_f32 ={{.*}} global [3 x <8 x float>] zeroinitializer, align 8
1364 // CHECK-256-NEXT: @global_arr_f64 ={{.*}} global [3 x <4 x double>] zeroinitializer, align 8
1365 // CHECK-256-NEXT: @global_arr_i8m2 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1366 // CHECK-256-NEXT: @global_arr_i16m2 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1367 // CHECK-256-NEXT: @global_arr_i32m2 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1368 // CHECK-256-NEXT: @global_arr_i64m2 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1369 // CHECK-256-NEXT: @global_arr_u8m2 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1370 // CHECK-256-NEXT: @global_arr_u16m2 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1371 // CHECK-256-NEXT: @global_arr_u32m2 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1372 // CHECK-256-NEXT: @global_arr_u64m2 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1373 // CHECK-256-NEXT: @global_arr_f32m2 ={{.*}} global [3 x <16 x float>] zeroinitializer, align 8
1374 // CHECK-256-NEXT: @global_arr_f64m2 ={{.*}} global [3 x <8 x double>] zeroinitializer, align 8
1375 // CHECK-256-NEXT: @global_arr_i8m4 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1376 // CHECK-256-NEXT: @global_arr_i16m4 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1377 // CHECK-256-NEXT: @global_arr_i32m4 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1378 // CHECK-256-NEXT: @global_arr_i64m4 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1379 // CHECK-256-NEXT: @global_arr_u8m4 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1380 // CHECK-256-NEXT: @global_arr_u16m4 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1381 // CHECK-256-NEXT: @global_arr_u32m4 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1382 // CHECK-256-NEXT: @global_arr_u64m4 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1383 // CHECK-256-NEXT: @global_arr_f32m4 ={{.*}} global [3 x <32 x float>] zeroinitializer, align 8
1384 // CHECK-256-NEXT: @global_arr_f64m4 ={{.*}} global [3 x <16 x double>] zeroinitializer, align 8
1385 // CHECK-256-NEXT: @global_arr_i8m8 ={{.*}} global [3 x <256 x i8>] zeroinitializer, align 8
1386 // CHECK-256-NEXT: @global_arr_i16m8 ={{.*}} global [3 x <128 x i16>] zeroinitializer, align 8
1387 // CHECK-256-NEXT: @global_arr_i32m8 ={{.*}} global [3 x <64 x i32>] zeroinitializer, align 8
1388 // CHECK-256-NEXT: @global_arr_i64m8 ={{.*}} global [3 x <32 x i64>] zeroinitializer, align 8
1389 // CHECK-256-NEXT: @global_arr_u8m8 ={{.*}} global [3 x <256 x i8>] zeroinitializer, align 8
1390 // CHECK-256-NEXT: @global_arr_u16m8 ={{.*}} global [3 x <128 x i16>] zeroinitializer, align 8
1391 // CHECK-256-NEXT: @global_arr_u32m8 ={{.*}} global [3 x <64 x i32>] zeroinitializer, align 8
1392 // CHECK-256-NEXT: @global_arr_u64m8 ={{.*}} global [3 x <32 x i64>] zeroinitializer, align 8
1393 // CHECK-256-NEXT: @global_arr_f32m8 ={{.*}} global [3 x <64 x float>] zeroinitializer, align 8
1394 // CHECK-256-NEXT: @global_arr_f64m8 ={{.*}} global [3 x <32 x double>] zeroinitializer, align 8
1395 // CHECK-256-NEXT: @global_arr_bool1 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1396 // CHECK-256-NEXT: @global_arr_bool2 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1397 // CHECK-256-NEXT: @global_arr_bool4 ={{.*}} global [3 x <8 x i8>] zeroinitializer, align 8
1398 // CHECK-256-NEXT: @global_arr_bool8 ={{.*}} global [3 x <4 x i8>] zeroinitializer, align 4
1399 // CHECK-256-NEXT: @global_arr_bool16 ={{.*}} global [3 x <2 x i8>] zeroinitializer, align 2
1400 // CHECK-256-NEXT: @global_arr_bool32 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1401 // CHECK-256-NEXT: @global_arr_bool64 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1402 
1403 // CHECK-512:      @global_arr_i8 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1404 // CHECK-512-NEXT: @global_arr_i16 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1405 // CHECK-512-NEXT: @global_arr_i32 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1406 // CHECK-512-NEXT: @global_arr_i64 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1407 // CHECK-512-NEXT: @global_arr_u8 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1408 // CHECK-512-NEXT: @global_arr_u16 ={{.*}} global [3 x <32 x i16>] zeroinitializer, align 8
1409 // CHECK-512-NEXT: @global_arr_u32 ={{.*}} global [3 x <16 x i32>] zeroinitializer, align 8
1410 // CHECK-512-NEXT: @global_arr_u64 ={{.*}} global [3 x <8 x i64>] zeroinitializer, align 8
1411 // CHECK-512-NEXT: @global_arr_f32 ={{.*}} global [3 x <16 x float>] zeroinitializer, align 8
1412 // CHECK-512-NEXT: @global_arr_f64 ={{.*}} global [3 x <8 x double>] zeroinitializer, align 8
1413 // CHECK-512-NEXT: @global_arr_i8m2 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1414 // CHECK-512-NEXT: @global_arr_i16m2 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1415 // CHECK-512-NEXT: @global_arr_i32m2 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1416 // CHECK-512-NEXT: @global_arr_i64m2 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1417 // CHECK-512-NEXT: @global_arr_u8m2 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1418 // CHECK-512-NEXT: @global_arr_u16m2 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1419 // CHECK-512-NEXT: @global_arr_u32m2 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1420 // CHECK-512-NEXT: @global_arr_u64m2 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1421 // CHECK-512-NEXT: @global_arr_f32m2 ={{.*}} global [3 x <32 x float>] zeroinitializer, align 8
1422 // CHECK-512-NEXT: @global_arr_f64m2 ={{.*}} global [3 x <16 x double>] zeroinitializer, align 8
1423 // CHECK-512-NEXT: @global_arr_i8m4 ={{.*}} global [3 x <256 x i8>] zeroinitializer, align 8
1424 // CHECK-512-NEXT: @global_arr_i16m4 ={{.*}} global [3 x <128 x i16>] zeroinitializer, align 8
1425 // CHECK-512-NEXT: @global_arr_i32m4 ={{.*}} global [3 x <64 x i32>] zeroinitializer, align 8
1426 // CHECK-512-NEXT: @global_arr_i64m4 ={{.*}} global [3 x <32 x i64>] zeroinitializer, align 8
1427 // CHECK-512-NEXT: @global_arr_u8m4 ={{.*}} global [3 x <256 x i8>] zeroinitializer, align 8
1428 // CHECK-512-NEXT: @global_arr_u16m4 ={{.*}} global [3 x <128 x i16>] zeroinitializer, align 8
1429 // CHECK-512-NEXT: @global_arr_u32m4 ={{.*}} global [3 x <64 x i32>] zeroinitializer, align 8
1430 // CHECK-512-NEXT: @global_arr_u64m4 ={{.*}} global [3 x <32 x i64>] zeroinitializer, align 8
1431 // CHECK-512-NEXT: @global_arr_f32m4 ={{.*}} global [3 x <64 x float>] zeroinitializer, align 8
1432 // CHECK-512-NEXT: @global_arr_f64m4 ={{.*}} global [3 x <32 x double>] zeroinitializer, align 8
1433 // CHECK-512-NEXT: @global_arr_i8m8 ={{.*}} global [3 x <512 x i8>] zeroinitializer, align 8
1434 // CHECK-512-NEXT: @global_arr_i16m8 ={{.*}} global [3 x <256 x i16>] zeroinitializer, align 8
1435 // CHECK-512-NEXT: @global_arr_i32m8 ={{.*}} global [3 x <128 x i32>] zeroinitializer, align 8
1436 // CHECK-512-NEXT: @global_arr_i64m8 ={{.*}} global [3 x <64 x i64>] zeroinitializer, align 8
1437 // CHECK-512-NEXT: @global_arr_u8m8 ={{.*}} global [3 x <512 x i8>] zeroinitializer, align 8
1438 // CHECK-512-NEXT: @global_arr_u16m8 ={{.*}} global [3 x <256 x i16>] zeroinitializer, align 8
1439 // CHECK-512-NEXT: @global_arr_u32m8 ={{.*}} global [3 x <128 x i32>] zeroinitializer, align 8
1440 // CHECK-512-NEXT: @global_arr_u64m8 ={{.*}} global [3 x <64 x i64>] zeroinitializer, align 8
1441 // CHECK-512-NEXT: @global_arr_f32m8 ={{.*}} global [3 x <128 x float>] zeroinitializer, align 8
1442 // CHECK-512-NEXT: @global_arr_f64m8 ={{.*}} global [3 x <64 x double>] zeroinitializer, align 8
1443 // CHECK-512-NEXT: @global_arr_bool1 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1444 // CHECK-512-NEXT: @global_arr_bool2 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1445 // CHECK-512-NEXT: @global_arr_bool4 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1446 // CHECK-512-NEXT: @global_arr_bool8 ={{.*}} global [3 x <8 x i8>] zeroinitializer, align 8
1447 // CHECK-512-NEXT: @global_arr_bool16 ={{.*}} global [3 x <4 x i8>] zeroinitializer, align 4
1448 // CHECK-512-NEXT: @global_arr_bool32 ={{.*}} global [3 x <2 x i8>] zeroinitializer, align 2
1449 // CHECK-512-NEXT: @global_arr_bool64 ={{.*}} global [3 x <1 x i8>] zeroinitializer, align 1
1450 
1451 // CHECK-1024:      @global_arr_i8 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1452 // CHECK-1024-NEXT: @global_arr_i16 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1453 // CHECK-1024-NEXT: @global_arr_i32 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1454 // CHECK-1024-NEXT: @global_arr_i64 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1455 // CHECK-1024-NEXT: @global_arr_u8 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1456 // CHECK-1024-NEXT: @global_arr_u16 ={{.*}} global [3 x <64 x i16>] zeroinitializer, align 8
1457 // CHECK-1024-NEXT: @global_arr_u32 ={{.*}} global [3 x <32 x i32>] zeroinitializer, align 8
1458 // CHECK-1024-NEXT: @global_arr_u64 ={{.*}} global [3 x <16 x i64>] zeroinitializer, align 8
1459 // CHECK-1024-NEXT: @global_arr_f32 ={{.*}} global [3 x <32 x float>] zeroinitializer, align 8
1460 // CHECK-1024-NEXT: @global_arr_f64 ={{.*}} global [3 x <16 x double>] zeroinitializer, align 8
1461 // CHECK-1024-NEXT: @global_arr_i8m2 ={{.*}} global [3 x <256 x i8>] zeroinitializer, align 8
1462 // CHECK-1024-NEXT: @global_arr_i16m2 ={{.*}} global [3 x <128 x i16>] zeroinitializer, align 8
1463 // CHECK-1024-NEXT: @global_arr_i32m2 ={{.*}} global [3 x <64 x i32>] zeroinitializer, align 8
1464 // CHECK-1024-NEXT: @global_arr_i64m2 ={{.*}} global [3 x <32 x i64>] zeroinitializer, align 8
1465 // CHECK-1024-NEXT: @global_arr_u8m2 ={{.*}} global [3 x <256 x i8>] zeroinitializer, align 8
1466 // CHECK-1024-NEXT: @global_arr_u16m2 ={{.*}} global [3 x <128 x i16>] zeroinitializer, align 8
1467 // CHECK-1024-NEXT: @global_arr_u32m2 ={{.*}} global [3 x <64 x i32>] zeroinitializer, align 8
1468 // CHECK-1024-NEXT: @global_arr_u64m2 ={{.*}} global [3 x <32 x i64>] zeroinitializer, align 8
1469 // CHECK-1024-NEXT: @global_arr_f32m2 ={{.*}} global [3 x <64 x float>] zeroinitializer, align 8
1470 // CHECK-1024-NEXT: @global_arr_f64m2 ={{.*}} global [3 x <32 x double>] zeroinitializer, align 8
1471 // CHECK-1024-NEXT: @global_arr_i8m4 ={{.*}} global [3 x <512 x i8>] zeroinitializer, align 8
1472 // CHECK-1024-NEXT: @global_arr_i16m4 ={{.*}} global [3 x <256 x i16>] zeroinitializer, align 8
1473 // CHECK-1024-NEXT: @global_arr_i32m4 ={{.*}} global [3 x <128 x i32>] zeroinitializer, align 8
1474 // CHECK-1024-NEXT: @global_arr_i64m4 ={{.*}} global [3 x <64 x i64>] zeroinitializer, align 8
1475 // CHECK-1024-NEXT: @global_arr_u8m4 ={{.*}} global [3 x <512 x i8>] zeroinitializer, align 8
1476 // CHECK-1024-NEXT: @global_arr_u16m4 ={{.*}} global [3 x <256 x i16>] zeroinitializer, align 8
1477 // CHECK-1024-NEXT: @global_arr_u32m4 ={{.*}} global [3 x <128 x i32>] zeroinitializer, align 8
1478 // CHECK-1024-NEXT: @global_arr_u64m4 ={{.*}} global [3 x <64 x i64>] zeroinitializer, align 8
1479 // CHECK-1024-NEXT: @global_arr_f32m4 ={{.*}} global [3 x <128 x float>] zeroinitializer, align 8
1480 // CHECK-1024-NEXT: @global_arr_f64m4 ={{.*}} global [3 x <64 x double>] zeroinitializer, align 8
1481 // CHECK-1024-NEXT: @global_arr_i8m8 ={{.*}} global [3 x <1024 x i8>] zeroinitializer, align 8
1482 // CHECK-1024-NEXT: @global_arr_i16m8 ={{.*}} global [3 x <512 x i16>] zeroinitializer, align 8
1483 // CHECK-1024-NEXT: @global_arr_i32m8 ={{.*}} global [3 x <256 x i32>] zeroinitializer, align 8
1484 // CHECK-1024-NEXT: @global_arr_i64m8 ={{.*}} global [3 x <128 x i64>] zeroinitializer, align 8
1485 // CHECK-1024-NEXT: @global_arr_u8m8 ={{.*}} global [3 x <1024 x i8>] zeroinitializer, align 8
1486 // CHECK-1024-NEXT: @global_arr_u16m8 ={{.*}} global [3 x <512 x i16>] zeroinitializer, align 8
1487 // CHECK-1024-NEXT: @global_arr_u32m8 ={{.*}} global [3 x <256 x i32>] zeroinitializer, align 8
1488 // CHECK-1024-NEXT: @global_arr_u64m8 ={{.*}} global [3 x <128 x i64>] zeroinitializer, align 8
1489 // CHECK-1024-NEXT: @global_arr_f32m8 ={{.*}} global [3 x <256 x float>] zeroinitializer, align 8
1490 // CHECK-1024-NEXT: @global_arr_f64m8 ={{.*}} global [3 x <128 x double>] zeroinitializer, align 8
1491 // CHECK-1024-NEXT: @global_arr_bool1 ={{.*}} global [3 x <128 x i8>] zeroinitializer, align 8
1492 // CHECK-1024-NEXT: @global_arr_bool2 ={{.*}} global [3 x <64 x i8>] zeroinitializer, align 8
1493 // CHECK-1024-NEXT: @global_arr_bool4 ={{.*}} global [3 x <32 x i8>] zeroinitializer, align 8
1494 // CHECK-1024-NEXT: @global_arr_bool8 ={{.*}} global [3 x <16 x i8>] zeroinitializer, align 8
1495 // CHECK-1024-NEXT: @global_arr_bool16 ={{.*}} global [3 x <8 x i8>] zeroinitializer, align 8
1496 // CHECK-1024-NEXT: @global_arr_bool32 ={{.*}} global [3 x <4 x i8>] zeroinitializer, align 4
1497 // CHECK-1024-NEXT: @global_arr_bool64 ={{.*}} global [3 x <2 x i8>] zeroinitializer, align 2
1498 
1499 //===----------------------------------------------------------------------===//
1500 // Local variables
1501 //===----------------------------------------------------------------------===//
1502 // CHECK-64:      %local_i8 = alloca <8 x i8>, align 8
1503 // CHECK-64-NEXT: %local_i16 = alloca <4 x i16>, align 8
1504 // CHECK-64-NEXT: %local_i32 = alloca <2 x i32>, align 8
1505 // CHECK-64-NEXT: %local_i64 = alloca <1 x i64>, align 8
1506 // CHECK-64-NEXT: %local_u8 = alloca <8 x i8>, align 8
1507 // CHECK-64-NEXT: %local_u16 = alloca <4 x i16>, align 8
1508 // CHECK-64-NEXT: %local_u32 = alloca <2 x i32>, align 8
1509 // CHECK-64-NEXT: %local_u64 = alloca <1 x i64>, align 8
1510 // CHECK-64-NEXT: %local_f32 = alloca <2 x float>, align 8
1511 // CHECK-64-NEXT: %local_f64 = alloca <1 x double>, align 8
1512 // CHECK-64-NEXT: %local_i8m2 = alloca <16 x i8>, align 8
1513 // CHECK-64-NEXT: %local_i16m2 = alloca <8 x i16>, align 8
1514 // CHECK-64-NEXT: %local_i32m2 = alloca <4 x i32>, align 8
1515 // CHECK-64-NEXT: %local_i64m2 = alloca <2 x i64>, align 8
1516 // CHECK-64-NEXT: %local_u8m2 = alloca <16 x i8>, align 8
1517 // CHECK-64-NEXT: %local_u16m2 = alloca <8 x i16>, align 8
1518 // CHECK-64-NEXT: %local_u32m2 = alloca <4 x i32>, align 8
1519 // CHECK-64-NEXT: %local_u64m2 = alloca <2 x i64>, align 8
1520 // CHECK-64-NEXT: %local_f32m2 = alloca <4 x float>, align 8
1521 // CHECK-64-NEXT: %local_f64m2 = alloca <2 x double>, align 8
1522 // CHECK-64-NEXT: %local_i8m4 = alloca <32 x i8>, align 8
1523 // CHECK-64-NEXT: %local_i16m4 = alloca <16 x i16>, align 8
1524 // CHECK-64-NEXT: %local_i32m4 = alloca <8 x i32>, align 8
1525 // CHECK-64-NEXT: %local_i64m4 = alloca <4 x i64>, align 8
1526 // CHECK-64-NEXT: %local_u8m4 = alloca <32 x i8>, align 8
1527 // CHECK-64-NEXT: %local_u16m4 = alloca <16 x i16>, align 8
1528 // CHECK-64-NEXT: %local_u32m4 = alloca <8 x i32>, align 8
1529 // CHECK-64-NEXT: %local_u64m4 = alloca <4 x i64>, align 8
1530 // CHECK-64-NEXT: %local_f32m4 = alloca <8 x float>, align 8
1531 // CHECK-64-NEXT: %local_f64m4 = alloca <4 x double>, align 8
1532 // CHECK-64-NEXT: %local_i8m8 = alloca <64 x i8>, align 8
1533 // CHECK-64-NEXT: %local_i16m8 = alloca <32 x i16>, align 8
1534 // CHECK-64-NEXT: %local_i32m8 = alloca <16 x i32>, align 8
1535 // CHECK-64-NEXT: %local_i64m8 = alloca <8 x i64>, align 8
1536 // CHECK-64-NEXT: %local_u8m8 = alloca <64 x i8>, align 8
1537 // CHECK-64-NEXT: %local_u16m8 = alloca <32 x i16>, align 8
1538 // CHECK-64-NEXT: %local_u32m8 = alloca <16 x i32>, align 8
1539 // CHECK-64-NEXT: %local_u64m8 = alloca <8 x i64>, align 8
1540 // CHECK-64-NEXT: %local_f32m8 = alloca <16 x float>, align 8
1541 // CHECK-64-NEXT: %local_f64m8 = alloca <8 x double>, align 8
1542 // CHECK-64-NEXT: %local_bool1 = alloca <8 x i8>, align 8
1543 // CHECK-64-NEXT: %local_bool2 = alloca <4 x i8>, align 4
1544 // CHECK-64-NEXT: %local_bool4 = alloca <2 x i8>, align 2
1545 // CHECK-64-NEXT: %local_bool8 = alloca <1 x i8>, align 1
1546 // CHECK-64-NEXT: %local_bool16 = alloca <1 x i8>, align 1
1547 // CHECK-64-NEXT: %local_bool32 = alloca <1 x i8>, align 1
1548 // CHECK-64-NEXT: %local_bool64 = alloca <1 x i8>, align 1
1549 
1550 // CHECK-128:      %local_i8 = alloca <16 x i8>, align 8
1551 // CHECK-128-NEXT: %local_i16 = alloca <8 x i16>, align 8
1552 // CHECK-128-NEXT: %local_i32 = alloca <4 x i32>, align 8
1553 // CHECK-128-NEXT: %local_i64 = alloca <2 x i64>, align 8
1554 // CHECK-128-NEXT: %local_u8 = alloca <16 x i8>, align 8
1555 // CHECK-128-NEXT: %local_u16 = alloca <8 x i16>, align 8
1556 // CHECK-128-NEXT: %local_u32 = alloca <4 x i32>, align 8
1557 // CHECK-128-NEXT: %local_u64 = alloca <2 x i64>, align 8
1558 // CHECK-128-NEXT: %local_f32 = alloca <4 x float>, align 8
1559 // CHECK-128-NEXT: %local_f64 = alloca <2 x double>, align 8
1560 // CHECK-128-NEXT: %local_i8m2 = alloca <32 x i8>, align 8
1561 // CHECK-128-NEXT: %local_i16m2 = alloca <16 x i16>, align 8
1562 // CHECK-128-NEXT: %local_i32m2 = alloca <8 x i32>, align 8
1563 // CHECK-128-NEXT: %local_i64m2 = alloca <4 x i64>, align 8
1564 // CHECK-128-NEXT: %local_u8m2 = alloca <32 x i8>, align 8
1565 // CHECK-128-NEXT: %local_u16m2 = alloca <16 x i16>, align 8
1566 // CHECK-128-NEXT: %local_u32m2 = alloca <8 x i32>, align 8
1567 // CHECK-128-NEXT: %local_u64m2 = alloca <4 x i64>, align 8
1568 // CHECK-128-NEXT: %local_f32m2 = alloca <8 x float>, align 8
1569 // CHECK-128-NEXT: %local_f64m2 = alloca <4 x double>, align 8
1570 // CHECK-128-NEXT: %local_i8m4 = alloca <64 x i8>, align 8
1571 // CHECK-128-NEXT: %local_i16m4 = alloca <32 x i16>, align 8
1572 // CHECK-128-NEXT: %local_i32m4 = alloca <16 x i32>, align 8
1573 // CHECK-128-NEXT: %local_i64m4 = alloca <8 x i64>, align 8
1574 // CHECK-128-NEXT: %local_u8m4 = alloca <64 x i8>, align 8
1575 // CHECK-128-NEXT: %local_u16m4 = alloca <32 x i16>, align 8
1576 // CHECK-128-NEXT: %local_u32m4 = alloca <16 x i32>, align 8
1577 // CHECK-128-NEXT: %local_u64m4 = alloca <8 x i64>, align 8
1578 // CHECK-128-NEXT: %local_f32m4 = alloca <16 x float>, align 8
1579 // CHECK-128-NEXT: %local_f64m4 = alloca <8 x double>, align 8
1580 // CHECK-128-NEXT: %local_i8m8 = alloca <128 x i8>, align 8
1581 // CHECK-128-NEXT: %local_i16m8 = alloca <64 x i16>, align 8
1582 // CHECK-128-NEXT: %local_i32m8 = alloca <32 x i32>, align 8
1583 // CHECK-128-NEXT: %local_i64m8 = alloca <16 x i64>, align 8
1584 // CHECK-128-NEXT: %local_u8m8 = alloca <128 x i8>, align 8
1585 // CHECK-128-NEXT: %local_u16m8 = alloca <64 x i16>, align 8
1586 // CHECK-128-NEXT: %local_u32m8 = alloca <32 x i32>, align 8
1587 // CHECK-128-NEXT: %local_u64m8 = alloca <16 x i64>, align 8
1588 // CHECK-128-NEXT: %local_f32m8 = alloca <32 x float>, align 8
1589 // CHECK-128-NEXT: %local_f64m8 = alloca <16 x double>, align 8
1590 // CHECK-128-NEXT: %local_bool1 = alloca <16 x i8>, align 8
1591 // CHECK-128-NEXT: %local_bool2 = alloca <8 x i8>, align 8
1592 // CHECK-128-NEXT: %local_bool4 = alloca <4 x i8>, align 4
1593 // CHECK-128-NEXT: %local_bool8 = alloca <2 x i8>, align 2
1594 // CHECK-128-NEXT: %local_bool16 = alloca <1 x i8>, align 1
1595 // CHECK-128-NEXT: %local_bool32 = alloca <1 x i8>, align 1
1596 // CHECK-128-NEXT: %local_bool64 = alloca <1 x i8>, align 1
1597 
1598 // CHECK-256:      %local_i8 = alloca <32 x i8>, align 8
1599 // CHECK-256-NEXT: %local_i16 = alloca <16 x i16>, align 8
1600 // CHECK-256-NEXT: %local_i32 = alloca <8 x i32>, align 8
1601 // CHECK-256-NEXT: %local_i64 = alloca <4 x i64>, align 8
1602 // CHECK-256-NEXT: %local_u8 = alloca <32 x i8>, align 8
1603 // CHECK-256-NEXT: %local_u16 = alloca <16 x i16>, align 8
1604 // CHECK-256-NEXT: %local_u32 = alloca <8 x i32>, align 8
1605 // CHECK-256-NEXT: %local_u64 = alloca <4 x i64>, align 8
1606 // CHECK-256-NEXT: %local_f32 = alloca <8 x float>, align 8
1607 // CHECK-256-NEXT: %local_f64 = alloca <4 x double>, align 8
1608 // CHECK-256-NEXT: %local_i8m2 = alloca <64 x i8>, align 8
1609 // CHECK-256-NEXT: %local_i16m2 = alloca <32 x i16>, align 8
1610 // CHECK-256-NEXT: %local_i32m2 = alloca <16 x i32>, align 8
1611 // CHECK-256-NEXT: %local_i64m2 = alloca <8 x i64>, align 8
1612 // CHECK-256-NEXT: %local_u8m2 = alloca <64 x i8>, align 8
1613 // CHECK-256-NEXT: %local_u16m2 = alloca <32 x i16>, align 8
1614 // CHECK-256-NEXT: %local_u32m2 = alloca <16 x i32>, align 8
1615 // CHECK-256-NEXT: %local_u64m2 = alloca <8 x i64>, align 8
1616 // CHECK-256-NEXT: %local_f32m2 = alloca <16 x float>, align 8
1617 // CHECK-256-NEXT: %local_f64m2 = alloca <8 x double>, align 8
1618 // CHECK-256-NEXT: %local_i8m4 = alloca <128 x i8>, align 8
1619 // CHECK-256-NEXT: %local_i16m4 = alloca <64 x i16>, align 8
1620 // CHECK-256-NEXT: %local_i32m4 = alloca <32 x i32>, align 8
1621 // CHECK-256-NEXT: %local_i64m4 = alloca <16 x i64>, align 8
1622 // CHECK-256-NEXT: %local_u8m4 = alloca <128 x i8>, align 8
1623 // CHECK-256-NEXT: %local_u16m4 = alloca <64 x i16>, align 8
1624 // CHECK-256-NEXT: %local_u32m4 = alloca <32 x i32>, align 8
1625 // CHECK-256-NEXT: %local_u64m4 = alloca <16 x i64>, align 8
1626 // CHECK-256-NEXT: %local_f32m4 = alloca <32 x float>, align 8
1627 // CHECK-256-NEXT: %local_f64m4 = alloca <16 x double>, align 8
1628 // CHECK-256-NEXT: %local_i8m8 = alloca <256 x i8>, align 8
1629 // CHECK-256-NEXT: %local_i16m8 = alloca <128 x i16>, align 8
1630 // CHECK-256-NEXT: %local_i32m8 = alloca <64 x i32>, align 8
1631 // CHECK-256-NEXT: %local_i64m8 = alloca <32 x i64>, align 8
1632 // CHECK-256-NEXT: %local_u8m8 = alloca <256 x i8>, align 8
1633 // CHECK-256-NEXT: %local_u16m8 = alloca <128 x i16>, align 8
1634 // CHECK-256-NEXT: %local_u32m8 = alloca <64 x i32>, align 8
1635 // CHECK-256-NEXT: %local_u64m8 = alloca <32 x i64>, align 8
1636 // CHECK-256-NEXT: %local_f32m8 = alloca <64 x float>, align 8
1637 // CHECK-256-NEXT: %local_f64m8 = alloca <32 x double>, align 8
1638 // CHECK-256-NEXT: %local_bool1 = alloca <32 x i8>, align 8
1639 // CHECK-256-NEXT: %local_bool2 = alloca <16 x i8>, align 8
1640 // CHECK-256-NEXT: %local_bool4 = alloca <8 x i8>, align 8
1641 // CHECK-256-NEXT: %local_bool8 = alloca <4 x i8>, align 4
1642 // CHECK-256-NEXT: %local_bool16 = alloca <2 x i8>, align 2
1643 // CHECK-256-NEXT: %local_bool32 = alloca <1 x i8>, align 1
1644 // CHECK-256-NEXT: %local_bool64 = alloca <1 x i8>, align 1
1645 
1646 // CHECK-512:      %local_i8 = alloca <64 x i8>, align 8
1647 // CHECK-512-NEXT: %local_i16 = alloca <32 x i16>, align 8
1648 // CHECK-512-NEXT: %local_i32 = alloca <16 x i32>, align 8
1649 // CHECK-512-NEXT: %local_i64 = alloca <8 x i64>, align 8
1650 // CHECK-512-NEXT: %local_u8 = alloca <64 x i8>, align 8
1651 // CHECK-512-NEXT: %local_u16 = alloca <32 x i16>, align 8
1652 // CHECK-512-NEXT: %local_u32 = alloca <16 x i32>, align 8
1653 // CHECK-512-NEXT: %local_u64 = alloca <8 x i64>, align 8
1654 // CHECK-512-NEXT: %local_f32 = alloca <16 x float>, align 8
1655 // CHECK-512-NEXT: %local_f64 = alloca <8 x double>, align 8
1656 // CHECK-512-NEXT: %local_i8m2 = alloca <128 x i8>, align 8
1657 // CHECK-512-NEXT: %local_i16m2 = alloca <64 x i16>, align 8
1658 // CHECK-512-NEXT: %local_i32m2 = alloca <32 x i32>, align 8
1659 // CHECK-512-NEXT: %local_i64m2 = alloca <16 x i64>, align 8
1660 // CHECK-512-NEXT: %local_u8m2 = alloca <128 x i8>, align 8
1661 // CHECK-512-NEXT: %local_u16m2 = alloca <64 x i16>, align 8
1662 // CHECK-512-NEXT: %local_u32m2 = alloca <32 x i32>, align 8
1663 // CHECK-512-NEXT: %local_u64m2 = alloca <16 x i64>, align 8
1664 // CHECK-512-NEXT: %local_f32m2 = alloca <32 x float>, align 8
1665 // CHECK-512-NEXT: %local_f64m2 = alloca <16 x double>, align 8
1666 // CHECK-512-NEXT: %local_i8m4 = alloca <256 x i8>, align 8
1667 // CHECK-512-NEXT: %local_i16m4 = alloca <128 x i16>, align 8
1668 // CHECK-512-NEXT: %local_i32m4 = alloca <64 x i32>, align 8
1669 // CHECK-512-NEXT: %local_i64m4 = alloca <32 x i64>, align 8
1670 // CHECK-512-NEXT: %local_u8m4 = alloca <256 x i8>, align 8
1671 // CHECK-512-NEXT: %local_u16m4 = alloca <128 x i16>, align 8
1672 // CHECK-512-NEXT: %local_u32m4 = alloca <64 x i32>, align 8
1673 // CHECK-512-NEXT: %local_u64m4 = alloca <32 x i64>, align 8
1674 // CHECK-512-NEXT: %local_f32m4 = alloca <64 x float>, align 8
1675 // CHECK-512-NEXT: %local_f64m4 = alloca <32 x double>, align 8
1676 // CHECK-512-NEXT: %local_i8m8 = alloca <512 x i8>, align 8
1677 // CHECK-512-NEXT: %local_i16m8 = alloca <256 x i16>, align 8
1678 // CHECK-512-NEXT: %local_i32m8 = alloca <128 x i32>, align 8
1679 // CHECK-512-NEXT: %local_i64m8 = alloca <64 x i64>, align 8
1680 // CHECK-512-NEXT: %local_u8m8 = alloca <512 x i8>, align 8
1681 // CHECK-512-NEXT: %local_u16m8 = alloca <256 x i16>, align 8
1682 // CHECK-512-NEXT: %local_u32m8 = alloca <128 x i32>, align 8
1683 // CHECK-512-NEXT: %local_u64m8 = alloca <64 x i64>, align 8
1684 // CHECK-512-NEXT: %local_f32m8 = alloca <128 x float>, align 8
1685 // CHECK-512-NEXT: %local_f64m8 = alloca <64 x double>, align 8
1686 // CHECK-512-NEXT: %local_bool1 = alloca <64 x i8>, align 8
1687 // CHECK-512-NEXT: %local_bool2 = alloca <32 x i8>, align 8
1688 // CHECK-512-NEXT: %local_bool4 = alloca <16 x i8>, align 8
1689 // CHECK-512-NEXT: %local_bool8 = alloca <8 x i8>, align 8
1690 // CHECK-512-NEXT: %local_bool16 = alloca <4 x i8>, align 4
1691 // CHECK-512-NEXT: %local_bool32 = alloca <2 x i8>, align 2
1692 // CHECK-512-NEXT: %local_bool64 = alloca <1 x i8>, align 1
1693 
1694 // CHECK-1024:       %local_i8 = alloca <128 x i8>, align 8
1695 // CHECK-1024-NEXT:  %local_i16 = alloca <64 x i16>, align 8
1696 // CHECK-1024-NEXT:  %local_i32 = alloca <32 x i32>, align 8
1697 // CHECK-1024-NEXT:  %local_i64 = alloca <16 x i64>, align 8
1698 // CHECK-1024-NEXT:  %local_u8 = alloca <128 x i8>, align 8
1699 // CHECK-1024-NEXT:  %local_u16 = alloca <64 x i16>, align 8
1700 // CHECK-1024-NEXT:  %local_u32 = alloca <32 x i32>, align 8
1701 // CHECK-1024-NEXT:  %local_u64 = alloca <16 x i64>, align 8
1702 // CHECK-1024-NEXT:  %local_f32 = alloca <32 x float>, align 8
1703 // CHECK-1024-NEXT:  %local_f64 = alloca <16 x double>, align 8
1704 // CHECK-1024-NEXT:  %local_i8m2 = alloca <256 x i8>, align 8
1705 // CHECK-1024-NEXT:  %local_i16m2 = alloca <128 x i16>, align 8
1706 // CHECK-1024-NEXT:  %local_i32m2 = alloca <64 x i32>, align 8
1707 // CHECK-1024-NEXT:  %local_i64m2 = alloca <32 x i64>, align 8
1708 // CHECK-1024-NEXT:  %local_u8m2 = alloca <256 x i8>, align 8
1709 // CHECK-1024-NEXT:  %local_u16m2 = alloca <128 x i16>, align 8
1710 // CHECK-1024-NEXT:  %local_u32m2 = alloca <64 x i32>, align 8
1711 // CHECK-1024-NEXT:  %local_u64m2 = alloca <32 x i64>, align 8
1712 // CHECK-1024-NEXT:  %local_f32m2 = alloca <64 x float>, align 8
1713 // CHECK-1024-NEXT:  %local_f64m2 = alloca <32 x double>, align 8
1714 // CHECK-1024-NEXT:  %local_i8m4 = alloca <512 x i8>, align 8
1715 // CHECK-1024-NEXT:  %local_i16m4 = alloca <256 x i16>, align 8
1716 // CHECK-1024-NEXT:  %local_i32m4 = alloca <128 x i32>, align 8
1717 // CHECK-1024-NEXT:  %local_i64m4 = alloca <64 x i64>, align 8
1718 // CHECK-1024-NEXT:  %local_u8m4 = alloca <512 x i8>, align 8
1719 // CHECK-1024-NEXT:  %local_u16m4 = alloca <256 x i16>, align 8
1720 // CHECK-1024-NEXT:  %local_u32m4 = alloca <128 x i32>, align 8
1721 // CHECK-1024-NEXT:  %local_u64m4 = alloca <64 x i64>, align 8
1722 // CHECK-1024-NEXT:  %local_f32m4 = alloca <128 x float>, align 8
1723 // CHECK-1024-NEXT:  %local_f64m4 = alloca <64 x double>, align 8
1724 // CHECK-1024-NEXT:  %local_i8m8 = alloca <1024 x i8>, align 8
1725 // CHECK-1024-NEXT:  %local_i16m8 = alloca <512 x i16>, align 8
1726 // CHECK-1024-NEXT:  %local_i32m8 = alloca <256 x i32>, align 8
1727 // CHECK-1024-NEXT:  %local_i64m8 = alloca <128 x i64>, align 8
1728 // CHECK-1024-NEXT:  %local_u8m8 = alloca <1024 x i8>, align 8
1729 // CHECK-1024-NEXT:  %local_u16m8 = alloca <512 x i16>, align 8
1730 // CHECK-1024-NEXT:  %local_u32m8 = alloca <256 x i32>, align 8
1731 // CHECK-1024-NEXT:  %local_u64m8 = alloca <128 x i64>, align 8
1732 // CHECK-1024-NEXT:  %local_f32m8 = alloca <256 x float>, align 8
1733 // CHECK-1024-NEXT:  %local_f64m8 = alloca <128 x double>, align 8
1734 // CHECK-1024-NEXT: %local_bool1 = alloca <128 x i8>, align 8
1735 // CHECK-1024-NEXT: %local_bool2 = alloca <64 x i8>, align 8
1736 // CHECK-1024-NEXT: %local_bool4 = alloca <32 x i8>, align 8
1737 // CHECK-1024-NEXT: %local_bool8 = alloca <16 x i8>, align 8
1738 // CHECK-1024-NEXT: %local_bool16 = alloca <8 x i8>, align 8
1739 // CHECK-1024-NEXT: %local_bool32 = alloca <4 x i8>, align 4
1740 // CHECK-1024-NEXT: %local_bool64 = alloca <2 x i8>, align 2
1741 
1742 //===----------------------------------------------------------------------===//
1743 // Local arrays
1744 //===----------------------------------------------------------------------===//
1745 // CHECK-64:      %local_arr_i8 = alloca [3 x <8 x i8>], align 8
1746 // CHECK-64-NEXT: %local_arr_i16 = alloca [3 x <4 x i16>], align 8
1747 // CHECK-64-NEXT: %local_arr_i32 = alloca [3 x <2 x i32>], align 8
1748 // CHECK-64-NEXT: %local_arr_i64 = alloca [3 x <1 x i64>], align 8
1749 // CHECK-64-NEXT: %local_arr_u8 = alloca [3 x <8 x i8>], align 8
1750 // CHECK-64-NEXT: %local_arr_u16 = alloca [3 x <4 x i16>], align 8
1751 // CHECK-64-NEXT: %local_arr_u32 = alloca [3 x <2 x i32>], align 8
1752 // CHECK-64-NEXT: %local_arr_u64 = alloca [3 x <1 x i64>], align 8
1753 // CHECK-64-NEXT: %local_arr_f32 = alloca [3 x <2 x float>], align 8
1754 // CHECK-64-NEXT: %local_arr_f64 = alloca [3 x <1 x double>], align 8
1755 // CHECK-64-NEXT: %local_arr_i8m2 = alloca [3 x <16 x i8>], align 8
1756 // CHECK-64-NEXT: %local_arr_i16m2 = alloca [3 x <8 x i16>], align 8
1757 // CHECK-64-NEXT: %local_arr_i32m2 = alloca [3 x <4 x i32>], align 8
1758 // CHECK-64-NEXT: %local_arr_i64m2 = alloca [3 x <2 x i64>], align 8
1759 // CHECK-64-NEXT: %local_arr_u8m2 = alloca [3 x <16 x i8>], align 8
1760 // CHECK-64-NEXT: %local_arr_u16m2 = alloca [3 x <8 x i16>], align 8
1761 // CHECK-64-NEXT: %local_arr_u32m2 = alloca [3 x <4 x i32>], align 8
1762 // CHECK-64-NEXT: %local_arr_u64m2 = alloca [3 x <2 x i64>], align 8
1763 // CHECK-64-NEXT: %local_arr_f32m2 = alloca [3 x <4 x float>], align 8
1764 // CHECK-64-NEXT: %local_arr_f64m2 = alloca [3 x <2 x double>], align 8
1765 // CHECK-64-NEXT: %local_arr_i8m4 = alloca [3 x <32 x i8>], align 8
1766 // CHECK-64-NEXT: %local_arr_i16m4 = alloca [3 x <16 x i16>], align 8
1767 // CHECK-64-NEXT: %local_arr_i32m4 = alloca [3 x <8 x i32>], align 8
1768 // CHECK-64-NEXT: %local_arr_i64m4 = alloca [3 x <4 x i64>], align 8
1769 // CHECK-64-NEXT: %local_arr_u8m4 = alloca [3 x <32 x i8>], align 8
1770 // CHECK-64-NEXT: %local_arr_u16m4 = alloca [3 x <16 x i16>], align 8
1771 // CHECK-64-NEXT: %local_arr_u32m4 = alloca [3 x <8 x i32>], align 8
1772 // CHECK-64-NEXT: %local_arr_u64m4 = alloca [3 x <4 x i64>], align 8
1773 // CHECK-64-NEXT: %local_arr_f32m4 = alloca [3 x <8 x float>], align 8
1774 // CHECK-64-NEXT: %local_arr_f64m4 = alloca [3 x <4 x double>], align 8
1775 // CHECK-64-NEXT: %local_arr_i8m8 = alloca [3 x <64 x i8>], align 8
1776 // CHECK-64-NEXT: %local_arr_i16m8 = alloca [3 x <32 x i16>], align 8
1777 // CHECK-64-NEXT: %local_arr_i32m8 = alloca [3 x <16 x i32>], align 8
1778 // CHECK-64-NEXT: %local_arr_i64m8 = alloca [3 x <8 x i64>], align 8
1779 // CHECK-64-NEXT: %local_arr_u8m8 = alloca [3 x <64 x i8>], align 8
1780 // CHECK-64-NEXT: %local_arr_u16m8 = alloca [3 x <32 x i16>], align 8
1781 // CHECK-64-NEXT: %local_arr_u32m8 = alloca [3 x <16 x i32>], align 8
1782 // CHECK-64-NEXT: %local_arr_u64m8 = alloca [3 x <8 x i64>], align 8
1783 // CHECK-64-NEXT: %local_arr_f32m8 = alloca [3 x <16 x float>], align 8
1784 // CHECK-64-NEXT: %local_arr_f64m8 = alloca [3 x <8 x double>], align 8
1785 // CHECK-64-NEXT: %local_arr_i8mf2 = alloca [3 x <4 x i8>], align 4
1786 // CHECK-64-NEXT: %local_arr_i16mf2 = alloca [3 x <2 x i16>], align 4
1787 // CHECK-64-NEXT: %local_arr_i32mf2 = alloca [3 x <1 x i32>], align 4
1788 // CHECK-64-NEXT: %local_arr_u8mf2 = alloca [3 x <4 x i8>], align 4
1789 // CHECK-64-NEXT: %local_arr_u16mf2 = alloca [3 x <2 x i16>], align 4
1790 // CHECK-64-NEXT: %local_arr_u32mf2 = alloca [3 x <1 x i32>], align 4
1791 // CHECK-64-NEXT: %local_arr_f32mf2 = alloca [3 x <1 x float>], align 4
1792 // CHECK-64-NEXT: %local_arr_i8mf4 = alloca [3 x <2 x i8>], align 2
1793 // CHECK-64-NEXT: %local_arr_i16mf4 = alloca [3 x <1 x i16>], align 2
1794 // CHECK-64-NEXT: %local_arr_u8mf4 = alloca [3 x <2 x i8>], align 2
1795 // CHECK-64-NEXT: %local_arr_u16mf4 = alloca [3 x <1 x i16>], align 2
1796 // CHECK-64-NEXT: %local_arr_i8mf8 = alloca [3 x <1 x i8>], align 1
1797 // CHECK-64-NEXT: %local_arr_u8mf8 = alloca [3 x <1 x i8>], align 1
1798 // CHECK-64-NEXT: %local_arr_bool1 = alloca [3 x <8 x i8>], align 8
1799 // CHECK-64-NEXT: %local_arr_bool2 = alloca [3 x <4 x i8>], align 4
1800 // CHECK-64-NEXT: %local_arr_bool4 = alloca [3 x <2 x i8>], align 2
1801 // CHECK-64-NEXT: %local_arr_bool8 = alloca [3 x <1 x i8>], align 1
1802 // CHECK-64-NEXT: %local_arr_bool16 = alloca [3 x <1 x i8>], align 1
1803 // CHECK-64-NEXT: %local_arr_bool32 = alloca [3 x <1 x i8>], align 1
1804 // CHECK-64-NEXT: %local_arr_bool64 = alloca [3 x <1 x i8>], align 1
1805 
1806 // CHECK-128:      %local_arr_i8 = alloca [3 x <16 x i8>], align 8
1807 // CHECK-128-NEXT: %local_arr_i16 = alloca [3 x <8 x i16>], align 8
1808 // CHECK-128-NEXT: %local_arr_i32 = alloca [3 x <4 x i32>], align 8
1809 // CHECK-128-NEXT: %local_arr_i64 = alloca [3 x <2 x i64>], align 8
1810 // CHECK-128-NEXT: %local_arr_u8 = alloca [3 x <16 x i8>], align 8
1811 // CHECK-128-NEXT: %local_arr_u16 = alloca [3 x <8 x i16>], align 8
1812 // CHECK-128-NEXT: %local_arr_u32 = alloca [3 x <4 x i32>], align 8
1813 // CHECK-128-NEXT: %local_arr_u64 = alloca [3 x <2 x i64>], align 8
1814 // CHECK-128-NEXT: %local_arr_f32 = alloca [3 x <4 x float>], align 8
1815 // CHECK-128-NEXT: %local_arr_f64 = alloca [3 x <2 x double>], align 8
1816 // CHECK-128-NEXT: %local_arr_i8m2 = alloca [3 x <32 x i8>], align 8
1817 // CHECK-128-NEXT: %local_arr_i16m2 = alloca [3 x <16 x i16>], align 8
1818 // CHECK-128-NEXT: %local_arr_i32m2 = alloca [3 x <8 x i32>], align 8
1819 // CHECK-128-NEXT: %local_arr_i64m2 = alloca [3 x <4 x i64>], align 8
1820 // CHECK-128-NEXT: %local_arr_u8m2 = alloca [3 x <32 x i8>], align 8
1821 // CHECK-128-NEXT: %local_arr_u16m2 = alloca [3 x <16 x i16>], align 8
1822 // CHECK-128-NEXT: %local_arr_u32m2 = alloca [3 x <8 x i32>], align 8
1823 // CHECK-128-NEXT: %local_arr_u64m2 = alloca [3 x <4 x i64>], align 8
1824 // CHECK-128-NEXT: %local_arr_f32m2 = alloca [3 x <8 x float>], align 8
1825 // CHECK-128-NEXT: %local_arr_f64m2 = alloca [3 x <4 x double>], align 8
1826 // CHECK-128-NEXT: %local_arr_i8m4 = alloca [3 x <64 x i8>], align 8
1827 // CHECK-128-NEXT: %local_arr_i16m4 = alloca [3 x <32 x i16>], align 8
1828 // CHECK-128-NEXT: %local_arr_i32m4 = alloca [3 x <16 x i32>], align 8
1829 // CHECK-128-NEXT: %local_arr_i64m4 = alloca [3 x <8 x i64>], align 8
1830 // CHECK-128-NEXT: %local_arr_u8m4 = alloca [3 x <64 x i8>], align 8
1831 // CHECK-128-NEXT: %local_arr_u16m4 = alloca [3 x <32 x i16>], align 8
1832 // CHECK-128-NEXT: %local_arr_u32m4 = alloca [3 x <16 x i32>], align 8
1833 // CHECK-128-NEXT: %local_arr_u64m4 = alloca [3 x <8 x i64>], align 8
1834 // CHECK-128-NEXT: %local_arr_f32m4 = alloca [3 x <16 x float>], align 8
1835 // CHECK-128-NEXT: %local_arr_f64m4 = alloca [3 x <8 x double>], align 8
1836 // CHECK-128-NEXT: %local_arr_i8m8 = alloca [3 x <128 x i8>], align 8
1837 // CHECK-128-NEXT: %local_arr_i16m8 = alloca [3 x <64 x i16>], align 8
1838 // CHECK-128-NEXT: %local_arr_i32m8 = alloca [3 x <32 x i32>], align 8
1839 // CHECK-128-NEXT: %local_arr_i64m8 = alloca [3 x <16 x i64>], align 8
1840 // CHECK-128-NEXT: %local_arr_u8m8 = alloca [3 x <128 x i8>], align 8
1841 // CHECK-128-NEXT: %local_arr_u16m8 = alloca [3 x <64 x i16>], align 8
1842 // CHECK-128-NEXT: %local_arr_u32m8 = alloca [3 x <32 x i32>], align 8
1843 // CHECK-128-NEXT: %local_arr_u64m8 = alloca [3 x <16 x i64>], align 8
1844 // CHECK-128-NEXT: %local_arr_f32m8 = alloca [3 x <32 x float>], align 8
1845 // CHECK-128-NEXT: %local_arr_f64m8 = alloca [3 x <16 x double>], align 8
1846 // CHECK-128-NEXT: %local_arr_i8mf2 = alloca [3 x <8 x i8>], align 8
1847 // CHECK-128-NEXT: %local_arr_i16mf2 = alloca [3 x <4 x i16>], align 8
1848 // CHECK-128-NEXT: %local_arr_i32mf2 = alloca [3 x <2 x i32>], align 8
1849 // CHECK-128-NEXT: %local_arr_u8mf2 = alloca [3 x <8 x i8>], align 8
1850 // CHECK-128-NEXT: %local_arr_u16mf2 = alloca [3 x <4 x i16>], align 8
1851 // CHECK-128-NEXT: %local_arr_u32mf2 = alloca [3 x <2 x i32>], align 8
1852 // CHECK-128-NEXT: %local_arr_f32mf2 = alloca [3 x <2 x float>], align 8
1853 // CHECK-128-NEXT: %local_arr_i8mf4 = alloca [3 x <4 x i8>], align 4
1854 // CHECK-128-NEXT: %local_arr_i16mf4 = alloca [3 x <2 x i16>], align 4
1855 // CHECK-128-NEXT: %local_arr_u8mf4 = alloca [3 x <4 x i8>], align 4
1856 // CHECK-128-NEXT: %local_arr_u16mf4 = alloca [3 x <2 x i16>], align 4
1857 // CHECK-128-NEXT: %local_arr_i8mf8 = alloca [3 x <2 x i8>], align 2
1858 // CHECK-128-NEXT: %local_arr_u8mf8 = alloca [3 x <2 x i8>], align 2
1859 // CHECK-128-NEXT: %local_arr_bool1 = alloca [3 x <16 x i8>], align 8
1860 // CHECK-128-NEXT: %local_arr_bool2 = alloca [3 x <8 x i8>], align 8
1861 // CHECK-128-NEXT: %local_arr_bool4 = alloca [3 x <4 x i8>], align 4
1862 // CHECK-128-NEXT: %local_arr_bool8 = alloca [3 x <2 x i8>], align 2
1863 // CHECK-128-NEXT: %local_arr_bool16 = alloca [3 x <1 x i8>], align 1
1864 // CHECK-128-NEXT: %local_arr_bool32 = alloca [3 x <1 x i8>], align 1
1865 // CHECK-128-NEXT: %local_arr_bool64 = alloca [3 x <1 x i8>], align 1
1866 
1867 // CHECK-256:      %local_arr_i8 = alloca [3 x <32 x i8>], align 8
1868 // CHECK-256-NEXT: %local_arr_i16 = alloca [3 x <16 x i16>], align 8
1869 // CHECK-256-NEXT: %local_arr_i32 = alloca [3 x <8 x i32>], align 8
1870 // CHECK-256-NEXT: %local_arr_i64 = alloca [3 x <4 x i64>], align 8
1871 // CHECK-256-NEXT: %local_arr_u8 = alloca [3 x <32 x i8>], align 8
1872 // CHECK-256-NEXT: %local_arr_u16 = alloca [3 x <16 x i16>], align 8
1873 // CHECK-256-NEXT: %local_arr_u32 = alloca [3 x <8 x i32>], align 8
1874 // CHECK-256-NEXT: %local_arr_u64 = alloca [3 x <4 x i64>], align 8
1875 // CHECK-256-NEXT: %local_arr_f32 = alloca [3 x <8 x float>], align 8
1876 // CHECK-256-NEXT: %local_arr_f64 = alloca [3 x <4 x double>], align 8
1877 // CHECK-256-NEXT: %local_arr_i8m2 = alloca [3 x <64 x i8>], align 8
1878 // CHECK-256-NEXT: %local_arr_i16m2 = alloca [3 x <32 x i16>], align 8
1879 // CHECK-256-NEXT: %local_arr_i32m2 = alloca [3 x <16 x i32>], align 8
1880 // CHECK-256-NEXT: %local_arr_i64m2 = alloca [3 x <8 x i64>], align 8
1881 // CHECK-256-NEXT: %local_arr_u8m2 = alloca [3 x <64 x i8>], align 8
1882 // CHECK-256-NEXT: %local_arr_u16m2 = alloca [3 x <32 x i16>], align 8
1883 // CHECK-256-NEXT: %local_arr_u32m2 = alloca [3 x <16 x i32>], align 8
1884 // CHECK-256-NEXT: %local_arr_u64m2 = alloca [3 x <8 x i64>], align 8
1885 // CHECK-256-NEXT: %local_arr_f32m2 = alloca [3 x <16 x float>], align 8
1886 // CHECK-256-NEXT: %local_arr_f64m2 = alloca [3 x <8 x double>], align 8
1887 // CHECK-256-NEXT: %local_arr_i8m4 = alloca [3 x <128 x i8>], align 8
1888 // CHECK-256-NEXT: %local_arr_i16m4 = alloca [3 x <64 x i16>], align 8
1889 // CHECK-256-NEXT: %local_arr_i32m4 = alloca [3 x <32 x i32>], align 8
1890 // CHECK-256-NEXT: %local_arr_i64m4 = alloca [3 x <16 x i64>], align 8
1891 // CHECK-256-NEXT: %local_arr_u8m4 = alloca [3 x <128 x i8>], align 8
1892 // CHECK-256-NEXT: %local_arr_u16m4 = alloca [3 x <64 x i16>], align 8
1893 // CHECK-256-NEXT: %local_arr_u32m4 = alloca [3 x <32 x i32>], align 8
1894 // CHECK-256-NEXT: %local_arr_u64m4 = alloca [3 x <16 x i64>], align 8
1895 // CHECK-256-NEXT: %local_arr_f32m4 = alloca [3 x <32 x float>], align 8
1896 // CHECK-256-NEXT: %local_arr_f64m4 = alloca [3 x <16 x double>], align 8
1897 // CHECK-256-NEXT: %local_arr_i8m8 = alloca [3 x <256 x i8>], align 8
1898 // CHECK-256-NEXT: %local_arr_i16m8 = alloca [3 x <128 x i16>], align 8
1899 // CHECK-256-NEXT: %local_arr_i32m8 = alloca [3 x <64 x i32>], align 8
1900 // CHECK-256-NEXT: %local_arr_i64m8 = alloca [3 x <32 x i64>], align 8
1901 // CHECK-256-NEXT: %local_arr_u8m8 = alloca [3 x <256 x i8>], align 8
1902 // CHECK-256-NEXT: %local_arr_u16m8 = alloca [3 x <128 x i16>], align 8
1903 // CHECK-256-NEXT: %local_arr_u32m8 = alloca [3 x <64 x i32>], align 8
1904 // CHECK-256-NEXT: %local_arr_u64m8 = alloca [3 x <32 x i64>], align 8
1905 // CHECK-256-NEXT: %local_arr_f32m8 = alloca [3 x <64 x float>], align 8
1906 // CHECK-256-NEXT: %local_arr_f64m8 = alloca [3 x <32 x double>], align 8
1907 // CHECK-256-NEXT: %local_arr_i8mf2 = alloca [3 x <16 x i8>], align 8
1908 // CHECK-256-NEXT: %local_arr_i16mf2 = alloca [3 x <8 x i16>], align 8
1909 // CHECK-256-NEXT: %local_arr_i32mf2 = alloca [3 x <4 x i32>], align 8
1910 // CHECK-256-NEXT: %local_arr_u8mf2 = alloca [3 x <16 x i8>], align 8
1911 // CHECK-256-NEXT: %local_arr_u16mf2 = alloca [3 x <8 x i16>], align 8
1912 // CHECK-256-NEXT: %local_arr_u32mf2 = alloca [3 x <4 x i32>], align 8
1913 // CHECK-256-NEXT: %local_arr_f32mf2 = alloca [3 x <4 x float>], align 8
1914 // CHECK-256-NEXT: %local_arr_i8mf4 = alloca [3 x <8 x i8>], align 8
1915 // CHECK-256-NEXT: %local_arr_i16mf4 = alloca [3 x <4 x i16>], align 8
1916 // CHECK-256-NEXT: %local_arr_u8mf4 = alloca [3 x <8 x i8>], align 8
1917 // CHECK-256-NEXT: %local_arr_u16mf4 = alloca [3 x <4 x i16>], align 8
1918 // CHECK-256-NEXT: %local_arr_i8mf8 = alloca [3 x <4 x i8>], align 4
1919 // CHECK-256-NEXT: %local_arr_u8mf8 = alloca [3 x <4 x i8>], align 4
1920 // CHECK-256-NEXT: %local_arr_bool1 = alloca [3 x <32 x i8>], align 8
1921 // CHECK-256-NEXT: %local_arr_bool2 = alloca [3 x <16 x i8>], align 8
1922 // CHECK-256-NEXT: %local_arr_bool4 = alloca [3 x <8 x i8>], align 8
1923 // CHECK-256-NEXT: %local_arr_bool8 = alloca [3 x <4 x i8>], align 4
1924 // CHECK-256-NEXT: %local_arr_bool16 = alloca [3 x <2 x i8>], align 2
1925 // CHECK-256-NEXT: %local_arr_bool32 = alloca [3 x <1 x i8>], align 1
1926 // CHECK-256-NEXT: %local_arr_bool64 = alloca [3 x <1 x i8>], align 1
1927 
1928 // CHECK-512:      %local_arr_i8 = alloca [3 x <64 x i8>], align 8
1929 // CHECK-512-NEXT: %local_arr_i16 = alloca [3 x <32 x i16>], align 8
1930 // CHECK-512-NEXT: %local_arr_i32 = alloca [3 x <16 x i32>], align 8
1931 // CHECK-512-NEXT: %local_arr_i64 = alloca [3 x <8 x i64>], align 8
1932 // CHECK-512-NEXT: %local_arr_u8 = alloca [3 x <64 x i8>], align 8
1933 // CHECK-512-NEXT: %local_arr_u16 = alloca [3 x <32 x i16>], align 8
1934 // CHECK-512-NEXT: %local_arr_u32 = alloca [3 x <16 x i32>], align 8
1935 // CHECK-512-NEXT: %local_arr_u64 = alloca [3 x <8 x i64>], align 8
1936 // CHECK-512-NEXT: %local_arr_f32 = alloca [3 x <16 x float>], align 8
1937 // CHECK-512-NEXT: %local_arr_f64 = alloca [3 x <8 x double>], align 8
1938 // CHECK-512-NEXT: %local_arr_i8m2 = alloca [3 x <128 x i8>], align 8
1939 // CHECK-512-NEXT: %local_arr_i16m2 = alloca [3 x <64 x i16>], align 8
1940 // CHECK-512-NEXT: %local_arr_i32m2 = alloca [3 x <32 x i32>], align 8
1941 // CHECK-512-NEXT: %local_arr_i64m2 = alloca [3 x <16 x i64>], align 8
1942 // CHECK-512-NEXT: %local_arr_u8m2 = alloca [3 x <128 x i8>], align 8
1943 // CHECK-512-NEXT: %local_arr_u16m2 = alloca [3 x <64 x i16>], align 8
1944 // CHECK-512-NEXT: %local_arr_u32m2 = alloca [3 x <32 x i32>], align 8
1945 // CHECK-512-NEXT: %local_arr_u64m2 = alloca [3 x <16 x i64>], align 8
1946 // CHECK-512-NEXT: %local_arr_f32m2 = alloca [3 x <32 x float>], align 8
1947 // CHECK-512-NEXT: %local_arr_f64m2 = alloca [3 x <16 x double>], align 8
1948 // CHECK-512-NEXT: %local_arr_i8m4 = alloca [3 x <256 x i8>], align 8
1949 // CHECK-512-NEXT: %local_arr_i16m4 = alloca [3 x <128 x i16>], align 8
1950 // CHECK-512-NEXT: %local_arr_i32m4 = alloca [3 x <64 x i32>], align 8
1951 // CHECK-512-NEXT: %local_arr_i64m4 = alloca [3 x <32 x i64>], align 8
1952 // CHECK-512-NEXT: %local_arr_u8m4 = alloca [3 x <256 x i8>], align 8
1953 // CHECK-512-NEXT: %local_arr_u16m4 = alloca [3 x <128 x i16>], align 8
1954 // CHECK-512-NEXT: %local_arr_u32m4 = alloca [3 x <64 x i32>], align 8
1955 // CHECK-512-NEXT: %local_arr_u64m4 = alloca [3 x <32 x i64>], align 8
1956 // CHECK-512-NEXT: %local_arr_f32m4 = alloca [3 x <64 x float>], align 8
1957 // CHECK-512-NEXT: %local_arr_f64m4 = alloca [3 x <32 x double>], align 8
1958 // CHECK-512-NEXT: %local_arr_i8m8 = alloca [3 x <512 x i8>], align 8
1959 // CHECK-512-NEXT: %local_arr_i16m8 = alloca [3 x <256 x i16>], align 8
1960 // CHECK-512-NEXT: %local_arr_i32m8 = alloca [3 x <128 x i32>], align 8
1961 // CHECK-512-NEXT: %local_arr_i64m8 = alloca [3 x <64 x i64>], align 8
1962 // CHECK-512-NEXT: %local_arr_u8m8 = alloca [3 x <512 x i8>], align 8
1963 // CHECK-512-NEXT: %local_arr_u16m8 = alloca [3 x <256 x i16>], align 8
1964 // CHECK-512-NEXT: %local_arr_u32m8 = alloca [3 x <128 x i32>], align 8
1965 // CHECK-512-NEXT: %local_arr_u64m8 = alloca [3 x <64 x i64>], align 8
1966 // CHECK-512-NEXT: %local_arr_f32m8 = alloca [3 x <128 x float>], align 8
1967 // CHECK-512-NEXT: %local_arr_f64m8 = alloca [3 x <64 x double>], align 8
1968 // CHECK-512-NEXT: %local_arr_i8mf2 = alloca [3 x <32 x i8>], align 8
1969 // CHECK-512-NEXT: %local_arr_i16mf2 = alloca [3 x <16 x i16>], align 8
1970 // CHECK-512-NEXT: %local_arr_i32mf2 = alloca [3 x <8 x i32>], align 8
1971 // CHECK-512-NEXT: %local_arr_u8mf2 = alloca [3 x <32 x i8>], align 8
1972 // CHECK-512-NEXT: %local_arr_u16mf2 = alloca [3 x <16 x i16>], align 8
1973 // CHECK-512-NEXT: %local_arr_u32mf2 = alloca [3 x <8 x i32>], align 8
1974 // CHECK-512-NEXT: %local_arr_f32mf2 = alloca [3 x <8 x float>], align 8
1975 // CHECK-512-NEXT: %local_arr_i8mf4 = alloca [3 x <16 x i8>], align 8
1976 // CHECK-512-NEXT: %local_arr_i16mf4 = alloca [3 x <8 x i16>], align 8
1977 // CHECK-512-NEXT: %local_arr_u8mf4 = alloca [3 x <16 x i8>], align 8
1978 // CHECK-512-NEXT: %local_arr_u16mf4 = alloca [3 x <8 x i16>], align 8
1979 // CHECK-512-NEXT: %local_arr_i8mf8 = alloca [3 x <8 x i8>], align 8
1980 // CHECK-512-NEXT: %local_arr_u8mf8 = alloca [3 x <8 x i8>], align 8
1981 // CHECK-512-NEXT: %local_arr_bool1 = alloca [3 x <64 x i8>], align 8
1982 // CHECK-512-NEXT: %local_arr_bool2 = alloca [3 x <32 x i8>], align 8
1983 // CHECK-512-NEXT: %local_arr_bool4 = alloca [3 x <16 x i8>], align 8
1984 // CHECK-512-NEXT: %local_arr_bool8 = alloca [3 x <8 x i8>], align 8
1985 // CHECK-512-NEXT: %local_arr_bool16 = alloca [3 x <4 x i8>], align 4
1986 // CHECK-512-NEXT: %local_arr_bool32 = alloca [3 x <2 x i8>], align 2
1987 // CHECK-512-NEXT: %local_arr_bool64 = alloca [3 x <1 x i8>], align 1
1988 
1989 // CHECK-1024:       %local_arr_i8 = alloca [3 x <128 x i8>], align 8
1990 // CHECK-1024-NEXT:  %local_arr_i16 = alloca [3 x <64 x i16>], align 8
1991 // CHECK-1024-NEXT:  %local_arr_i32 = alloca [3 x <32 x i32>], align 8
1992 // CHECK-1024-NEXT:  %local_arr_i64 = alloca [3 x <16 x i64>], align 8
1993 // CHECK-1024-NEXT:  %local_arr_u8 = alloca [3 x <128 x i8>], align 8
1994 // CHECK-1024-NEXT:  %local_arr_u16 = alloca [3 x <64 x i16>], align 8
1995 // CHECK-1024-NEXT:  %local_arr_u32 = alloca [3 x <32 x i32>], align 8
1996 // CHECK-1024-NEXT:  %local_arr_u64 = alloca [3 x <16 x i64>], align 8
1997 // CHECK-1024-NEXT:  %local_arr_f32 = alloca [3 x <32 x float>], align 8
1998 // CHECK-1024-NEXT:  %local_arr_f64 = alloca [3 x <16 x double>], align 8
1999 // CHECK-1024-NEXT:  %local_arr_i8m2 = alloca [3 x <256 x i8>], align 8
2000 // CHECK-1024-NEXT:  %local_arr_i16m2 = alloca [3 x <128 x i16>], align 8
2001 // CHECK-1024-NEXT:  %local_arr_i32m2 = alloca [3 x <64 x i32>], align 8
2002 // CHECK-1024-NEXT:  %local_arr_i64m2 = alloca [3 x <32 x i64>], align 8
2003 // CHECK-1024-NEXT:  %local_arr_u8m2 = alloca [3 x <256 x i8>], align 8
2004 // CHECK-1024-NEXT:  %local_arr_u16m2 = alloca [3 x <128 x i16>], align 8
2005 // CHECK-1024-NEXT:  %local_arr_u32m2 = alloca [3 x <64 x i32>], align 8
2006 // CHECK-1024-NEXT:  %local_arr_u64m2 = alloca [3 x <32 x i64>], align 8
2007 // CHECK-1024-NEXT:  %local_arr_f32m2 = alloca [3 x <64 x float>], align 8
2008 // CHECK-1024-NEXT:  %local_arr_f64m2 = alloca [3 x <32 x double>], align 8
2009 // CHECK-1024-NEXT:  %local_arr_i8m4 = alloca [3 x <512 x i8>], align 8
2010 // CHECK-1024-NEXT:  %local_arr_i16m4 = alloca [3 x <256 x i16>], align 8
2011 // CHECK-1024-NEXT:  %local_arr_i32m4 = alloca [3 x <128 x i32>], align 8
2012 // CHECK-1024-NEXT:  %local_arr_i64m4 = alloca [3 x <64 x i64>], align 8
2013 // CHECK-1024-NEXT:  %local_arr_u8m4 = alloca [3 x <512 x i8>], align 8
2014 // CHECK-1024-NEXT:  %local_arr_u16m4 = alloca [3 x <256 x i16>], align 8
2015 // CHECK-1024-NEXT:  %local_arr_u32m4 = alloca [3 x <128 x i32>], align 8
2016 // CHECK-1024-NEXT:  %local_arr_u64m4 = alloca [3 x <64 x i64>], align 8
2017 // CHECK-1024-NEXT:  %local_arr_f32m4 = alloca [3 x <128 x float>], align 8
2018 // CHECK-1024-NEXT:  %local_arr_f64m4 = alloca [3 x <64 x double>], align 8
2019 // CHECK-1024-NEXT:  %local_arr_i8m8 = alloca [3 x <1024 x i8>], align 8
2020 // CHECK-1024-NEXT:  %local_arr_i16m8 = alloca [3 x <512 x i16>], align 8
2021 // CHECK-1024-NEXT:  %local_arr_i32m8 = alloca [3 x <256 x i32>], align 8
2022 // CHECK-1024-NEXT:  %local_arr_i64m8 = alloca [3 x <128 x i64>], align 8
2023 // CHECK-1024-NEXT:  %local_arr_u8m8 = alloca [3 x <1024 x i8>], align 8
2024 // CHECK-1024-NEXT:  %local_arr_u16m8 = alloca [3 x <512 x i16>], align 8
2025 // CHECK-1024-NEXT:  %local_arr_u32m8 = alloca [3 x <256 x i32>], align 8
2026 // CHECK-1024-NEXT:  %local_arr_u64m8 = alloca [3 x <128 x i64>], align 8
2027 // CHECK-1024-NEXT:  %local_arr_f32m8 = alloca [3 x <256 x float>], align 8
2028 // CHECK-1024-NEXT:  %local_arr_f64m8 = alloca [3 x <128 x double>], align 8
2029 // CHECK-1024-NEXT: %local_arr_i8mf2 = alloca [3 x <64 x i8>], align 8
2030 // CHECK-1024-NEXT: %local_arr_i16mf2 = alloca [3 x <32 x i16>], align 8
2031 // CHECK-1024-NEXT: %local_arr_i32mf2 = alloca [3 x <16 x i32>], align 8
2032 // CHECK-1024-NEXT: %local_arr_u8mf2 = alloca [3 x <64 x i8>], align 8
2033 // CHECK-1024-NEXT: %local_arr_u16mf2 = alloca [3 x <32 x i16>], align 8
2034 // CHECK-1024-NEXT: %local_arr_u32mf2 = alloca [3 x <16 x i32>], align 8
2035 // CHECK-1024-NEXT: %local_arr_f32mf2 = alloca [3 x <16 x float>], align 8
2036 // CHECK-1024-NEXT: %local_arr_i8mf4 = alloca [3 x <32 x i8>], align 8
2037 // CHECK-1024-NEXT: %local_arr_i16mf4 = alloca [3 x <16 x i16>], align 8
2038 // CHECK-1024-NEXT: %local_arr_u8mf4 = alloca [3 x <32 x i8>], align 8
2039 // CHECK-1024-NEXT: %local_arr_u16mf4 = alloca [3 x <16 x i16>], align 8
2040 // CHECK-1024-NEXT: %local_arr_i8mf8 = alloca [3 x <16 x i8>], align 8
2041 // CHECK-1024-NEXT: %local_arr_u8mf8 = alloca [3 x <16 x i8>], align 8
2042 // CHECK-1024-NEXT: %local_arr_bool1 = alloca [3 x <128 x i8>], align 8
2043 // CHECK-1024-NEXT: %local_arr_bool2 = alloca [3 x <64 x i8>], align 8
2044 // CHECK-1024-NEXT: %local_arr_bool4 = alloca [3 x <32 x i8>], align 8
2045 // CHECK-1024-NEXT: %local_arr_bool8 = alloca [3 x <16 x i8>], align 8
2046 // CHECK-1024-NEXT: %local_arr_bool16 = alloca [3 x <8 x i8>], align 8
2047 // CHECK-1024-NEXT: %local_arr_bool32 = alloca [3 x <4 x i8>], align 4
2048 // CHECK-1024-NEXT: %local_arr_bool64 = alloca [3 x <2 x i8>], align 2
2049