mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-10 22:55:57 +00:00
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 |
||
---|---|---|
.. | ||
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 |