aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/fold-pcmpeqd-0.ll
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-04-05 00:32:44 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-04-05 00:32:44 +0000
commitb0e47cdf3decc6aef46b1bdaf19342c39681623a (patch)
tree8c5200b9cdf09c58517362bcc11e32ac09760da5 /test/CodeGen/X86/fold-pcmpeqd-0.ll
parent157536b1fb900e57efe042d48c7caeb87b1efd04 (diff)
downloadexternal_llvm-b0e47cdf3decc6aef46b1bdaf19342c39681623a.zip
external_llvm-b0e47cdf3decc6aef46b1bdaf19342c39681623a.tar.gz
external_llvm-b0e47cdf3decc6aef46b1bdaf19342c39681623a.tar.bz2
Fix register-dependent X86 tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128867 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/fold-pcmpeqd-0.ll')
-rw-r--r--test/CodeGen/X86/fold-pcmpeqd-0.ll16
1 files changed, 13 insertions, 3 deletions
diff --git a/test/CodeGen/X86/fold-pcmpeqd-0.ll b/test/CodeGen/X86/fold-pcmpeqd-0.ll
index e5be58e..647bbdb 100644
--- a/test/CodeGen/X86/fold-pcmpeqd-0.ll
+++ b/test/CodeGen/X86/fold-pcmpeqd-0.ll
@@ -1,11 +1,21 @@
-; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=yonah | not grep pcmpeqd
-; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=yonah | grep orps | grep CPI0_2 | count 2
-; RUN: llc < %s -mtriple=x86_64-apple-darwin | grep pcmpeqd | count 1
+; RUN: llc < %s -mtriple=i386-apple-darwin -mcpu=yonah -regalloc=linearscan | FileCheck --check-prefix=I386 %s
+; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck --check-prefix=X86-64 %s
; This testcase shouldn't need to spill the -1 value,
; so it should just use pcmpeqd to materialize an all-ones vector.
; For i386, cp load of -1 are folded.
+; With -regalloc=greedy, the live range is split before spilling, so the first
+; pcmpeq doesn't get folded as a constant pool load.
+
+; I386-NOT: pcmpeqd
+; I386: orps LCPI0_2, %xmm
+; I386-NOT: pcmpeqd
+; I386: orps LCPI0_2, %xmm
+
+; X86-64: pcmpeqd
+; X86-64-NOT: pcmpeqd
+
%struct.__ImageExecInfo = type <{ <4 x i32>, <4 x float>, <2 x i64>, i8*, i8*, i8*, i32, i32, i32, i32, i32 }>
%struct._cl_image_format_t = type <{ i32, i32, i32 }>
%struct._image2d_t = type <{ i8*, %struct._cl_image_format_t, i32, i32, i32, i32, i32, i32 }>