diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-04-05 00:32:44 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-04-05 00:32:44 +0000 |
commit | b0e47cdf3decc6aef46b1bdaf19342c39681623a (patch) | |
tree | 8c5200b9cdf09c58517362bcc11e32ac09760da5 /test/CodeGen/X86/fold-pcmpeqd-0.ll | |
parent | 157536b1fb900e57efe042d48c7caeb87b1efd04 (diff) | |
download | external_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.ll | 16 |
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 }> |