llvm-6502/test/CodeGen/XCore
Evan Cheng 44be1a8d66 Enable machine sinking critical edge splitting. e.g.
define double @foo(double %x, double %y, i1 %c) nounwind {
  %a = fdiv double %x, 3.2
  %z = select i1 %c, double %a, double %y
  ret double %z
}

Was:
_foo:
        divsd   LCPI0_0(%rip), %xmm0
        testb   $1, %dil
        jne     LBB0_2
        movaps  %xmm1, %xmm0
LBB0_2:
        ret

Now:
_foo:
        testb   $1, %dil
        je      LBB0_2
        divsd   LCPI0_0(%rip), %xmm0
        ret
LBB0_2:
        movaps  %xmm1, %xmm0
        ret

This avoids the divsd when early exit is taken.
rdar://8454886


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114372 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-20 22:52:00 +00:00
..
2008-11-17-Shl64.ll
2009-01-08-Crash.ll
2009-01-14-Remat-Crash.ll
2009-03-27-v2f64-param.ll
2009-07-15-store192.ll
2010-02-25-LSR-Crash.ll
2010-04-07-DbgValueOtherTargets.ll
addsub64.ll
ashr.ll
basictest.ll
bigstructret.ll
bitrev.ll
constants.ll
cos.ll
dg.exp
exp2.ll
exp.ll
fneg.ll
getid.ll
globals.ll
indirectbr.ll
ladd_lsub_combine.ll
load.ll
log2.ll
log10.ll
log.ll
mul64.ll
pow.ll
powi.ll
private.ll
sext.ll
sin.ll
sqrt.ll
store.ll
switch_long.ll
switch.ll
tls.ll
trap.ll
unaligned_load.ll
unaligned_store_combine.ll
unaligned_store.ll