summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/gather-addresses.ll
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-06-24 09:13:20 +0000
committerAndrew Trick <atrick@apple.com>2013-06-24 09:13:20 +0000
commit98a9b72e8c56dc13a2617de84503a3d78352789c (patch)
treefd31bd17c5362627889925766aad73d8cdaddb32 /test/CodeGen/X86/gather-addresses.ll
parent4ee72398a15cd7b8e217bb3d34a4e9e0e72caca1 (diff)
Temporarily enable MI-Sched on X86.
Sorry for the unit test churn. I'll try to make the change permanently next time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184705 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/gather-addresses.ll')
-rw-r--r--test/CodeGen/X86/gather-addresses.ll38
1 files changed, 26 insertions, 12 deletions
diff --git a/test/CodeGen/X86/gather-addresses.ll b/test/CodeGen/X86/gather-addresses.ll
index 72a50961b2f..d1abd71618c 100644
--- a/test/CodeGen/X86/gather-addresses.ll
+++ b/test/CodeGen/X86/gather-addresses.ll
@@ -1,21 +1,35 @@
-; RUN: llc -mtriple=x86_64-linux -mcpu=nehalem < %s | FileCheck %s
-; RUN: llc -mtriple=x86_64-win32 -mcpu=nehalem < %s | FileCheck %s
+; RUN: llc -mtriple=x86_64-linux -mcpu=nehalem < %s | FileCheck %s --check-prefix=LIN
+; RUN: llc -mtriple=x86_64-win32 -mcpu=nehalem < %s | FileCheck %s --check-prefix=WIN
; rdar://7398554
; When doing vector gather-scatter index calculation with 32-bit indices,
; bounce the vector off of cache rather than shuffling each individual
; element out of the index vector.
-; CHECK: andps ([[H:%rdx|%r8]]), %xmm0
-; CHECK: movaps %xmm0, {{(-24)?}}(%rsp)
-; CHECK: movslq {{(-24)?}}(%rsp), %rax
-; CHECK: movsd ([[P:%rdi|%rcx]],%rax,8), %xmm0
-; CHECK: movslq {{-20|4}}(%rsp), %rax
-; CHECK: movhpd ([[P]],%rax,8), %xmm0
-; CHECK: movslq {{-16|8}}(%rsp), %rax
-; CHECK: movsd ([[P]],%rax,8), %xmm1
-; CHECK: movslq {{-12|12}}(%rsp), %rax
-; CHECK: movhpd ([[P]],%rax,8), %xmm1
+; CHECK: foo:
+; LIN: movaps (%rsi), %xmm0
+; LIN: andps (%rdx), %xmm0
+; LIN: movaps %xmm0, -24(%rsp)
+; LIN: movslq -24(%rsp), %rsi
+; LIN: movslq -20(%rsp), %rcx
+; LIN: movslq -16(%rsp), %rdx
+; LIN: movslq -12(%rsp), %rax
+; LIN: movsd (%rdi,%rsi,8), %xmm0
+; LIN: movhpd (%rdi,%rcx,8), %xmm0
+; LIN: movsd (%rdi,%rdx,8), %xmm1
+; LIN: movhpd (%rdi,%rax,8), %xmm1
+
+; WIN: movaps (%rdx), %xmm0
+; WIN: andps (%r8), %xmm0
+; WIN: movaps %xmm0, (%rsp)
+; WIN: movslq (%rsp), %rax
+; WIN: movslq 4(%rsp), %rdx
+; WIN: movslq 8(%rsp), %r9
+; WIN: movslq 12(%rsp), %r8
+; WIN: movsd (%rcx,%rax,8), %xmm0
+; WIN: movhpd (%rcx,%rdx,8), %xmm0
+; WIN: movsd (%rcx,%r9,8), %xmm1
+; WIN: movhpd (%rcx,%r8,8), %xmm1
define <4 x double> @foo(double* %p, <4 x i32>* %i, <4 x i32>* %h) nounwind {
%a = load <4 x i32>* %i