Lines Matching +full:llvm +full:- +full:3

1 ; RUN: llc < %s -march=x86 -mattr=+mmx,+ssse3,-avx | FileCheck %s --check-prefix=ALL --check-prefix…
2 ; RUN: llc < %s -march=x86 -mattr=+mmx,+avx | FileCheck %s --check-prefix=ALL --check-prefix=X86
3 ; RUN: llc < %s -march=x86-64 -mattr=+mmx,+ssse3,-avx | FileCheck %s --check-prefix=ALL --check-pre…
4 ; RUN: llc < %s -march=x86-64 -mattr=+mmx,+avx | FileCheck %s --check-prefix=ALL --check-prefix=X64
6 declare x86_mmx @llvm.x86.ssse3.phadd.w(x86_mmx, x86_mmx) nounwind readnone
9 ; ALL-LABEL: @test1
15 %3 = bitcast <4 x i16> %0 to x86_mmx
16 %4 = tail call x86_mmx @llvm.x86.ssse3.phadd.w(x86_mmx %2, x86_mmx %3) nounwind readnone
23 declare x86_mmx @llvm.x86.mmx.pcmpgt.d(x86_mmx, x86_mmx) nounwind readnone
26 ; ALL-LABEL: @test88
33 %2 = tail call x86_mmx @llvm.x86.mmx.pcmpgt.d(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
34 %3 = bitcast x86_mmx %2 to <2 x i32>
35 %4 = bitcast <2 x i32> %3 to <1 x i64>
40 declare x86_mmx @llvm.x86.mmx.pcmpgt.w(x86_mmx, x86_mmx) nounwind readnone
43 ; ALL-LABEL: @test87
50 %2 = tail call x86_mmx @llvm.x86.mmx.pcmpgt.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
51 %3 = bitcast x86_mmx %2 to <4 x i16>
52 %4 = bitcast <4 x i16> %3 to <1 x i64>
57 declare x86_mmx @llvm.x86.mmx.pcmpgt.b(x86_mmx, x86_mmx) nounwind readnone
60 ; ALL-LABEL: @test86
67 %2 = tail call x86_mmx @llvm.x86.mmx.pcmpgt.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
68 %3 = bitcast x86_mmx %2 to <8 x i8>
69 %4 = bitcast <8 x i8> %3 to <1 x i64>
74 declare x86_mmx @llvm.x86.mmx.pcmpeq.d(x86_mmx, x86_mmx) nounwind readnone
77 ; ALL-LABEL: @test85
84 %2 = tail call x86_mmx @llvm.x86.mmx.pcmpeq.d(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
85 %3 = bitcast x86_mmx %2 to <2 x i32>
86 %4 = bitcast <2 x i32> %3 to <1 x i64>
91 declare x86_mmx @llvm.x86.mmx.pcmpeq.w(x86_mmx, x86_mmx) nounwind readnone
94 ; ALL-LABEL: @test84
101 %2 = tail call x86_mmx @llvm.x86.mmx.pcmpeq.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
102 %3 = bitcast x86_mmx %2 to <4 x i16>
103 %4 = bitcast <4 x i16> %3 to <1 x i64>
108 declare x86_mmx @llvm.x86.mmx.pcmpeq.b(x86_mmx, x86_mmx) nounwind readnone
111 ; ALL-LABEL: @test83
118 %2 = tail call x86_mmx @llvm.x86.mmx.pcmpeq.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
119 %3 = bitcast x86_mmx %2 to <8 x i8>
120 %4 = bitcast <8 x i8> %3 to <1 x i64>
125 declare x86_mmx @llvm.x86.mmx.punpckldq(x86_mmx, x86_mmx) nounwind readnone
128 ; ALL-LABEL: @test82
136 %2 = tail call x86_mmx @llvm.x86.mmx.punpckldq(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
137 %3 = bitcast x86_mmx %2 to <2 x i32>
138 %4 = bitcast <2 x i32> %3 to <1 x i64>
143 declare x86_mmx @llvm.x86.mmx.punpcklwd(x86_mmx, x86_mmx) nounwind readnone
146 ; ALL-LABEL: @test81
154 %2 = tail call x86_mmx @llvm.x86.mmx.punpcklwd(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
155 %3 = bitcast x86_mmx %2 to <4 x i16>
156 %4 = bitcast <4 x i16> %3 to <1 x i64>
161 declare x86_mmx @llvm.x86.mmx.punpcklbw(x86_mmx, x86_mmx) nounwind readnone
164 ; ALL-LABEL: @test80
165 ; X86: punpcklbw {{.*#+}} mm0 = mm0[0],mem[0],mm0[1],mem[1],mm0[2],mem[2],mm0[3],mem[3]
166 ; X64: punpcklbw {{.*#+}} mm0 = mm0[0],mm1[0],mm0[1],mm1[1],mm0[2],mm1[2],mm0[3],mm1[3]
172 %2 = tail call x86_mmx @llvm.x86.mmx.punpcklbw(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
173 %3 = bitcast x86_mmx %2 to <8 x i8>
174 %4 = bitcast <8 x i8> %3 to <1 x i64>
179 declare x86_mmx @llvm.x86.mmx.punpckhdq(x86_mmx, x86_mmx) nounwind readnone
182 ; ALL-LABEL: @test79
190 %2 = tail call x86_mmx @llvm.x86.mmx.punpckhdq(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
191 %3 = bitcast x86_mmx %2 to <2 x i32>
192 %4 = bitcast <2 x i32> %3 to <1 x i64>
197 declare x86_mmx @llvm.x86.mmx.punpckhwd(x86_mmx, x86_mmx) nounwind readnone
200 ; ALL-LABEL: @test78
201 ; X86: punpckhwd {{.*#+}} mm0 = mm0[2],mem[2],mm0[3],mem[3]
202 ; X64: punpckhwd {{.*#+}} mm0 = mm0[2],mm1[2],mm0[3],mm1[3]
208 %2 = tail call x86_mmx @llvm.x86.mmx.punpckhwd(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
209 %3 = bitcast x86_mmx %2 to <4 x i16>
210 %4 = bitcast <4 x i16> %3 to <1 x i64>
215 declare x86_mmx @llvm.x86.mmx.punpckhbw(x86_mmx, x86_mmx) nounwind readnone
218 ; ALL-LABEL: @test77
226 %2 = tail call x86_mmx @llvm.x86.mmx.punpckhbw(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
227 %3 = bitcast x86_mmx %2 to <8 x i8>
228 %4 = bitcast <8 x i8> %3 to <1 x i64>
233 declare x86_mmx @llvm.x86.mmx.packuswb(x86_mmx, x86_mmx) nounwind readnone
236 ; ALL-LABEL: @test76
243 %2 = tail call x86_mmx @llvm.x86.mmx.packuswb(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
244 %3 = bitcast x86_mmx %2 to <8 x i8>
245 %4 = bitcast <8 x i8> %3 to <1 x i64>
250 declare x86_mmx @llvm.x86.mmx.packssdw(x86_mmx, x86_mmx) nounwind readnone
253 ; ALL-LABEL: @test75
260 %2 = tail call x86_mmx @llvm.x86.mmx.packssdw(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
261 %3 = bitcast x86_mmx %2 to <4 x i16>
262 %4 = bitcast <4 x i16> %3 to <1 x i64>
267 declare x86_mmx @llvm.x86.mmx.packsswb(x86_mmx, x86_mmx) nounwind readnone
270 ; ALL-LABEL: @test74
277 %2 = tail call x86_mmx @llvm.x86.mmx.packsswb(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
278 %3 = bitcast x86_mmx %2 to <8 x i8>
279 %4 = bitcast <8 x i8> %3 to <1 x i64>
284 declare x86_mmx @llvm.x86.mmx.psrai.d(x86_mmx, i32) nounwind readnone
287 ; ALL-LABEL: @test73
292 %1 = tail call x86_mmx @llvm.x86.mmx.psrai.d(x86_mmx %mmx_var.i, i32 3) nounwind
294 %3 = bitcast <2 x i32> %2 to <1 x i64>
295 %4 = extractelement <1 x i64> %3, i32 0
299 declare x86_mmx @llvm.x86.mmx.psrai.w(x86_mmx, i32) nounwind readnone
302 ; ALL-LABEL: @test72
307 %1 = tail call x86_mmx @llvm.x86.mmx.psrai.w(x86_mmx %mmx_var.i, i32 3) nounwind
309 %3 = bitcast <4 x i16> %2 to <1 x i64>
310 %4 = extractelement <1 x i64> %3, i32 0
314 declare x86_mmx @llvm.x86.mmx.psrli.q(x86_mmx, i32) nounwind readnone
317 ; ALL-LABEL: @test71
322 %1 = tail call x86_mmx @llvm.x86.mmx.psrli.q(x86_mmx %mmx_var.i, i32 3) nounwind
327 declare x86_mmx @llvm.x86.mmx.psrli.d(x86_mmx, i32) nounwind readnone
330 ; ALL-LABEL: @test70
335 %1 = tail call x86_mmx @llvm.x86.mmx.psrli.d(x86_mmx %mmx_var.i, i32 3) nounwind
337 %3 = bitcast <2 x i32> %2 to <1 x i64>
338 %4 = extractelement <1 x i64> %3, i32 0
342 declare x86_mmx @llvm.x86.mmx.psrli.w(x86_mmx, i32) nounwind readnone
345 ; ALL-LABEL: @test69
350 %1 = tail call x86_mmx @llvm.x86.mmx.psrli.w(x86_mmx %mmx_var.i, i32 3) nounwind
352 %3 = bitcast <4 x i16> %2 to <1 x i64>
353 %4 = extractelement <1 x i64> %3, i32 0
357 declare x86_mmx @llvm.x86.mmx.pslli.q(x86_mmx, i32) nounwind readnone
360 ; ALL-LABEL: @test68
365 %1 = tail call x86_mmx @llvm.x86.mmx.pslli.q(x86_mmx %mmx_var.i, i32 3) nounwind
370 declare x86_mmx @llvm.x86.mmx.pslli.d(x86_mmx, i32) nounwind readnone
373 ; ALL-LABEL: @test67
378 %1 = tail call x86_mmx @llvm.x86.mmx.pslli.d(x86_mmx %mmx_var.i, i32 3) nounwind
380 %3 = bitcast <2 x i32> %2 to <1 x i64>
381 %4 = extractelement <1 x i64> %3, i32 0
385 declare x86_mmx @llvm.x86.mmx.pslli.w(x86_mmx, i32) nounwind readnone
388 ; ALL-LABEL: @test66
393 %1 = tail call x86_mmx @llvm.x86.mmx.pslli.w(x86_mmx %mmx_var.i, i32 3) nounwind
395 %3 = bitcast <4 x i16> %2 to <1 x i64>
396 %4 = extractelement <1 x i64> %3, i32 0
400 declare x86_mmx @llvm.x86.mmx.psra.d(x86_mmx, x86_mmx) nounwind readnone
403 ; ALL-LABEL: @test65
410 %2 = tail call x86_mmx @llvm.x86.mmx.psra.d(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
411 %3 = bitcast x86_mmx %2 to <2 x i32>
412 %4 = bitcast <2 x i32> %3 to <1 x i64>
417 declare x86_mmx @llvm.x86.mmx.psra.w(x86_mmx, x86_mmx) nounwind readnone
420 ; ALL-LABEL: @test64
427 %2 = tail call x86_mmx @llvm.x86.mmx.psra.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
428 %3 = bitcast x86_mmx %2 to <4 x i16>
429 %4 = bitcast <4 x i16> %3 to <1 x i64>
434 declare x86_mmx @llvm.x86.mmx.psrl.q(x86_mmx, x86_mmx) nounwind readnone
437 ; ALL-LABEL: @test63
444 %2 = tail call x86_mmx @llvm.x86.mmx.psrl.q(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
445 %3 = bitcast x86_mmx %2 to i64
446 ret i64 %3
449 declare x86_mmx @llvm.x86.mmx.psrl.d(x86_mmx, x86_mmx) nounwind readnone
452 ; ALL-LABEL: @test62
459 %2 = tail call x86_mmx @llvm.x86.mmx.psrl.d(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
460 %3 = bitcast x86_mmx %2 to <2 x i32>
461 %4 = bitcast <2 x i32> %3 to <1 x i64>
466 declare x86_mmx @llvm.x86.mmx.psrl.w(x86_mmx, x86_mmx) nounwind readnone
469 ; ALL-LABEL: @test61
476 %2 = tail call x86_mmx @llvm.x86.mmx.psrl.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
477 %3 = bitcast x86_mmx %2 to <4 x i16>
478 %4 = bitcast <4 x i16> %3 to <1 x i64>
483 declare x86_mmx @llvm.x86.mmx.psll.q(x86_mmx, x86_mmx) nounwind readnone
486 ; ALL-LABEL: @test60
493 %2 = tail call x86_mmx @llvm.x86.mmx.psll.q(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
494 %3 = bitcast x86_mmx %2 to i64
495 ret i64 %3
498 declare x86_mmx @llvm.x86.mmx.psll.d(x86_mmx, x86_mmx) nounwind readnone
501 ; ALL-LABEL: @test59
508 %2 = tail call x86_mmx @llvm.x86.mmx.psll.d(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
509 %3 = bitcast x86_mmx %2 to <2 x i32>
510 %4 = bitcast <2 x i32> %3 to <1 x i64>
515 declare x86_mmx @llvm.x86.mmx.psll.w(x86_mmx, x86_mmx) nounwind readnone
518 ; ALL-LABEL: @test58
525 %2 = tail call x86_mmx @llvm.x86.mmx.psll.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
526 %3 = bitcast x86_mmx %2 to <4 x i16>
527 %4 = bitcast <4 x i16> %3 to <1 x i64>
532 declare x86_mmx @llvm.x86.mmx.pxor(x86_mmx, x86_mmx) nounwind readnone
535 ; ALL-LABEL: @test56
542 %2 = tail call x86_mmx @llvm.x86.mmx.pxor(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
543 %3 = bitcast x86_mmx %2 to <2 x i32>
544 %4 = bitcast <2 x i32> %3 to <1 x i64>
549 declare x86_mmx @llvm.x86.mmx.por(x86_mmx, x86_mmx) nounwind readnone
552 ; ALL-LABEL: @test55
559 %2 = tail call x86_mmx @llvm.x86.mmx.por(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
560 %3 = bitcast x86_mmx %2 to <2 x i32>
561 %4 = bitcast <2 x i32> %3 to <1 x i64>
566 declare x86_mmx @llvm.x86.mmx.pandn(x86_mmx, x86_mmx) nounwind readnone
569 ; ALL-LABEL: @test54
576 %2 = tail call x86_mmx @llvm.x86.mmx.pandn(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
577 %3 = bitcast x86_mmx %2 to <2 x i32>
578 %4 = bitcast <2 x i32> %3 to <1 x i64>
583 declare x86_mmx @llvm.x86.mmx.pand(x86_mmx, x86_mmx) nounwind readnone
586 ; ALL-LABEL: @test53
593 %2 = tail call x86_mmx @llvm.x86.mmx.pand(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
594 %3 = bitcast x86_mmx %2 to <2 x i32>
595 %4 = bitcast <2 x i32> %3 to <1 x i64>
600 declare x86_mmx @llvm.x86.mmx.pmull.w(x86_mmx, x86_mmx) nounwind readnone
603 ; ALL-LABEL: @test52
610 %2 = tail call x86_mmx @llvm.x86.mmx.pmull.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
611 %3 = bitcast x86_mmx %2 to <4 x i16>
612 %4 = bitcast <4 x i16> %3 to <1 x i64>
618 ; ALL-LABEL: @test51
625 %2 = tail call x86_mmx @llvm.x86.mmx.pmull.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
626 %3 = bitcast x86_mmx %2 to <4 x i16>
627 %4 = bitcast <4 x i16> %3 to <1 x i64>
632 declare x86_mmx @llvm.x86.mmx.pmulh.w(x86_mmx, x86_mmx) nounwind readnone
635 ; ALL-LABEL: @test50
642 %2 = tail call x86_mmx @llvm.x86.mmx.pmulh.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
643 %3 = bitcast x86_mmx %2 to <4 x i16>
644 %4 = bitcast <4 x i16> %3 to <1 x i64>
649 declare x86_mmx @llvm.x86.mmx.pmadd.wd(x86_mmx, x86_mmx) nounwind readnone
652 ; ALL-LABEL: @test49
659 %2 = tail call x86_mmx @llvm.x86.mmx.pmadd.wd(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
660 %3 = bitcast x86_mmx %2 to <2 x i32>
661 %4 = bitcast <2 x i32> %3 to <1 x i64>
666 declare x86_mmx @llvm.x86.mmx.psubus.w(x86_mmx, x86_mmx) nounwind readnone
669 ; ALL-LABEL: @test48
676 %2 = tail call x86_mmx @llvm.x86.mmx.psubus.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
677 %3 = bitcast x86_mmx %2 to <4 x i16>
678 %4 = bitcast <4 x i16> %3 to <1 x i64>
683 declare x86_mmx @llvm.x86.mmx.psubus.b(x86_mmx, x86_mmx) nounwind readnone
686 ; ALL-LABEL: @test47
693 %2 = tail call x86_mmx @llvm.x86.mmx.psubus.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
694 %3 = bitcast x86_mmx %2 to <8 x i8>
695 %4 = bitcast <8 x i8> %3 to <1 x i64>
700 declare x86_mmx @llvm.x86.mmx.psubs.w(x86_mmx, x86_mmx) nounwind readnone
703 ; ALL-LABEL: @test46
710 %2 = tail call x86_mmx @llvm.x86.mmx.psubs.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
711 %3 = bitcast x86_mmx %2 to <4 x i16>
712 %4 = bitcast <4 x i16> %3 to <1 x i64>
717 declare x86_mmx @llvm.x86.mmx.psubs.b(x86_mmx, x86_mmx) nounwind readnone
720 ; ALL-LABEL: @test45
727 %2 = tail call x86_mmx @llvm.x86.mmx.psubs.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
728 %3 = bitcast x86_mmx %2 to <8 x i8>
729 %4 = bitcast <8 x i8> %3 to <1 x i64>
735 ; ALL-LABEL: @test44
742 %2 = tail call x86_mmx @llvm.x86.mmx.psub.q(x86_mmx %mmx_var, x86_mmx %mmx_var1)
743 %3 = bitcast x86_mmx %2 to i64
744 ret i64 %3
747 declare x86_mmx @llvm.x86.mmx.psub.q(x86_mmx, x86_mmx) nounwind readnone
749 declare x86_mmx @llvm.x86.mmx.psub.d(x86_mmx, x86_mmx) nounwind readnone
752 ; ALL-LABEL: @test43
759 %2 = tail call x86_mmx @llvm.x86.mmx.psub.d(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
760 %3 = bitcast x86_mmx %2 to <2 x i32>
761 %4 = bitcast <2 x i32> %3 to <1 x i64>
766 declare x86_mmx @llvm.x86.mmx.psub.w(x86_mmx, x86_mmx) nounwind readnone
769 ; ALL-LABEL: @test42
776 %2 = tail call x86_mmx @llvm.x86.mmx.psub.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
777 %3 = bitcast x86_mmx %2 to <4 x i16>
778 %4 = bitcast <4 x i16> %3 to <1 x i64>
783 declare x86_mmx @llvm.x86.mmx.psub.b(x86_mmx, x86_mmx) nounwind readnone
786 ; ALL-LABEL: @test41
793 %2 = tail call x86_mmx @llvm.x86.mmx.psub.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
794 %3 = bitcast x86_mmx %2 to <8 x i8>
795 %4 = bitcast <8 x i8> %3 to <1 x i64>
800 declare x86_mmx @llvm.x86.mmx.paddus.w(x86_mmx, x86_mmx) nounwind readnone
803 ; ALL-LABEL: @test40
810 %2 = tail call x86_mmx @llvm.x86.mmx.paddus.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
811 %3 = bitcast x86_mmx %2 to <4 x i16>
812 %4 = bitcast <4 x i16> %3 to <1 x i64>
817 declare x86_mmx @llvm.x86.mmx.paddus.b(x86_mmx, x86_mmx) nounwind readnone
820 ; ALL-LABEL: @test39
827 %2 = tail call x86_mmx @llvm.x86.mmx.paddus.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
828 %3 = bitcast x86_mmx %2 to <8 x i8>
829 %4 = bitcast <8 x i8> %3 to <1 x i64>
834 declare x86_mmx @llvm.x86.mmx.padds.w(x86_mmx, x86_mmx) nounwind readnone
837 ; ALL-LABEL: @test38
844 %2 = tail call x86_mmx @llvm.x86.mmx.padds.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
845 %3 = bitcast x86_mmx %2 to <4 x i16>
846 %4 = bitcast <4 x i16> %3 to <1 x i64>
851 declare x86_mmx @llvm.x86.mmx.padds.b(x86_mmx, x86_mmx) nounwind readnone
854 ; ALL-LABEL: @test37
861 %2 = tail call x86_mmx @llvm.x86.mmx.padds.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
862 %3 = bitcast x86_mmx %2 to <8 x i8>
863 %4 = bitcast <8 x i8> %3 to <1 x i64>
868 declare x86_mmx @llvm.x86.mmx.padd.q(x86_mmx, x86_mmx) nounwind readnone
871 ; ALL-LABEL: @test36
878 %2 = tail call x86_mmx @llvm.x86.mmx.padd.q(x86_mmx %mmx_var, x86_mmx %mmx_var1)
879 %3 = bitcast x86_mmx %2 to i64
880 ret i64 %3
883 declare x86_mmx @llvm.x86.mmx.padd.d(x86_mmx, x86_mmx) nounwind readnone
886 ; ALL-LABEL: @test35
893 %2 = tail call x86_mmx @llvm.x86.mmx.padd.d(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
894 %3 = bitcast x86_mmx %2 to <2 x i32>
895 %4 = bitcast <2 x i32> %3 to <1 x i64>
900 declare x86_mmx @llvm.x86.mmx.padd.w(x86_mmx, x86_mmx) nounwind readnone
903 ; ALL-LABEL: @test34
910 %2 = tail call x86_mmx @llvm.x86.mmx.padd.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
911 %3 = bitcast x86_mmx %2 to <4 x i16>
912 %4 = bitcast <4 x i16> %3 to <1 x i64>
917 declare x86_mmx @llvm.x86.mmx.padd.b(x86_mmx, x86_mmx) nounwind readnone
920 ; ALL-LABEL: @test33
927 %2 = tail call x86_mmx @llvm.x86.mmx.padd.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
928 %3 = bitcast x86_mmx %2 to <8 x i8>
929 %4 = bitcast <8 x i8> %3 to <1 x i64>
934 declare x86_mmx @llvm.x86.mmx.psad.bw(x86_mmx, x86_mmx) nounwind readnone
937 ; ALL-LABEL: @test32
944 %2 = tail call x86_mmx @llvm.x86.mmx.psad.bw(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
945 %3 = bitcast x86_mmx %2 to i64
946 ret i64 %3
949 declare x86_mmx @llvm.x86.mmx.pmins.w(x86_mmx, x86_mmx) nounwind readnone
952 ; ALL-LABEL: @test31
959 %2 = tail call x86_mmx @llvm.x86.mmx.pmins.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
960 %3 = bitcast x86_mmx %2 to <4 x i16>
961 %4 = bitcast <4 x i16> %3 to <1 x i64>
966 declare x86_mmx @llvm.x86.mmx.pminu.b(x86_mmx, x86_mmx) nounwind readnone
969 ; ALL-LABEL: @test30
976 %2 = tail call x86_mmx @llvm.x86.mmx.pminu.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
977 %3 = bitcast x86_mmx %2 to <8 x i8>
978 %4 = bitcast <8 x i8> %3 to <1 x i64>
983 declare x86_mmx @llvm.x86.mmx.pmaxs.w(x86_mmx, x86_mmx) nounwind readnone
986 ; ALL-LABEL: @test29
993 %2 = tail call x86_mmx @llvm.x86.mmx.pmaxs.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
994 %3 = bitcast x86_mmx %2 to <4 x i16>
995 %4 = bitcast <4 x i16> %3 to <1 x i64>
1000 declare x86_mmx @llvm.x86.mmx.pmaxu.b(x86_mmx, x86_mmx) nounwind readnone
1003 ; ALL-LABEL: @test28
1010 %2 = tail call x86_mmx @llvm.x86.mmx.pmaxu.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
1011 %3 = bitcast x86_mmx %2 to <8 x i8>
1012 %4 = bitcast <8 x i8> %3 to <1 x i64>
1017 declare x86_mmx @llvm.x86.mmx.pavg.w(x86_mmx, x86_mmx) nounwind readnone
1020 ; ALL-LABEL: @test27
1027 %2 = tail call x86_mmx @llvm.x86.mmx.pavg.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
1028 %3 = bitcast x86_mmx %2 to <4 x i16>
1029 %4 = bitcast <4 x i16> %3 to <1 x i64>
1034 declare x86_mmx @llvm.x86.mmx.pavg.b(x86_mmx, x86_mmx) nounwind readnone
1037 ; ALL-LABEL: @test26
1044 %2 = tail call x86_mmx @llvm.x86.mmx.pavg.b(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
1045 %3 = bitcast x86_mmx %2 to <8 x i8>
1046 %4 = bitcast <8 x i8> %3 to <1 x i64>
1051 declare void @llvm.x86.mmx.movnt.dq(x86_mmx*, x86_mmx) nounwind
1054 ; ALL-LABEL: @test25
1060 tail call void @llvm.x86.mmx.movnt.dq(x86_mmx* %mmx_ptr_var.i, x86_mmx %mmx_var.i) nounwind
1064 declare i32 @llvm.x86.mmx.pmovmskb(x86_mmx) nounwind readnone
1067 ; ALL-LABEL: @test24
1072 %1 = tail call i32 @llvm.x86.mmx.pmovmskb(x86_mmx %mmx_var.i) nounwind
1076 declare void @llvm.x86.mmx.maskmovq(x86_mmx, x86_mmx, i8*) nounwind
1079 ; ALL-LABEL: @test23
1086 tail call void @llvm.x86.mmx.maskmovq(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i, i8* %p) nounwind
1090 declare x86_mmx @llvm.x86.mmx.pmulhu.w(x86_mmx, x86_mmx) nounwind readnone
1093 ; ALL-LABEL: @test22
1100 %2 = tail call x86_mmx @llvm.x86.mmx.pmulhu.w(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
1101 %3 = bitcast x86_mmx %2 to <4 x i16>
1102 %4 = bitcast <4 x i16> %3 to <1 x i64>
1107 declare x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx, i8) nounwind readnone
1110 ; ALL-LABEL: @test21
1111 ; X86: pshufw {{.*#+}} mm0 = mem[3,0,0,0]
1112 ; X64: pshufw {{.*#+}} mm0 = mm0[3,0,0,0]
1116 %2 = tail call x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx %1, i8 3) nounwind readnone
1117 %3 = bitcast x86_mmx %2 to <4 x i16>
1118 %4 = bitcast <4 x i16> %3 to <1 x i64>
1124 ; ALL-LABEL: @test21_2
1125 ; X86: pshufw {{.*#+}} mm0 = mem[3,0,0,0]
1126 ; X64: pshufw {{.*#+}} mm0 = mm0[3,0,0,0]
1131 %2 = tail call x86_mmx @llvm.x86.sse.pshuf.w(x86_mmx %1, i8 3) nounwind readnone
1132 %3 = bitcast x86_mmx %2 to <4 x i16>
1133 %4 = bitcast <4 x i16> %3 to <2 x i32>
1138 declare x86_mmx @llvm.x86.mmx.pmulu.dq(x86_mmx, x86_mmx) nounwind readnone
1141 ; ALL-LABEL: @test20
1148 %2 = tail call x86_mmx @llvm.x86.mmx.pmulu.dq(x86_mmx %mmx_var.i, x86_mmx %mmx_var1.i) nounwind
1149 %3 = bitcast x86_mmx %2 to i64
1150 ret i64 %3
1153 declare <2 x double> @llvm.x86.sse.cvtpi2pd(x86_mmx) nounwind readnone
1156 ; ALL-LABEL: @test19
1161 %2 = tail call <2 x double> @llvm.x86.sse.cvtpi2pd(x86_mmx %1) nounwind readnone
1165 declare x86_mmx @llvm.x86.sse.cvttpd2pi(<2 x double>) nounwind readnone
1168 ; ALL-LABEL: @test18
1171 %0 = tail call x86_mmx @llvm.x86.sse.cvttpd2pi(<2 x double> %a) nounwind readnone
1174 %3 = extractelement <1 x i64> %2, i32 0
1175 ret i64 %3
1178 declare x86_mmx @llvm.x86.sse.cvtpd2pi(<2 x double>) nounwind readnone
1181 ; ALL-LABEL: @test17
1184 %0 = tail call x86_mmx @llvm.x86.sse.cvtpd2pi(<2 x double> %a) nounwind readnone
1187 %3 = extractelement <1 x i64> %2, i32 0
1188 ret i64 %3
1191 declare x86_mmx @llvm.x86.mmx.palignr.b(x86_mmx, x86_mmx, i8) nounwind readnone
1194 ; ALL-LABEL: @test16
1201 %2 = tail call x86_mmx @llvm.x86.mmx.palignr.b(x86_mmx %mmx_var, x86_mmx %mmx_var1, i8 16)
1202 %3 = bitcast x86_mmx %2 to i64
1203 ret i64 %3
1206 declare x86_mmx @llvm.x86.ssse3.pabs.d(x86_mmx) nounwind readnone
1209 ; ALL-LABEL: @test15
1214 %2 = tail call x86_mmx @llvm.x86.ssse3.pabs.d(x86_mmx %1) nounwind readnone
1215 %3 = bitcast x86_mmx %2 to <2 x i32>
1216 %4 = bitcast <2 x i32> %3 to <1 x i64>
1221 declare x86_mmx @llvm.x86.ssse3.pabs.w(x86_mmx) nounwind readnone
1224 ; ALL-LABEL: @test14
1229 %2 = tail call x86_mmx @llvm.x86.ssse3.pabs.w(x86_mmx %1) nounwind readnone
1230 %3 = bitcast x86_mmx %2 to <4 x i16>
1231 %4 = bitcast <4 x i16> %3 to <1 x i64>
1236 declare x86_mmx @llvm.x86.ssse3.pabs.b(x86_mmx) nounwind readnone
1239 ; ALL-LABEL: @test13
1244 %2 = tail call x86_mmx @llvm.x86.ssse3.pabs.b(x86_mmx %1) nounwind readnone
1245 %3 = bitcast x86_mmx %2 to <8 x i8>
1246 %4 = bitcast <8 x i8> %3 to <1 x i64>
1251 declare x86_mmx @llvm.x86.ssse3.psign.d(x86_mmx, x86_mmx) nounwind readnone
1254 ; ALL-LABEL: @test12
1260 %3 = bitcast <2 x i32> %0 to x86_mmx
1261 %4 = tail call x86_mmx @llvm.x86.ssse3.psign.d(x86_mmx %2, x86_mmx %3) nounwind readnone
1268 declare x86_mmx @llvm.x86.ssse3.psign.w(x86_mmx, x86_mmx) nounwind readnone
1271 ; ALL-LABEL: @test11
1277 %3 = bitcast <4 x i16> %0 to x86_mmx
1278 %4 = tail call x86_mmx @llvm.x86.ssse3.psign.w(x86_mmx %2, x86_mmx %3) nounwind readnone
1285 declare x86_mmx @llvm.x86.ssse3.psign.b(x86_mmx, x86_mmx) nounwind readnone
1288 ; ALL-LABEL: @test10
1294 %3 = bitcast <8 x i8> %0 to x86_mmx
1295 %4 = tail call x86_mmx @llvm.x86.ssse3.psign.b(x86_mmx %2, x86_mmx %3) nounwind readnone
1302 declare x86_mmx @llvm.x86.ssse3.pshuf.b(x86_mmx, x86_mmx) nounwind readnone
1305 ; ALL-LABEL: @test9
1311 %3 = bitcast <8 x i8> %0 to x86_mmx
1312 %4 = tail call x86_mmx @llvm.x86.ssse3.pshuf.b(x86_mmx %2, x86_mmx %3) nounwind readnone
1319 declare x86_mmx @llvm.x86.ssse3.pmul.hr.sw(x86_mmx, x86_mmx) nounwind readnone
1322 ; ALL-LABEL: @test8
1328 %3 = bitcast <4 x i16> %0 to x86_mmx
1329 %4 = tail call x86_mmx @llvm.x86.ssse3.pmul.hr.sw(x86_mmx %2, x86_mmx %3) nounwind readnone
1336 declare x86_mmx @llvm.x86.ssse3.pmadd.ub.sw(x86_mmx, x86_mmx) nounwind readnone
1339 ; ALL-LABEL: @test7
1345 %3 = bitcast <8 x i8> %0 to x86_mmx
1346 %4 = tail call x86_mmx @llvm.x86.ssse3.pmadd.ub.sw(x86_mmx %2, x86_mmx %3) nounwind readnone
1353 declare x86_mmx @llvm.x86.ssse3.phsub.sw(x86_mmx, x86_mmx) nounwind readnone
1356 ; ALL-LABEL: @test6
1362 %3 = bitcast <4 x i16> %0 to x86_mmx
1363 %4 = tail call x86_mmx @llvm.x86.ssse3.phsub.sw(x86_mmx %2, x86_mmx %3) nounwind readnone
1370 declare x86_mmx @llvm.x86.ssse3.phsub.d(x86_mmx, x86_mmx) nounwind readnone
1373 ; ALL-LABEL: @test5
1379 %3 = bitcast <2 x i32> %0 to x86_mmx
1380 %4 = tail call x86_mmx @llvm.x86.ssse3.phsub.d(x86_mmx %2, x86_mmx %3) nounwind readnone
1387 declare x86_mmx @llvm.x86.ssse3.phsub.w(x86_mmx, x86_mmx) nounwind readnone
1390 ; ALL-LABEL: @test4
1396 %3 = bitcast <4 x i16> %0 to x86_mmx
1397 %4 = tail call x86_mmx @llvm.x86.ssse3.phsub.w(x86_mmx %2, x86_mmx %3) nounwind readnone
1404 declare x86_mmx @llvm.x86.ssse3.phadd.sw(x86_mmx, x86_mmx) nounwind readnone
1407 ; ALL-LABEL: @test3
1413 %3 = bitcast <4 x i16> %0 to x86_mmx
1414 %4 = tail call x86_mmx @llvm.x86.ssse3.phadd.sw(x86_mmx %2, x86_mmx %3) nounwind readnone
1421 declare x86_mmx @llvm.x86.ssse3.phadd.d(x86_mmx, x86_mmx) nounwind readnone
1424 ; ALL-LABEL: @test2
1430 %3 = bitcast <2 x i32> %0 to x86_mmx
1431 %4 = tail call x86_mmx @llvm.x86.ssse3.phadd.d(x86_mmx %2, x86_mmx %3) nounwind readnone
1439 ; ALL-LABEL: @test89
1441 %c = tail call <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float> %a, x86_mmx %b)
1445 declare <4 x float> @llvm.x86.sse.cvtpi2ps(<4 x float>, x86_mmx) nounwind readnone
1447 ; ALL-LABEL: test90
1449 ; ALL-LABEL: @test90
1451 call void @llvm.x86.mmx.emms()
1455 declare void @llvm.x86.mmx.emms()