llvm-6502/lib
Chris Lattner 82ed58f9c4 Turn altivec lvx/stvx intrinsics into loads and stores. This allows the
elimination of one load from this:

int AreSecondAndThirdElementsBothNegative( vector float *in ) {
#define QNaN 0x7FC00000
const vector unsigned int testData = (vector unsigned int)( QNaN, 0, 0, QNaN );
vector float test = vec_ld( 0, (float*) &testData );
return ! vec_any_ge( test, *in );
}

Now generating:

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27352 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-02 05:30:25 +00:00
..
Analysis Fix Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll and 2006-04-01 04:48:52 +00:00
Archive
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 Implement promotion for EXTRACT_VECTOR_ELT, allowing v16i8 multiplies to work with PowerPC. 2006-04-02 05:06:04 +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
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 Turn altivec lvx/stvx intrinsics into loads and stores. This allows the 2006-04-02 05:30:25 +00:00
VMCore Constant fold casts from things like <4 x int> -> <4 x uint>, likewise int<->fp. 2006-04-02 01:38:28 +00:00
Makefile