6a3152e4f51a86fcc3c6c9e8cf3d1ab123770486
[oota-llvm.git] / test / CodeGen / X86 / mem-promote-integers.ll
1 ; RUN: llc -march=x86 -promote-elements < %s
2 ; RUN: llc -march=x86                   < %s
3 ; RUN: llc -march=x86-64 -promote-elements < %s
4 ; RUN: llc -march=x86-64                   < %s
5
6 define <1 x i8> @test_1xi8(<1 x i8> %x, <1 x i8>* %b) {
7   %bb = load <1 x i8>* %b
8   %tt = xor <1 x i8> %x, %bb
9   store <1 x i8> %tt, <1 x i8>* %b
10   br label %next
11
12 next:
13   ret <1 x i8> %tt
14 }
15
16
17 define <1 x i16> @test_1xi16(<1 x i16> %x, <1 x i16>* %b) {
18   %bb = load <1 x i16>* %b
19   %tt = xor <1 x i16> %x, %bb
20   store <1 x i16> %tt, <1 x i16>* %b
21   br label %next
22
23 next:
24   ret <1 x i16> %tt
25 }
26
27
28 define <1 x i32> @test_1xi32(<1 x i32> %x, <1 x i32>* %b) {
29   %bb = load <1 x i32>* %b
30   %tt = xor <1 x i32> %x, %bb
31   store <1 x i32> %tt, <1 x i32>* %b
32   br label %next
33
34 next:
35   ret <1 x i32> %tt
36 }
37
38
39 define <1 x i64> @test_1xi64(<1 x i64> %x, <1 x i64>* %b) {
40   %bb = load <1 x i64>* %b
41   %tt = xor <1 x i64> %x, %bb
42   store <1 x i64> %tt, <1 x i64>* %b
43   br label %next
44
45 next:
46   ret <1 x i64> %tt
47 }
48
49
50 define <1 x i128> @test_1xi128(<1 x i128> %x, <1 x i128>* %b) {
51   %bb = load <1 x i128>* %b
52   %tt = xor <1 x i128> %x, %bb
53   store <1 x i128> %tt, <1 x i128>* %b
54   br label %next
55
56 next:
57   ret <1 x i128> %tt
58 }
59
60
61 define <1 x i256> @test_1xi256(<1 x i256> %x, <1 x i256>* %b) {
62   %bb = load <1 x i256>* %b
63   %tt = xor <1 x i256> %x, %bb
64   store <1 x i256> %tt, <1 x i256>* %b
65   br label %next
66
67 next:
68   ret <1 x i256> %tt
69 }
70
71
72 define <1 x i512> @test_1xi512(<1 x i512> %x, <1 x i512>* %b) {
73   %bb = load <1 x i512>* %b
74   %tt = xor <1 x i512> %x, %bb
75   store <1 x i512> %tt, <1 x i512>* %b
76   br label %next
77
78 next:
79   ret <1 x i512> %tt
80 }
81
82
83 define <2 x i8> @test_2xi8(<2 x i8> %x, <2 x i8>* %b) {
84   %bb = load <2 x i8>* %b
85   %tt = xor <2 x i8> %x, %bb
86   store <2 x i8> %tt, <2 x i8>* %b
87   br label %next
88
89 next:
90   ret <2 x i8> %tt
91 }
92
93
94 define <2 x i16> @test_2xi16(<2 x i16> %x, <2 x i16>* %b) {
95   %bb = load <2 x i16>* %b
96   %tt = xor <2 x i16> %x, %bb
97   store <2 x i16> %tt, <2 x i16>* %b
98   br label %next
99
100 next:
101   ret <2 x i16> %tt
102 }
103
104
105 define <2 x i32> @test_2xi32(<2 x i32> %x, <2 x i32>* %b) {
106   %bb = load <2 x i32>* %b
107   %tt = xor <2 x i32> %x, %bb
108   store <2 x i32> %tt, <2 x i32>* %b
109   br label %next
110
111 next:
112   ret <2 x i32> %tt
113 }
114
115
116 define <2 x i64> @test_2xi64(<2 x i64> %x, <2 x i64>* %b) {
117   %bb = load <2 x i64>* %b
118   %tt = xor <2 x i64> %x, %bb
119   store <2 x i64> %tt, <2 x i64>* %b
120   br label %next
121
122 next:
123   ret <2 x i64> %tt
124 }
125
126
127 define <2 x i128> @test_2xi128(<2 x i128> %x, <2 x i128>* %b) {
128   %bb = load <2 x i128>* %b
129   %tt = xor <2 x i128> %x, %bb
130   store <2 x i128> %tt, <2 x i128>* %b
131   br label %next
132
133 next:
134   ret <2 x i128> %tt
135 }
136
137
138 define <2 x i256> @test_2xi256(<2 x i256> %x, <2 x i256>* %b) {
139   %bb = load <2 x i256>* %b
140   %tt = xor <2 x i256> %x, %bb
141   store <2 x i256> %tt, <2 x i256>* %b
142   br label %next
143
144 next:
145   ret <2 x i256> %tt
146 }
147
148
149 define <2 x i512> @test_2xi512(<2 x i512> %x, <2 x i512>* %b) {
150   %bb = load <2 x i512>* %b
151   %tt = xor <2 x i512> %x, %bb
152   store <2 x i512> %tt, <2 x i512>* %b
153   br label %next
154
155 next:
156   ret <2 x i512> %tt
157 }
158
159
160 define <3 x i8> @test_3xi8(<3 x i8> %x, <3 x i8>* %b) {
161   %bb = load <3 x i8>* %b
162   %tt = xor <3 x i8> %x, %bb
163   store <3 x i8> %tt, <3 x i8>* %b
164   br label %next
165
166 next:
167   ret <3 x i8> %tt
168 }
169
170
171 define <3 x i16> @test_3xi16(<3 x i16> %x, <3 x i16>* %b) {
172   %bb = load <3 x i16>* %b
173   %tt = xor <3 x i16> %x, %bb
174   store <3 x i16> %tt, <3 x i16>* %b
175   br label %next
176
177 next:
178   ret <3 x i16> %tt
179 }
180
181
182 define <3 x i32> @test_3xi32(<3 x i32> %x, <3 x i32>* %b) {
183   %bb = load <3 x i32>* %b
184   %tt = xor <3 x i32> %x, %bb
185   store <3 x i32> %tt, <3 x i32>* %b
186   br label %next
187
188 next:
189   ret <3 x i32> %tt
190 }
191
192
193 define <3 x i64> @test_3xi64(<3 x i64> %x, <3 x i64>* %b) {
194   %bb = load <3 x i64>* %b
195   %tt = xor <3 x i64> %x, %bb
196   store <3 x i64> %tt, <3 x i64>* %b
197   br label %next
198
199 next:
200   ret <3 x i64> %tt
201 }
202
203
204 define <3 x i128> @test_3xi128(<3 x i128> %x, <3 x i128>* %b) {
205   %bb = load <3 x i128>* %b
206   %tt = xor <3 x i128> %x, %bb
207   store <3 x i128> %tt, <3 x i128>* %b
208   br label %next
209
210 next:
211   ret <3 x i128> %tt
212 }
213
214
215 define <3 x i256> @test_3xi256(<3 x i256> %x, <3 x i256>* %b) {
216   %bb = load <3 x i256>* %b
217   %tt = xor <3 x i256> %x, %bb
218   store <3 x i256> %tt, <3 x i256>* %b
219   br label %next
220
221 next:
222   ret <3 x i256> %tt
223 }
224
225
226 define <3 x i512> @test_3xi512(<3 x i512> %x, <3 x i512>* %b) {
227   %bb = load <3 x i512>* %b
228   %tt = xor <3 x i512> %x, %bb
229   store <3 x i512> %tt, <3 x i512>* %b
230   br label %next
231
232 next:
233   ret <3 x i512> %tt
234 }
235
236
237 define <4 x i8> @test_4xi8(<4 x i8> %x, <4 x i8>* %b) {
238   %bb = load <4 x i8>* %b
239   %tt = xor <4 x i8> %x, %bb
240   store <4 x i8> %tt, <4 x i8>* %b
241   br label %next
242
243 next:
244   ret <4 x i8> %tt
245 }
246
247
248 define <4 x i16> @test_4xi16(<4 x i16> %x, <4 x i16>* %b) {
249   %bb = load <4 x i16>* %b
250   %tt = xor <4 x i16> %x, %bb
251   store <4 x i16> %tt, <4 x i16>* %b
252   br label %next
253
254 next:
255   ret <4 x i16> %tt
256 }
257
258
259 define <4 x i32> @test_4xi32(<4 x i32> %x, <4 x i32>* %b) {
260   %bb = load <4 x i32>* %b
261   %tt = xor <4 x i32> %x, %bb
262   store <4 x i32> %tt, <4 x i32>* %b
263   br label %next
264
265 next:
266   ret <4 x i32> %tt
267 }
268
269
270 define <4 x i64> @test_4xi64(<4 x i64> %x, <4 x i64>* %b) {
271   %bb = load <4 x i64>* %b
272   %tt = xor <4 x i64> %x, %bb
273   store <4 x i64> %tt, <4 x i64>* %b
274   br label %next
275
276 next:
277   ret <4 x i64> %tt
278 }
279
280
281 define <4 x i128> @test_4xi128(<4 x i128> %x, <4 x i128>* %b) {
282   %bb = load <4 x i128>* %b
283   %tt = xor <4 x i128> %x, %bb
284   store <4 x i128> %tt, <4 x i128>* %b
285   br label %next
286
287 next:
288   ret <4 x i128> %tt
289 }
290
291
292 define <4 x i256> @test_4xi256(<4 x i256> %x, <4 x i256>* %b) {
293   %bb = load <4 x i256>* %b
294   %tt = xor <4 x i256> %x, %bb
295   store <4 x i256> %tt, <4 x i256>* %b
296   br label %next
297
298 next:
299   ret <4 x i256> %tt
300 }
301
302
303 define <4 x i512> @test_4xi512(<4 x i512> %x, <4 x i512>* %b) {
304   %bb = load <4 x i512>* %b
305   %tt = xor <4 x i512> %x, %bb
306   store <4 x i512> %tt, <4 x i512>* %b
307   br label %next
308
309 next:
310   ret <4 x i512> %tt
311 }
312
313
314 define <5 x i8> @test_5xi8(<5 x i8> %x, <5 x i8>* %b) {
315   %bb = load <5 x i8>* %b
316   %tt = xor <5 x i8> %x, %bb
317   store <5 x i8> %tt, <5 x i8>* %b
318   br label %next
319
320 next:
321   ret <5 x i8> %tt
322 }
323
324
325 define <5 x i16> @test_5xi16(<5 x i16> %x, <5 x i16>* %b) {
326   %bb = load <5 x i16>* %b
327   %tt = xor <5 x i16> %x, %bb
328   store <5 x i16> %tt, <5 x i16>* %b
329   br label %next
330
331 next:
332   ret <5 x i16> %tt
333 }
334
335
336 define <5 x i32> @test_5xi32(<5 x i32> %x, <5 x i32>* %b) {
337   %bb = load <5 x i32>* %b
338   %tt = xor <5 x i32> %x, %bb
339   store <5 x i32> %tt, <5 x i32>* %b
340   br label %next
341
342 next:
343   ret <5 x i32> %tt
344 }
345
346
347 define <5 x i64> @test_5xi64(<5 x i64> %x, <5 x i64>* %b) {
348   %bb = load <5 x i64>* %b
349   %tt = xor <5 x i64> %x, %bb
350   store <5 x i64> %tt, <5 x i64>* %b
351   br label %next
352
353 next:
354   ret <5 x i64> %tt
355 }
356
357
358 define <5 x i128> @test_5xi128(<5 x i128> %x, <5 x i128>* %b) {
359   %bb = load <5 x i128>* %b
360   %tt = xor <5 x i128> %x, %bb
361   store <5 x i128> %tt, <5 x i128>* %b
362   br label %next
363
364 next:
365   ret <5 x i128> %tt
366 }
367
368
369 define <5 x i256> @test_5xi256(<5 x i256> %x, <5 x i256>* %b) {
370   %bb = load <5 x i256>* %b
371   %tt = xor <5 x i256> %x, %bb
372   store <5 x i256> %tt, <5 x i256>* %b
373   br label %next
374
375 next:
376   ret <5 x i256> %tt
377 }
378
379
380 define <5 x i512> @test_5xi512(<5 x i512> %x, <5 x i512>* %b) {
381   %bb = load <5 x i512>* %b
382   %tt = xor <5 x i512> %x, %bb
383   store <5 x i512> %tt, <5 x i512>* %b
384   br label %next
385
386 next:
387   ret <5 x i512> %tt
388 }
389
390
391 define <6 x i8> @test_6xi8(<6 x i8> %x, <6 x i8>* %b) {
392   %bb = load <6 x i8>* %b
393   %tt = xor <6 x i8> %x, %bb
394   store <6 x i8> %tt, <6 x i8>* %b
395   br label %next
396
397 next:
398   ret <6 x i8> %tt
399 }
400
401
402 define <6 x i16> @test_6xi16(<6 x i16> %x, <6 x i16>* %b) {
403   %bb = load <6 x i16>* %b
404   %tt = xor <6 x i16> %x, %bb
405   store <6 x i16> %tt, <6 x i16>* %b
406   br label %next
407
408 next:
409   ret <6 x i16> %tt
410 }
411
412
413 define <6 x i32> @test_6xi32(<6 x i32> %x, <6 x i32>* %b) {
414   %bb = load <6 x i32>* %b
415   %tt = xor <6 x i32> %x, %bb
416   store <6 x i32> %tt, <6 x i32>* %b
417   br label %next
418
419 next:
420   ret <6 x i32> %tt
421 }
422
423
424 define <6 x i64> @test_6xi64(<6 x i64> %x, <6 x i64>* %b) {
425   %bb = load <6 x i64>* %b
426   %tt = xor <6 x i64> %x, %bb
427   store <6 x i64> %tt, <6 x i64>* %b
428   br label %next
429
430 next:
431   ret <6 x i64> %tt
432 }
433
434
435 define <6 x i128> @test_6xi128(<6 x i128> %x, <6 x i128>* %b) {
436   %bb = load <6 x i128>* %b
437   %tt = xor <6 x i128> %x, %bb
438   store <6 x i128> %tt, <6 x i128>* %b
439   br label %next
440
441 next:
442   ret <6 x i128> %tt
443 }
444
445
446 define <6 x i256> @test_6xi256(<6 x i256> %x, <6 x i256>* %b) {
447   %bb = load <6 x i256>* %b
448   %tt = xor <6 x i256> %x, %bb
449   store <6 x i256> %tt, <6 x i256>* %b
450   br label %next
451
452 next:
453   ret <6 x i256> %tt
454 }
455
456
457 define <6 x i512> @test_6xi512(<6 x i512> %x, <6 x i512>* %b) {
458   %bb = load <6 x i512>* %b
459   %tt = xor <6 x i512> %x, %bb
460   store <6 x i512> %tt, <6 x i512>* %b
461   br label %next
462
463 next:
464   ret <6 x i512> %tt
465 }
466
467
468 define <7 x i8> @test_7xi8(<7 x i8> %x, <7 x i8>* %b) {
469   %bb = load <7 x i8>* %b
470   %tt = xor <7 x i8> %x, %bb
471   store <7 x i8> %tt, <7 x i8>* %b
472   br label %next
473
474 next:
475   ret <7 x i8> %tt
476 }
477
478
479 define <7 x i16> @test_7xi16(<7 x i16> %x, <7 x i16>* %b) {
480   %bb = load <7 x i16>* %b
481   %tt = xor <7 x i16> %x, %bb
482   store <7 x i16> %tt, <7 x i16>* %b
483   br label %next
484
485 next:
486   ret <7 x i16> %tt
487 }
488
489
490 define <7 x i32> @test_7xi32(<7 x i32> %x, <7 x i32>* %b) {
491   %bb = load <7 x i32>* %b
492   %tt = xor <7 x i32> %x, %bb
493   store <7 x i32> %tt, <7 x i32>* %b
494   br label %next
495
496 next:
497   ret <7 x i32> %tt
498 }
499
500
501 define <7 x i64> @test_7xi64(<7 x i64> %x, <7 x i64>* %b) {
502   %bb = load <7 x i64>* %b
503   %tt = xor <7 x i64> %x, %bb
504   store <7 x i64> %tt, <7 x i64>* %b
505   br label %next
506
507 next:
508   ret <7 x i64> %tt
509 }
510
511
512 define <7 x i128> @test_7xi128(<7 x i128> %x, <7 x i128>* %b) {
513   %bb = load <7 x i128>* %b
514   %tt = xor <7 x i128> %x, %bb
515   store <7 x i128> %tt, <7 x i128>* %b
516   br label %next
517
518 next:
519   ret <7 x i128> %tt
520 }
521
522
523 define <7 x i256> @test_7xi256(<7 x i256> %x, <7 x i256>* %b) {
524   %bb = load <7 x i256>* %b
525   %tt = xor <7 x i256> %x, %bb
526   store <7 x i256> %tt, <7 x i256>* %b
527   br label %next
528
529 next:
530   ret <7 x i256> %tt
531 }
532
533
534 define <7 x i512> @test_7xi512(<7 x i512> %x, <7 x i512>* %b) {
535   %bb = load <7 x i512>* %b
536   %tt = xor <7 x i512> %x, %bb
537   store <7 x i512> %tt, <7 x i512>* %b
538   br label %next
539
540 next:
541   ret <7 x i512> %tt
542 }
543
544
545 define <8 x i8> @test_8xi8(<8 x i8> %x, <8 x i8>* %b) {
546   %bb = load <8 x i8>* %b
547   %tt = xor <8 x i8> %x, %bb
548   store <8 x i8> %tt, <8 x i8>* %b
549   br label %next
550
551 next:
552   ret <8 x i8> %tt
553 }
554
555
556 define <8 x i16> @test_8xi16(<8 x i16> %x, <8 x i16>* %b) {
557   %bb = load <8 x i16>* %b
558   %tt = xor <8 x i16> %x, %bb
559   store <8 x i16> %tt, <8 x i16>* %b
560   br label %next
561
562 next:
563   ret <8 x i16> %tt
564 }
565
566
567 define <8 x i32> @test_8xi32(<8 x i32> %x, <8 x i32>* %b) {
568   %bb = load <8 x i32>* %b
569   %tt = xor <8 x i32> %x, %bb
570   store <8 x i32> %tt, <8 x i32>* %b
571   br label %next
572
573 next:
574   ret <8 x i32> %tt
575 }
576
577
578 define <8 x i64> @test_8xi64(<8 x i64> %x, <8 x i64>* %b) {
579   %bb = load <8 x i64>* %b
580   %tt = xor <8 x i64> %x, %bb
581   store <8 x i64> %tt, <8 x i64>* %b
582   br label %next
583
584 next:
585   ret <8 x i64> %tt
586 }
587
588
589 define <8 x i128> @test_8xi128(<8 x i128> %x, <8 x i128>* %b) {
590   %bb = load <8 x i128>* %b
591   %tt = xor <8 x i128> %x, %bb
592   store <8 x i128> %tt, <8 x i128>* %b
593   br label %next
594
595 next:
596   ret <8 x i128> %tt
597 }
598
599
600 define <8 x i256> @test_8xi256(<8 x i256> %x, <8 x i256>* %b) {
601   %bb = load <8 x i256>* %b
602   %tt = xor <8 x i256> %x, %bb
603   store <8 x i256> %tt, <8 x i256>* %b
604   br label %next
605
606 next:
607   ret <8 x i256> %tt
608 }
609
610
611 define <8 x i512> @test_8xi512(<8 x i512> %x, <8 x i512>* %b) {
612   %bb = load <8 x i512>* %b
613   %tt = xor <8 x i512> %x, %bb
614   store <8 x i512> %tt, <8 x i512>* %b
615   br label %next
616
617 next:
618   ret <8 x i512> %tt
619 }
620
621
622 define <9 x i8> @test_9xi8(<9 x i8> %x, <9 x i8>* %b) {
623   %bb = load <9 x i8>* %b
624   %tt = xor <9 x i8> %x, %bb
625   store <9 x i8> %tt, <9 x i8>* %b
626   br label %next
627
628 next:
629   ret <9 x i8> %tt
630 }
631
632
633 define <9 x i16> @test_9xi16(<9 x i16> %x, <9 x i16>* %b) {
634   %bb = load <9 x i16>* %b
635   %tt = xor <9 x i16> %x, %bb
636   store <9 x i16> %tt, <9 x i16>* %b
637   br label %next
638
639 next:
640   ret <9 x i16> %tt
641 }
642
643
644 define <9 x i32> @test_9xi32(<9 x i32> %x, <9 x i32>* %b) {
645   %bb = load <9 x i32>* %b
646   %tt = xor <9 x i32> %x, %bb
647   store <9 x i32> %tt, <9 x i32>* %b
648   br label %next
649
650 next:
651   ret <9 x i32> %tt
652 }
653
654
655 define <9 x i64> @test_9xi64(<9 x i64> %x, <9 x i64>* %b) {
656   %bb = load <9 x i64>* %b
657   %tt = xor <9 x i64> %x, %bb
658   store <9 x i64> %tt, <9 x i64>* %b
659   br label %next
660
661 next:
662   ret <9 x i64> %tt
663 }
664
665
666 define <9 x i128> @test_9xi128(<9 x i128> %x, <9 x i128>* %b) {
667   %bb = load <9 x i128>* %b
668   %tt = xor <9 x i128> %x, %bb
669   store <9 x i128> %tt, <9 x i128>* %b
670   br label %next
671
672 next:
673   ret <9 x i128> %tt
674 }
675
676
677 define <9 x i256> @test_9xi256(<9 x i256> %x, <9 x i256>* %b) {
678   %bb = load <9 x i256>* %b
679   %tt = xor <9 x i256> %x, %bb
680   store <9 x i256> %tt, <9 x i256>* %b
681   br label %next
682
683 next:
684   ret <9 x i256> %tt
685 }
686
687
688 define <9 x i512> @test_9xi512(<9 x i512> %x, <9 x i512>* %b) {
689   %bb = load <9 x i512>* %b
690   %tt = xor <9 x i512> %x, %bb
691   store <9 x i512> %tt, <9 x i512>* %b
692   br label %next
693
694 next:
695   ret <9 x i512> %tt
696 }
697
698
699 define <10 x i8> @test_10xi8(<10 x i8> %x, <10 x i8>* %b) {
700   %bb = load <10 x i8>* %b
701   %tt = xor <10 x i8> %x, %bb
702   store <10 x i8> %tt, <10 x i8>* %b
703   br label %next
704
705 next:
706   ret <10 x i8> %tt
707 }
708
709
710 define <10 x i16> @test_10xi16(<10 x i16> %x, <10 x i16>* %b) {
711   %bb = load <10 x i16>* %b
712   %tt = xor <10 x i16> %x, %bb
713   store <10 x i16> %tt, <10 x i16>* %b
714   br label %next
715
716 next:
717   ret <10 x i16> %tt
718 }
719
720
721 define <10 x i32> @test_10xi32(<10 x i32> %x, <10 x i32>* %b) {
722   %bb = load <10 x i32>* %b
723   %tt = xor <10 x i32> %x, %bb
724   store <10 x i32> %tt, <10 x i32>* %b
725   br label %next
726
727 next:
728   ret <10 x i32> %tt
729 }
730
731
732 define <10 x i64> @test_10xi64(<10 x i64> %x, <10 x i64>* %b) {
733   %bb = load <10 x i64>* %b
734   %tt = xor <10 x i64> %x, %bb
735   store <10 x i64> %tt, <10 x i64>* %b
736   br label %next
737
738 next:
739   ret <10 x i64> %tt
740 }
741
742
743 define <10 x i128> @test_10xi128(<10 x i128> %x, <10 x i128>* %b) {
744   %bb = load <10 x i128>* %b
745   %tt = xor <10 x i128> %x, %bb
746   store <10 x i128> %tt, <10 x i128>* %b
747   br label %next
748
749 next:
750   ret <10 x i128> %tt
751 }
752
753
754 define <10 x i256> @test_10xi256(<10 x i256> %x, <10 x i256>* %b) {
755   %bb = load <10 x i256>* %b
756   %tt = xor <10 x i256> %x, %bb
757   store <10 x i256> %tt, <10 x i256>* %b
758   br label %next
759
760 next:
761   ret <10 x i256> %tt
762 }
763
764
765 define <10 x i512> @test_10xi512(<10 x i512> %x, <10 x i512>* %b) {
766   %bb = load <10 x i512>* %b
767   %tt = xor <10 x i512> %x, %bb
768   store <10 x i512> %tt, <10 x i512>* %b
769   br label %next
770
771 next:
772   ret <10 x i512> %tt
773 }
774
775
776 define <11 x i8> @test_11xi8(<11 x i8> %x, <11 x i8>* %b) {
777   %bb = load <11 x i8>* %b
778   %tt = xor <11 x i8> %x, %bb
779   store <11 x i8> %tt, <11 x i8>* %b
780   br label %next
781
782 next:
783   ret <11 x i8> %tt
784 }
785
786
787 define <11 x i16> @test_11xi16(<11 x i16> %x, <11 x i16>* %b) {
788   %bb = load <11 x i16>* %b
789   %tt = xor <11 x i16> %x, %bb
790   store <11 x i16> %tt, <11 x i16>* %b
791   br label %next
792
793 next:
794   ret <11 x i16> %tt
795 }
796
797
798 define <11 x i32> @test_11xi32(<11 x i32> %x, <11 x i32>* %b) {
799   %bb = load <11 x i32>* %b
800   %tt = xor <11 x i32> %x, %bb
801   store <11 x i32> %tt, <11 x i32>* %b
802   br label %next
803
804 next:
805   ret <11 x i32> %tt
806 }
807
808
809 define <11 x i64> @test_11xi64(<11 x i64> %x, <11 x i64>* %b) {
810   %bb = load <11 x i64>* %b
811   %tt = xor <11 x i64> %x, %bb
812   store <11 x i64> %tt, <11 x i64>* %b
813   br label %next
814
815 next:
816   ret <11 x i64> %tt
817 }
818
819
820 define <11 x i128> @test_11xi128(<11 x i128> %x, <11 x i128>* %b) {
821   %bb = load <11 x i128>* %b
822   %tt = xor <11 x i128> %x, %bb
823   store <11 x i128> %tt, <11 x i128>* %b
824   br label %next
825
826 next:
827   ret <11 x i128> %tt
828 }
829
830
831 define <11 x i256> @test_11xi256(<11 x i256> %x, <11 x i256>* %b) {
832   %bb = load <11 x i256>* %b
833   %tt = xor <11 x i256> %x, %bb
834   store <11 x i256> %tt, <11 x i256>* %b
835   br label %next
836
837 next:
838   ret <11 x i256> %tt
839 }
840
841
842 define <11 x i512> @test_11xi512(<11 x i512> %x, <11 x i512>* %b) {
843   %bb = load <11 x i512>* %b
844   %tt = xor <11 x i512> %x, %bb
845   store <11 x i512> %tt, <11 x i512>* %b
846   br label %next
847
848 next:
849   ret <11 x i512> %tt
850 }
851
852
853 define <12 x i8> @test_12xi8(<12 x i8> %x, <12 x i8>* %b) {
854   %bb = load <12 x i8>* %b
855   %tt = xor <12 x i8> %x, %bb
856   store <12 x i8> %tt, <12 x i8>* %b
857   br label %next
858
859 next:
860   ret <12 x i8> %tt
861 }
862
863
864 define <12 x i16> @test_12xi16(<12 x i16> %x, <12 x i16>* %b) {
865   %bb = load <12 x i16>* %b
866   %tt = xor <12 x i16> %x, %bb
867   store <12 x i16> %tt, <12 x i16>* %b
868   br label %next
869
870 next:
871   ret <12 x i16> %tt
872 }
873
874
875 define <12 x i32> @test_12xi32(<12 x i32> %x, <12 x i32>* %b) {
876   %bb = load <12 x i32>* %b
877   %tt = xor <12 x i32> %x, %bb
878   store <12 x i32> %tt, <12 x i32>* %b
879   br label %next
880
881 next:
882   ret <12 x i32> %tt
883 }
884
885
886 define <12 x i64> @test_12xi64(<12 x i64> %x, <12 x i64>* %b) {
887   %bb = load <12 x i64>* %b
888   %tt = xor <12 x i64> %x, %bb
889   store <12 x i64> %tt, <12 x i64>* %b
890   br label %next
891
892 next:
893   ret <12 x i64> %tt
894 }
895
896
897 define <12 x i128> @test_12xi128(<12 x i128> %x, <12 x i128>* %b) {
898   %bb = load <12 x i128>* %b
899   %tt = xor <12 x i128> %x, %bb
900   store <12 x i128> %tt, <12 x i128>* %b
901   br label %next
902
903 next:
904   ret <12 x i128> %tt
905 }
906
907
908 define <12 x i256> @test_12xi256(<12 x i256> %x, <12 x i256>* %b) {
909   %bb = load <12 x i256>* %b
910   %tt = xor <12 x i256> %x, %bb
911   store <12 x i256> %tt, <12 x i256>* %b
912   br label %next
913
914 next:
915   ret <12 x i256> %tt
916 }
917
918
919 define <12 x i512> @test_12xi512(<12 x i512> %x, <12 x i512>* %b) {
920   %bb = load <12 x i512>* %b
921   %tt = xor <12 x i512> %x, %bb
922   store <12 x i512> %tt, <12 x i512>* %b
923   br label %next
924
925 next:
926   ret <12 x i512> %tt
927 }
928
929
930 define <13 x i8> @test_13xi8(<13 x i8> %x, <13 x i8>* %b) {
931   %bb = load <13 x i8>* %b
932   %tt = xor <13 x i8> %x, %bb
933   store <13 x i8> %tt, <13 x i8>* %b
934   br label %next
935
936 next:
937   ret <13 x i8> %tt
938 }
939
940
941 define <13 x i16> @test_13xi16(<13 x i16> %x, <13 x i16>* %b) {
942   %bb = load <13 x i16>* %b
943   %tt = xor <13 x i16> %x, %bb
944   store <13 x i16> %tt, <13 x i16>* %b
945   br label %next
946
947 next:
948   ret <13 x i16> %tt
949 }
950
951
952 define <13 x i32> @test_13xi32(<13 x i32> %x, <13 x i32>* %b) {
953   %bb = load <13 x i32>* %b
954   %tt = xor <13 x i32> %x, %bb
955   store <13 x i32> %tt, <13 x i32>* %b
956   br label %next
957
958 next:
959   ret <13 x i32> %tt
960 }
961
962
963 define <13 x i64> @test_13xi64(<13 x i64> %x, <13 x i64>* %b) {
964   %bb = load <13 x i64>* %b
965   %tt = xor <13 x i64> %x, %bb
966   store <13 x i64> %tt, <13 x i64>* %b
967   br label %next
968
969 next:
970   ret <13 x i64> %tt
971 }
972
973
974 define <13 x i128> @test_13xi128(<13 x i128> %x, <13 x i128>* %b) {
975   %bb = load <13 x i128>* %b
976   %tt = xor <13 x i128> %x, %bb
977   store <13 x i128> %tt, <13 x i128>* %b
978   br label %next
979
980 next:
981   ret <13 x i128> %tt
982 }
983
984
985 define <13 x i256> @test_13xi256(<13 x i256> %x, <13 x i256>* %b) {
986   %bb = load <13 x i256>* %b
987   %tt = xor <13 x i256> %x, %bb
988   store <13 x i256> %tt, <13 x i256>* %b
989   br label %next
990
991 next:
992   ret <13 x i256> %tt
993 }
994
995
996 define <13 x i512> @test_13xi512(<13 x i512> %x, <13 x i512>* %b) {
997   %bb = load <13 x i512>* %b
998   %tt = xor <13 x i512> %x, %bb
999   store <13 x i512> %tt, <13 x i512>* %b
1000   br label %next
1001
1002 next:
1003   ret <13 x i512> %tt
1004 }
1005
1006
1007 define <14 x i8> @test_14xi8(<14 x i8> %x, <14 x i8>* %b) {
1008   %bb = load <14 x i8>* %b
1009   %tt = xor <14 x i8> %x, %bb
1010   store <14 x i8> %tt, <14 x i8>* %b
1011   br label %next
1012
1013 next:
1014   ret <14 x i8> %tt
1015 }
1016
1017
1018 define <14 x i16> @test_14xi16(<14 x i16> %x, <14 x i16>* %b) {
1019   %bb = load <14 x i16>* %b
1020   %tt = xor <14 x i16> %x, %bb
1021   store <14 x i16> %tt, <14 x i16>* %b
1022   br label %next
1023
1024 next:
1025   ret <14 x i16> %tt
1026 }
1027
1028
1029 define <14 x i32> @test_14xi32(<14 x i32> %x, <14 x i32>* %b) {
1030   %bb = load <14 x i32>* %b
1031   %tt = xor <14 x i32> %x, %bb
1032   store <14 x i32> %tt, <14 x i32>* %b
1033   br label %next
1034
1035 next:
1036   ret <14 x i32> %tt
1037 }
1038
1039
1040 define <14 x i64> @test_14xi64(<14 x i64> %x, <14 x i64>* %b) {
1041   %bb = load <14 x i64>* %b
1042   %tt = xor <14 x i64> %x, %bb
1043   store <14 x i64> %tt, <14 x i64>* %b
1044   br label %next
1045
1046 next:
1047   ret <14 x i64> %tt
1048 }
1049
1050
1051 define <14 x i128> @test_14xi128(<14 x i128> %x, <14 x i128>* %b) {
1052   %bb = load <14 x i128>* %b
1053   %tt = xor <14 x i128> %x, %bb
1054   store <14 x i128> %tt, <14 x i128>* %b
1055   br label %next
1056
1057 next:
1058   ret <14 x i128> %tt
1059 }
1060
1061
1062 define <14 x i256> @test_14xi256(<14 x i256> %x, <14 x i256>* %b) {
1063   %bb = load <14 x i256>* %b
1064   %tt = xor <14 x i256> %x, %bb
1065   store <14 x i256> %tt, <14 x i256>* %b
1066   br label %next
1067
1068 next:
1069   ret <14 x i256> %tt
1070 }
1071
1072
1073 define <14 x i512> @test_14xi512(<14 x i512> %x, <14 x i512>* %b) {
1074   %bb = load <14 x i512>* %b
1075   %tt = xor <14 x i512> %x, %bb
1076   store <14 x i512> %tt, <14 x i512>* %b
1077   br label %next
1078
1079 next:
1080   ret <14 x i512> %tt
1081 }
1082
1083
1084 define <15 x i8> @test_15xi8(<15 x i8> %x, <15 x i8>* %b) {
1085   %bb = load <15 x i8>* %b
1086   %tt = xor <15 x i8> %x, %bb
1087   store <15 x i8> %tt, <15 x i8>* %b
1088   br label %next
1089
1090 next:
1091   ret <15 x i8> %tt
1092 }
1093
1094
1095 define <15 x i16> @test_15xi16(<15 x i16> %x, <15 x i16>* %b) {
1096   %bb = load <15 x i16>* %b
1097   %tt = xor <15 x i16> %x, %bb
1098   store <15 x i16> %tt, <15 x i16>* %b
1099   br label %next
1100
1101 next:
1102   ret <15 x i16> %tt
1103 }
1104
1105
1106 define <15 x i32> @test_15xi32(<15 x i32> %x, <15 x i32>* %b) {
1107   %bb = load <15 x i32>* %b
1108   %tt = xor <15 x i32> %x, %bb
1109   store <15 x i32> %tt, <15 x i32>* %b
1110   br label %next
1111
1112 next:
1113   ret <15 x i32> %tt
1114 }
1115
1116
1117 define <15 x i64> @test_15xi64(<15 x i64> %x, <15 x i64>* %b) {
1118   %bb = load <15 x i64>* %b
1119   %tt = xor <15 x i64> %x, %bb
1120   store <15 x i64> %tt, <15 x i64>* %b
1121   br label %next
1122
1123 next:
1124   ret <15 x i64> %tt
1125 }
1126
1127
1128 define <15 x i128> @test_15xi128(<15 x i128> %x, <15 x i128>* %b) {
1129   %bb = load <15 x i128>* %b
1130   %tt = xor <15 x i128> %x, %bb
1131   store <15 x i128> %tt, <15 x i128>* %b
1132   br label %next
1133
1134 next:
1135   ret <15 x i128> %tt
1136 }
1137
1138
1139 define <15 x i256> @test_15xi256(<15 x i256> %x, <15 x i256>* %b) {
1140   %bb = load <15 x i256>* %b
1141   %tt = xor <15 x i256> %x, %bb
1142   store <15 x i256> %tt, <15 x i256>* %b
1143   br label %next
1144
1145 next:
1146   ret <15 x i256> %tt
1147 }
1148
1149
1150 define <15 x i512> @test_15xi512(<15 x i512> %x, <15 x i512>* %b) {
1151   %bb = load <15 x i512>* %b
1152   %tt = xor <15 x i512> %x, %bb
1153   store <15 x i512> %tt, <15 x i512>* %b
1154   br label %next
1155
1156 next:
1157   ret <15 x i512> %tt
1158 }
1159
1160
1161 define <16 x i8> @test_16xi8(<16 x i8> %x, <16 x i8>* %b) {
1162   %bb = load <16 x i8>* %b
1163   %tt = xor <16 x i8> %x, %bb
1164   store <16 x i8> %tt, <16 x i8>* %b
1165   br label %next
1166
1167 next:
1168   ret <16 x i8> %tt
1169 }
1170
1171
1172 define <16 x i16> @test_16xi16(<16 x i16> %x, <16 x i16>* %b) {
1173   %bb = load <16 x i16>* %b
1174   %tt = xor <16 x i16> %x, %bb
1175   store <16 x i16> %tt, <16 x i16>* %b
1176   br label %next
1177
1178 next:
1179   ret <16 x i16> %tt
1180 }
1181
1182
1183 define <16 x i32> @test_16xi32(<16 x i32> %x, <16 x i32>* %b) {
1184   %bb = load <16 x i32>* %b
1185   %tt = xor <16 x i32> %x, %bb
1186   store <16 x i32> %tt, <16 x i32>* %b
1187   br label %next
1188
1189 next:
1190   ret <16 x i32> %tt
1191 }
1192
1193
1194 define <16 x i64> @test_16xi64(<16 x i64> %x, <16 x i64>* %b) {
1195   %bb = load <16 x i64>* %b
1196   %tt = xor <16 x i64> %x, %bb
1197   store <16 x i64> %tt, <16 x i64>* %b
1198   br label %next
1199
1200 next:
1201   ret <16 x i64> %tt
1202 }
1203
1204
1205 define <16 x i128> @test_16xi128(<16 x i128> %x, <16 x i128>* %b) {
1206   %bb = load <16 x i128>* %b
1207   %tt = xor <16 x i128> %x, %bb
1208   store <16 x i128> %tt, <16 x i128>* %b
1209   br label %next
1210
1211 next:
1212   ret <16 x i128> %tt
1213 }
1214
1215
1216 define <16 x i256> @test_16xi256(<16 x i256> %x, <16 x i256>* %b) {
1217   %bb = load <16 x i256>* %b
1218   %tt = xor <16 x i256> %x, %bb
1219   store <16 x i256> %tt, <16 x i256>* %b
1220   br label %next
1221
1222 next:
1223   ret <16 x i256> %tt
1224 }
1225
1226
1227 define <16 x i512> @test_16xi512(<16 x i512> %x, <16 x i512>* %b) {
1228   %bb = load <16 x i512>* %b
1229   %tt = xor <16 x i512> %x, %bb
1230   store <16 x i512> %tt, <16 x i512>* %b
1231   br label %next
1232
1233 next:
1234   ret <16 x i512> %tt
1235 }
1236
1237
1238 define <17 x i8> @test_17xi8(<17 x i8> %x, <17 x i8>* %b) {
1239   %bb = load <17 x i8>* %b
1240   %tt = xor <17 x i8> %x, %bb
1241   store <17 x i8> %tt, <17 x i8>* %b
1242   br label %next
1243
1244 next:
1245   ret <17 x i8> %tt
1246 }
1247
1248
1249 define <17 x i16> @test_17xi16(<17 x i16> %x, <17 x i16>* %b) {
1250   %bb = load <17 x i16>* %b
1251   %tt = xor <17 x i16> %x, %bb
1252   store <17 x i16> %tt, <17 x i16>* %b
1253   br label %next
1254
1255 next:
1256   ret <17 x i16> %tt
1257 }
1258
1259
1260 define <17 x i32> @test_17xi32(<17 x i32> %x, <17 x i32>* %b) {
1261   %bb = load <17 x i32>* %b
1262   %tt = xor <17 x i32> %x, %bb
1263   store <17 x i32> %tt, <17 x i32>* %b
1264   br label %next
1265
1266 next:
1267   ret <17 x i32> %tt
1268 }
1269
1270
1271 define <17 x i64> @test_17xi64(<17 x i64> %x, <17 x i64>* %b) {
1272   %bb = load <17 x i64>* %b
1273   %tt = xor <17 x i64> %x, %bb
1274   store <17 x i64> %tt, <17 x i64>* %b
1275   br label %next
1276
1277 next:
1278   ret <17 x i64> %tt
1279 }
1280
1281
1282 define <17 x i128> @test_17xi128(<17 x i128> %x, <17 x i128>* %b) {
1283   %bb = load <17 x i128>* %b
1284   %tt = xor <17 x i128> %x, %bb
1285   store <17 x i128> %tt, <17 x i128>* %b
1286   br label %next
1287
1288 next:
1289   ret <17 x i128> %tt
1290 }
1291
1292
1293 define <17 x i256> @test_17xi256(<17 x i256> %x, <17 x i256>* %b) {
1294   %bb = load <17 x i256>* %b
1295   %tt = xor <17 x i256> %x, %bb
1296   store <17 x i256> %tt, <17 x i256>* %b
1297   br label %next
1298
1299 next:
1300   ret <17 x i256> %tt
1301 }
1302
1303
1304 define <17 x i512> @test_17xi512(<17 x i512> %x, <17 x i512>* %b) {
1305   %bb = load <17 x i512>* %b
1306   %tt = xor <17 x i512> %x, %bb
1307   store <17 x i512> %tt, <17 x i512>* %b
1308   br label %next
1309
1310 next:
1311   ret <17 x i512> %tt
1312 }
1313
1314
1315 define <18 x i8> @test_18xi8(<18 x i8> %x, <18 x i8>* %b) {
1316   %bb = load <18 x i8>* %b
1317   %tt = xor <18 x i8> %x, %bb
1318   store <18 x i8> %tt, <18 x i8>* %b
1319   br label %next
1320
1321 next:
1322   ret <18 x i8> %tt
1323 }
1324
1325
1326 define <18 x i16> @test_18xi16(<18 x i16> %x, <18 x i16>* %b) {
1327   %bb = load <18 x i16>* %b
1328   %tt = xor <18 x i16> %x, %bb
1329   store <18 x i16> %tt, <18 x i16>* %b
1330   br label %next
1331
1332 next:
1333   ret <18 x i16> %tt
1334 }
1335
1336
1337 define <18 x i32> @test_18xi32(<18 x i32> %x, <18 x i32>* %b) {
1338   %bb = load <18 x i32>* %b
1339   %tt = xor <18 x i32> %x, %bb
1340   store <18 x i32> %tt, <18 x i32>* %b
1341   br label %next
1342
1343 next:
1344   ret <18 x i32> %tt
1345 }
1346
1347
1348 define <18 x i64> @test_18xi64(<18 x i64> %x, <18 x i64>* %b) {
1349   %bb = load <18 x i64>* %b
1350   %tt = xor <18 x i64> %x, %bb
1351   store <18 x i64> %tt, <18 x i64>* %b
1352   br label %next
1353
1354 next:
1355   ret <18 x i64> %tt
1356 }
1357
1358
1359 define <18 x i128> @test_18xi128(<18 x i128> %x, <18 x i128>* %b) {
1360   %bb = load <18 x i128>* %b
1361   %tt = xor <18 x i128> %x, %bb
1362   store <18 x i128> %tt, <18 x i128>* %b
1363   br label %next
1364
1365 next:
1366   ret <18 x i128> %tt
1367 }
1368
1369
1370 define <18 x i256> @test_18xi256(<18 x i256> %x, <18 x i256>* %b) {
1371   %bb = load <18 x i256>* %b
1372   %tt = xor <18 x i256> %x, %bb
1373   store <18 x i256> %tt, <18 x i256>* %b
1374   br label %next
1375
1376 next:
1377   ret <18 x i256> %tt
1378 }
1379
1380
1381 define <18 x i512> @test_18xi512(<18 x i512> %x, <18 x i512>* %b) {
1382   %bb = load <18 x i512>* %b
1383   %tt = xor <18 x i512> %x, %bb
1384   store <18 x i512> %tt, <18 x i512>* %b
1385   br label %next
1386
1387 next:
1388   ret <18 x i512> %tt
1389 }
1390
1391
1392 define <19 x i8> @test_19xi8(<19 x i8> %x, <19 x i8>* %b) {
1393   %bb = load <19 x i8>* %b
1394   %tt = xor <19 x i8> %x, %bb
1395   store <19 x i8> %tt, <19 x i8>* %b
1396   br label %next
1397
1398 next:
1399   ret <19 x i8> %tt
1400 }
1401
1402
1403 define <19 x i16> @test_19xi16(<19 x i16> %x, <19 x i16>* %b) {
1404   %bb = load <19 x i16>* %b
1405   %tt = xor <19 x i16> %x, %bb
1406   store <19 x i16> %tt, <19 x i16>* %b
1407   br label %next
1408
1409 next:
1410   ret <19 x i16> %tt
1411 }
1412
1413
1414 define <19 x i32> @test_19xi32(<19 x i32> %x, <19 x i32>* %b) {
1415   %bb = load <19 x i32>* %b
1416   %tt = xor <19 x i32> %x, %bb
1417   store <19 x i32> %tt, <19 x i32>* %b
1418   br label %next
1419
1420 next:
1421   ret <19 x i32> %tt
1422 }
1423
1424
1425 define <19 x i64> @test_19xi64(<19 x i64> %x, <19 x i64>* %b) {
1426   %bb = load <19 x i64>* %b
1427   %tt = xor <19 x i64> %x, %bb
1428   store <19 x i64> %tt, <19 x i64>* %b
1429   br label %next
1430
1431 next:
1432   ret <19 x i64> %tt
1433 }
1434
1435
1436 define <19 x i128> @test_19xi128(<19 x i128> %x, <19 x i128>* %b) {
1437   %bb = load <19 x i128>* %b
1438   %tt = xor <19 x i128> %x, %bb
1439   store <19 x i128> %tt, <19 x i128>* %b
1440   br label %next
1441
1442 next:
1443   ret <19 x i128> %tt
1444 }
1445
1446
1447 define <19 x i256> @test_19xi256(<19 x i256> %x, <19 x i256>* %b) {
1448   %bb = load <19 x i256>* %b
1449   %tt = xor <19 x i256> %x, %bb
1450   store <19 x i256> %tt, <19 x i256>* %b
1451   br label %next
1452
1453 next:
1454   ret <19 x i256> %tt
1455 }
1456
1457
1458 define <19 x i512> @test_19xi512(<19 x i512> %x, <19 x i512>* %b) {
1459   %bb = load <19 x i512>* %b
1460   %tt = xor <19 x i512> %x, %bb
1461   store <19 x i512> %tt, <19 x i512>* %b
1462   br label %next
1463
1464 next:
1465   ret <19 x i512> %tt
1466 }
1467