summaryrefslogtreecommitdiffstats
path: root/test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-10-29 18:09:28 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-10-29 18:09:28 +0000
commit089751535d6e9adf65842e2ca5867bf9a70e1e95 (patch)
tree883781d177686ef496311a6d049024b5b61219ef /test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll
parentd7e473c629a5e4fb1584fb5c5c1b0c1e142fdc8f (diff)
downloadexternal_llvm-089751535d6e9adf65842e2ca5867bf9a70e1e95.zip
external_llvm-089751535d6e9adf65842e2ca5867bf9a70e1e95.tar.gz
external_llvm-089751535d6e9adf65842e2ca5867bf9a70e1e95.tar.bz2
Avoiding overly aggressive latency scheduling. If the two nodes share an
operand and one of them has a single use that is a live out copy, favor the one that is live out. Otherwise it will be difficult to eliminate the copy if the instruction is a loop induction variable update. e.g. BB: sub r1, r3, #1 str r0, [r2, r3] mov r3, r1 cmp bne BB => BB: str r0, [r2, r3] sub r3, r3, #1 cmp bne BB This fixed the recent 256.bzip2 regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117675 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll')
-rw-r--r--test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll3
1 files changed, 3 insertions, 0 deletions
diff --git a/test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll b/test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll
index 0b6c92b..080341c 100644
--- a/test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll
+++ b/test/CodeGen/Thumb2/2010-06-14-NEONCoalescer.ll
@@ -23,7 +23,10 @@ entry:
%4 = insertelement <2 x double> %2, double %V.0.ph, i32 1 ; <<2 x double>> [#uses=2]
; Constant pool load followed by add.
; Then clobber the loaded register, not the sum.
+; CHECK: vldr.64
+; CHECK: vadd.f64
; CHECK: vldr.64 [[LDR:d.*]],
+; CHECK: LPC0_0:
; CHECK: vadd.f64 [[ADD:d.*]], [[LDR]], [[LDR]]
; CHECK: vmov.f64 [[LDR]]
%5 = fadd <2 x double> %3, %3 ; <<2 x double>> [#uses=2]