1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/lib
Chris Lattner dbdc830c83 Add a little dag combine to compile this:
int %AreSecondAndThirdElementsBothNegative(<4 x float>* %in) {
entry:
        %tmp1 = load <4 x float>* %in           ; <<4 x float>> [#uses=1]
        %tmp = tail call int %llvm.ppc.altivec.vcmpgefp.p( int 1, <4 x float> < float 0x7FF8000000000000, float 0.000000e+00, float 0.000000e+00, float 0x7FF8000000000000 >, <4 x float> %tmp1 )           ; <int> [#uses=1]
        %tmp = seteq int %tmp, 0                ; <bool> [#uses=1]
        %tmp3 = cast bool %tmp to int           ; <int> [#uses=1]
        ret int %tmp3
}

into this:

_AreSecondAndThirdElementsBothNegative:
        mfspr r2, 256
        oris r4, r2, 49152
        mtspr 256, r4
        li r4, lo16(LCPI1_0)
        lis r5, ha16(LCPI1_0)
        lvx v0, 0, r3
        lvx v1, r5, r4
        vcmpgefp. v0, v1, v0
        mfcr r3, 2
        rlwinm r3, r3, 27, 31, 31
        mtspr 256, r2
        blr

instead of this:

_AreSecondAndThirdElementsBothNegative:
        mfspr r2, 256
        oris r4, r2, 49152
        mtspr 256, r4
        li r4, lo16(LCPI1_0)
        lis r5, ha16(LCPI1_0)
        lvx v0, 0, r3
        lvx v1, r5, r4
        vcmpgefp. v0, v1, v0
        mfcr r3, 2
        rlwinm r3, r3, 27, 31, 31
        xori r3, r3, 1
        cntlzw r3, r3
        srwi r3, r3, 5
        mtspr 256, r2
        blr

llvm-svn: 27356
2006-04-02 06:11:11 +00:00
..
Analysis Fix Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll and 2006-04-01 04:48:52 +00:00
AsmParser Add new generated files. 2006-03-23 23:48:12 +00:00
Bytecode Handle the removal of the debug chain. 2006-03-13 13:07:37 +00:00
CodeGen Add a little dag combine to compile this: 2006-04-02 06:11:11 +00:00
Debugger Handle new forms of llvm.dbg intrinsics. 2006-03-23 18:06:46 +00:00
ExecutionEngine Get JIT/Interpreter working on Windows again. 2006-03-24 02:53:49 +00:00
Linker Rename method 2006-01-24 04:14:29 +00:00
Support Qualify dwarf namespace inside llvm namespace. 2006-02-27 22:37:23 +00:00
System Convert llvm.cs.uiuc.edu -> llvm.org 2006-03-14 05:54:52 +00:00
Target Remove done item 2006-04-02 05:28:54 +00:00
Transforms vector casts of casts are eliminable. Transform this: 2006-04-02 05:43:13 +00:00
VMCore vector casts never reinterpret bits 2006-04-02 05:40:28 +00:00
Makefile Add the Linker library 2004-11-14 21:54:41 +00:00