summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/paddus.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/paddus.ll')
-rw-r--r--llvm/test/CodeGen/X86/paddus.ll163
1 files changed, 37 insertions, 126 deletions
diff --git a/llvm/test/CodeGen/X86/paddus.ll b/llvm/test/CodeGen/X86/paddus.ll
index 63ef093fdd9..c14826fe834 100644
--- a/llvm/test/CodeGen/X86/paddus.ll
+++ b/llvm/test/CodeGen/X86/paddus.ll
@@ -1527,30 +1527,13 @@ define void @addus_v8i8(<8 x i8>* %p1, <8 x i8>* %p2) {
; SSE-NEXT: movq %xmm1, (%rdi)
; SSE-NEXT: retq
;
-; AVX1-LABEL: addus_v8i8:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; AVX1-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
-; AVX1-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vmovq %xmm0, (%rdi)
-; AVX1-NEXT: retq
-;
-; AVX2-LABEL: addus_v8i8:
-; AVX2: # %bb.0:
-; AVX2-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; AVX2-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
-; AVX2-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX2-NEXT: vmovq %xmm0, (%rdi)
-; AVX2-NEXT: retq
-;
-; AVX512-LABEL: addus_v8i8:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; AVX512-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
-; AVX512-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vpmovzxbw {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
-; AVX512-NEXT: vpmovwb %xmm0, (%rdi)
-; AVX512-NEXT: retq
+; AVX-LABEL: addus_v8i8:
+; AVX: # %bb.0:
+; AVX-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
+; AVX-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
+; AVX-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vmovq %xmm0, (%rdi)
+; AVX-NEXT: retq
%ld1 = load <8 x i8>, <8 x i8>* %p1, align 8
%ld2 = load <8 x i8>, <8 x i8>* %p2, align 8
%1 = add <8 x i8> %ld2, %ld1
@@ -1569,30 +1552,13 @@ define void @addus_v4i8(<4 x i8>* %p1, <4 x i8>* %p2) {
; SSE-NEXT: movd %xmm1, (%rdi)
; SSE-NEXT: retq
;
-; AVX1-LABEL: addus_v4i8:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; AVX1-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; AVX1-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vmovd %xmm0, (%rdi)
-; AVX1-NEXT: retq
-;
-; AVX2-LABEL: addus_v4i8:
-; AVX2: # %bb.0:
-; AVX2-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; AVX2-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; AVX2-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX2-NEXT: vmovd %xmm0, (%rdi)
-; AVX2-NEXT: retq
-;
-; AVX512-LABEL: addus_v4i8:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; AVX512-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; AVX512-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vpmovzxbd {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero,xmm0[2],zero,zero,zero,xmm0[3],zero,zero,zero
-; AVX512-NEXT: vpmovdb %xmm0, (%rdi)
-; AVX512-NEXT: retq
+; AVX-LABEL: addus_v4i8:
+; AVX: # %bb.0:
+; AVX-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; AVX-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
+; AVX-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vmovd %xmm0, (%rdi)
+; AVX-NEXT: retq
%ld1 = load <4 x i8>, <4 x i8>* %p1, align 4
%ld2 = load <4 x i8>, <4 x i8>* %p2, align 4
%1 = add <4 x i8> %ld2, %ld1
@@ -1635,36 +1601,15 @@ define void @addus_v2i8(<2 x i8>* %p1, <2 x i8>* %p2) {
; SSE41-NEXT: pextrw $0, %xmm1, (%rdi)
; SSE41-NEXT: retq
;
-; AVX1-LABEL: addus_v2i8:
-; AVX1: # %bb.0:
-; AVX1-NEXT: movzwl (%rdi), %eax
-; AVX1-NEXT: vmovd %eax, %xmm0
-; AVX1-NEXT: movzwl (%rsi), %eax
-; AVX1-NEXT: vmovd %eax, %xmm1
-; AVX1-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vpextrw $0, %xmm0, (%rdi)
-; AVX1-NEXT: retq
-;
-; AVX2-LABEL: addus_v2i8:
-; AVX2: # %bb.0:
-; AVX2-NEXT: movzwl (%rdi), %eax
-; AVX2-NEXT: vmovd %eax, %xmm0
-; AVX2-NEXT: movzwl (%rsi), %eax
-; AVX2-NEXT: vmovd %eax, %xmm1
-; AVX2-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX2-NEXT: vpextrw $0, %xmm0, (%rdi)
-; AVX2-NEXT: retq
-;
-; AVX512-LABEL: addus_v2i8:
-; AVX512: # %bb.0:
-; AVX512-NEXT: movzwl (%rdi), %eax
-; AVX512-NEXT: vmovd %eax, %xmm0
-; AVX512-NEXT: movzwl (%rsi), %eax
-; AVX512-NEXT: vmovd %eax, %xmm1
-; AVX512-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vpmovzxbq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,zero,zero,zero,zero,xmm0[1],zero,zero,zero,zero,zero,zero,zero
-; AVX512-NEXT: vpmovqb %xmm0, (%rdi)
-; AVX512-NEXT: retq
+; AVX-LABEL: addus_v2i8:
+; AVX: # %bb.0:
+; AVX-NEXT: movzwl (%rdi), %eax
+; AVX-NEXT: vmovd %eax, %xmm0
+; AVX-NEXT: movzwl (%rsi), %eax
+; AVX-NEXT: vmovd %eax, %xmm1
+; AVX-NEXT: vpaddusb %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vpextrw $0, %xmm0, (%rdi)
+; AVX-NEXT: retq
%ld1 = load <2 x i8>, <2 x i8>* %p1, align 2
%ld2 = load <2 x i8>, <2 x i8>* %p2, align 2
%1 = add <2 x i8> %ld2, %ld1
@@ -1683,30 +1628,13 @@ define void @addus_v4i16(<4 x i16>* %p1, <4 x i16>* %p2) {
; SSE-NEXT: movq %xmm1, (%rdi)
; SSE-NEXT: retq
;
-; AVX1-LABEL: addus_v4i16:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; AVX1-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
-; AVX1-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vmovq %xmm0, (%rdi)
-; AVX1-NEXT: retq
-;
-; AVX2-LABEL: addus_v4i16:
-; AVX2: # %bb.0:
-; AVX2-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; AVX2-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
-; AVX2-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
-; AVX2-NEXT: vmovq %xmm0, (%rdi)
-; AVX2-NEXT: retq
-;
-; AVX512-LABEL: addus_v4i16:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; AVX512-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
-; AVX512-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vpmovzxwd {{.*#+}} xmm0 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero
-; AVX512-NEXT: vpmovdw %xmm0, (%rdi)
-; AVX512-NEXT: retq
+; AVX-LABEL: addus_v4i16:
+; AVX: # %bb.0:
+; AVX-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
+; AVX-NEXT: vmovq {{.*#+}} xmm1 = mem[0],zero
+; AVX-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vmovq %xmm0, (%rdi)
+; AVX-NEXT: retq
%ld1 = load <4 x i16>, <4 x i16>* %p1, align 4
%ld2 = load <4 x i16>, <4 x i16>* %p2, align 4
%1 = add <4 x i16> %ld2, %ld1
@@ -1725,30 +1653,13 @@ define void @addus_v2i16(<2 x i16>* %p1, <2 x i16>* %p2) {
; SSE-NEXT: movd %xmm1, (%rdi)
; SSE-NEXT: retq
;
-; AVX1-LABEL: addus_v2i16:
-; AVX1: # %bb.0:
-; AVX1-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; AVX1-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; AVX1-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
-; AVX1-NEXT: vmovd %xmm0, (%rdi)
-; AVX1-NEXT: retq
-;
-; AVX2-LABEL: addus_v2i16:
-; AVX2: # %bb.0:
-; AVX2-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; AVX2-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; AVX2-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
-; AVX2-NEXT: vmovd %xmm0, (%rdi)
-; AVX2-NEXT: retq
-;
-; AVX512-LABEL: addus_v2i16:
-; AVX512: # %bb.0:
-; AVX512-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
-; AVX512-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; AVX512-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
-; AVX512-NEXT: vpmovzxwq {{.*#+}} xmm0 = xmm0[0],zero,zero,zero,xmm0[1],zero,zero,zero
-; AVX512-NEXT: vpmovqw %xmm0, (%rdi)
-; AVX512-NEXT: retq
+; AVX-LABEL: addus_v2i16:
+; AVX: # %bb.0:
+; AVX-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
+; AVX-NEXT: vmovd {{.*#+}} xmm1 = mem[0],zero,zero,zero
+; AVX-NEXT: vpaddusw %xmm0, %xmm1, %xmm0
+; AVX-NEXT: vmovd %xmm0, (%rdi)
+; AVX-NEXT: retq
%ld1 = load <2 x i16>, <2 x i16>* %p1, align 2
%ld2 = load <2 x i16>, <2 x i16>* %p2, align 2
%1 = add <2 x i16> %ld2, %ld1
OpenPOWER on IntegriCloud