llvm/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 Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
2009-01-08-Crash.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
2009-01-14-Remat-Crash.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
2009-03-27-v2f64-param.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
2009-07-15-store192.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
2010-02-25-LSR-Crash.ll Fix XCoreTargetLowering::isLegalAddressingMode() to handle VoidTy. 2010-02-26 16:44:51 +00:00
2010-04-07-DbgValueOtherTargets.ll Split big test into multiple directories to cater to 2010-04-07 20:43:35 +00:00
addsub64.ll Handle MVT::i64 type in DAG combine for ISD::ADD. Fold 64 bit 2010-03-10 18:12:27 +00:00
ashr.ll Enable machine sinking critical edge splitting. e.g. 2010-09-20 22:52:00 +00:00
basictest.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
bigstructret.ll Add XCore support for arbitrary-sized aggregate returns. 2009-11-14 19:33:35 +00:00
bitrev.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
constants.ll Start function numbering at 0. 2010-04-17 16:29:15 +00:00
cos.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
dg.exp
exp2.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
exp.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
fneg.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
getid.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
globals.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
indirectbr.ll fix AsmPrinter::GetBlockAddressSymbol to always return a unique 2010-03-14 17:53:23 +00:00
ladd_lsub_combine.ll In cases where the carry / borrow unused converted ladd / lsub 2010-03-09 16:34:25 +00:00
load.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
log2.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
log10.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
log.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
mul64.ll Add dag combine to simplify lmul(x, 0, a, b) 2010-03-11 16:26:35 +00:00
pow.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
powi.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
private.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
sext.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
sin.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
sqrt.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
store.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
switch_long.ll Lower BR_JT on the XCore to a jump into a series of jump instructions. 2010-02-23 13:25:07 +00:00
switch.ll Lower BR_JT on the XCore to a jump into a series of jump instructions. 2010-02-23 13:25:07 +00:00
tls.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
trap.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
unaligned_load.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
unaligned_store_combine.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00
unaligned_store.ll Eliminate more uses of llvm-as and llvm-dis. 2009-09-09 00:09:15 +00:00