summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll
diff options
context:
space:
mode:
authorPreston Gurd <preston.gurd@intel.com>2012-07-18 20:49:17 +0000
committerPreston Gurd <preston.gurd@intel.com>2012-07-18 20:49:17 +0000
commitf0a48ec8f188d3c2ccb86cce027e3b3b7a231d8b (patch)
treedef831713c8193e6cf1521598e35b610f7c1b7a1 /llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll
parent5e0c5e8108e8886e4aa7ea489d0af5bc4f521a25 (diff)
downloadbcm5719-llvm-f0a48ec8f188d3c2ccb86cce027e3b3b7a231d8b.tar.gz
bcm5719-llvm-f0a48ec8f188d3c2ccb86cce027e3b3b7a231d8b.zip
This patch fixes 8 out of 20 unexpected failures in "make check"
when run on an Intel Atom processor. The failures have arisen due to changes elsewhere in the trunk over the past 8 weeks or so. These failures were not detected by the Atom buildbot because the CPU on the Atom buildbot was not being detected as an Atom CPU. The fix for this problem is in Host.cpp and X86Subtarget.cpp, but shall remain commented out until the current set of Atom test failures are fixed. Patch by Andy Zhang and Tyler Nowicki! llvm-svn: 160451
Diffstat (limited to 'llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll')
-rw-r--r--llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll20
1 files changed, 17 insertions, 3 deletions
diff --git a/llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll b/llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll
index c565684685e..37eca1ce0a7 100644
--- a/llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll
+++ b/llvm/test/CodeGen/X86/phys-reg-local-regalloc.ll
@@ -1,6 +1,7 @@
-; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast -optimize-regalloc=0 | FileCheck %s
-; RUN: llc -O0 < %s -march=x86 -mtriple=i386-apple-darwin9 -regalloc=fast | FileCheck %s
-; CHECKed instructions should be the same with or without -O0.
+; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -mcpu=generic -regalloc=fast -optimize-regalloc=0 | FileCheck %s
+; RUN: llc -O0 < %s -march=x86 -mtriple=i386-apple-darwin9 -mcpu=generic -regalloc=fast | FileCheck %s
+; RUN: llc < %s -march=x86 -mtriple=i386-apple-darwin9 -mcpu=atom -regalloc=fast -optimize-regalloc=0 | FileCheck -check-prefix=ATOM %s
+; CHECKed instructions should be the same with or without -O0 except on Intel Atom due to instruction scheduling.
@.str = private constant [12 x i8] c"x + y = %i\0A\00", align 1 ; <[12 x i8]*> [#uses=1]
@@ -15,6 +16,19 @@ entry:
; CHECK: movl %ebx, 40(%esp)
; CHECK-NOT: movl
; CHECK: addl %ebx, %eax
+
+; On Intel Atom the scheduler moves a movl instruction
+; used for the printf call to follow movl 24(%esp), %eax
+; ATOM: movl 24(%esp), %eax
+; ATOM: movl
+; ATOM: movl %eax, 36(%esp)
+; ATOM-NOT: movl
+; ATOM: movl 28(%esp), %ebx
+; ATOM-NOT: movl
+; ATOM: movl %ebx, 40(%esp)
+; ATOM-NOT: movl
+; ATOM: addl %ebx, %eax
+
%retval = alloca i32 ; <i32*> [#uses=2]
%"%ebx" = alloca i32 ; <i32*> [#uses=1]
%"%eax" = alloca i32 ; <i32*> [#uses=2]
OpenPOWER on IntegriCloud