summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/avx-vbroadcast.ll
diff options
context:
space:
mode:
authorMichael Kuperstein <mkuper@google.com>2017-04-06 22:33:25 +0000
committerMichael Kuperstein <mkuper@google.com>2017-04-06 22:33:25 +0000
commit6129887d21f068b7a965d394bc629ab374b31384 (patch)
treea65acc01c1f53b6f7f73f87d1907975f1b6be364 /llvm/test/CodeGen/X86/avx-vbroadcast.ll
parent813de713290c9eb8c24562af6133319327aa9aa4 (diff)
downloadbcm5719-llvm-6129887d21f068b7a965d394bc629ab374b31384.tar.gz
bcm5719-llvm-6129887d21f068b7a965d394bc629ab374b31384.zip
[X86] Revert r299387 due to AVX legalization infinite loop.
llvm-svn: 299720
Diffstat (limited to 'llvm/test/CodeGen/X86/avx-vbroadcast.ll')
-rw-r--r--llvm/test/CodeGen/X86/avx-vbroadcast.ll48
1 files changed, 24 insertions, 24 deletions
diff --git a/llvm/test/CodeGen/X86/avx-vbroadcast.ll b/llvm/test/CodeGen/X86/avx-vbroadcast.ll
index 620603925d0..37b8753097c 100644
--- a/llvm/test/CodeGen/X86/avx-vbroadcast.ll
+++ b/llvm/test/CodeGen/X86/avx-vbroadcast.ll
@@ -6,8 +6,12 @@ define <4 x i64> @A(i64* %ptr) nounwind uwtable readnone ssp {
; X32-LABEL: A:
; X32: ## BB#0: ## %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
-; X32-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
-; X32-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0]
+; X32-NEXT: movl (%eax), %ecx
+; X32-NEXT: movl 4(%eax), %eax
+; X32-NEXT: vmovd %ecx, %xmm0
+; X32-NEXT: vpinsrd $1, %eax, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $3, %eax, %xmm0, %xmm0
; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
; X32-NEXT: retl
;
@@ -27,21 +31,17 @@ entry:
define <4 x i64> @A2(i64* %ptr, i64* %ptr2) nounwind uwtable readnone ssp {
; X32-LABEL: A2:
; X32: ## BB#0: ## %entry
-; X32-NEXT: pushl %esi
-; X32-NEXT: Lcfi0:
-; X32-NEXT: .cfi_def_cfa_offset 8
-; X32-NEXT: Lcfi1:
-; X32-NEXT: .cfi_offset %esi, -8
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X32-NEXT: movl (%ecx), %edx
-; X32-NEXT: movl 4(%ecx), %esi
-; X32-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
-; X32-NEXT: movl %esi, 4(%eax)
+; X32-NEXT: movl 4(%ecx), %ecx
+; X32-NEXT: movl %ecx, 4(%eax)
; X32-NEXT: movl %edx, (%eax)
-; X32-NEXT: vmovddup {{.*#+}} xmm0 = xmm0[0,0]
+; X32-NEXT: vmovd %edx, %xmm0
+; X32-NEXT: vpinsrd $1, %ecx, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $2, %edx, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $3, %ecx, %xmm0, %xmm0
; X32-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
-; X32-NEXT: popl %esi
; X32-NEXT: retl
;
; X64-LABEL: A2:
@@ -592,8 +592,12 @@ define <2 x i64> @G(i64* %ptr) nounwind uwtable readnone ssp {
; X32-LABEL: G:
; X32: ## BB#0: ## %entry
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
-; X32-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; X32-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
+; X32-NEXT: movl (%eax), %ecx
+; X32-NEXT: movl 4(%eax), %eax
+; X32-NEXT: vmovd %ecx, %xmm0
+; X32-NEXT: vpinsrd $1, %eax, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $2, %ecx, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $3, %eax, %xmm0, %xmm0
; X32-NEXT: retl
;
; X64-LABEL: G:
@@ -611,20 +615,16 @@ entry:
define <2 x i64> @G2(i64* %ptr, i64* %ptr2) nounwind uwtable readnone ssp {
; X32-LABEL: G2:
; X32: ## BB#0: ## %entry
-; X32-NEXT: pushl %esi
-; X32-NEXT: Lcfi2:
-; X32-NEXT: .cfi_def_cfa_offset 8
-; X32-NEXT: Lcfi3:
-; X32-NEXT: .cfi_offset %esi, -8
; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
; X32-NEXT: movl (%ecx), %edx
-; X32-NEXT: movl 4(%ecx), %esi
-; X32-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
-; X32-NEXT: movl %esi, 4(%eax)
+; X32-NEXT: movl 4(%ecx), %ecx
+; X32-NEXT: movl %ecx, 4(%eax)
; X32-NEXT: movl %edx, (%eax)
-; X32-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
-; X32-NEXT: popl %esi
+; X32-NEXT: vmovd %edx, %xmm0
+; X32-NEXT: vpinsrd $1, %ecx, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $2, %edx, %xmm0, %xmm0
+; X32-NEXT: vpinsrd $3, %ecx, %xmm0, %xmm0
; X32-NEXT: retl
;
; X64-LABEL: G2:
OpenPOWER on IntegriCloud