1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 14:33:02 +02:00
llvm-mirror/test/CodeGen
NAKAMURA Takumi 83458d4d01 Reapply r165661, Patch by Shuxin Yang <shuxin.llvm@gmail.com>.
Original message:

The attached is the fix to radar://11663049. The optimization can be outlined by following rules:

   (select (x != c), e, c) -> select (x != c), e, x),
   (select (x == c), c, e) -> select (x == c), x, e)
where the <c> is an integer constant.

 The reason for this change is that : on x86, conditional-move-from-constant needs two instructions;
however, conditional-move-from-register need only one instruction.

  While the LowerSELECT() sounds to be the most convenient place for this optimization, it turns out to be a bad place. The reason is that by replacing the constant <c> with a symbolic value, it obscure some instruction-combining opportunities which would otherwise be very easy to spot. For that reason, I have to postpone the change to last instruction-combining phase.

  The change passes the test of "make check-all -C <build-root/test" and "make -C project/test-suite/SingleSource".

Original message since r165661:

My previous change has a bug: I negated the condition code of a CMOV, and go ahead creating a new CMOV using the *ORIGINAL* condition code.

llvm-svn: 166017
2012-10-16 06:28:34 +00:00
..
ARM ARM: v1i64 and v2i64 VBSL intrinsic support. 2012-10-15 21:23:40 +00:00
CellSPU Fix broken tests. 2012-10-02 15:49:34 +00:00
CPP
Generic
Hexagon
MBlaze
Mips Div, Rem int/unsigned int 2012-10-12 02:01:09 +00:00
MSP430
NVPTX
PowerPC llvm/test/CodeGen/PowerPC/2012-10-12-bitcast.ll: Try to fix failure on non-ppc hosts, to add -mattr=+altivec. 2012-10-12 16:01:08 +00:00
SPARC Fix broken tests. 2012-10-02 15:49:34 +00:00
Thumb
Thumb2 Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
X86 Reapply r165661, Patch by Shuxin Yang <shuxin.llvm@gmail.com>. 2012-10-16 06:28:34 +00:00
XCore