- Apr 20, 2006
-
-
Chris Lattner authored
llvm-svn: 27900
-
Chris Lattner authored
llvm-svn: 27895
-
Chris Lattner authored
llvm-svn: 27885
-
Evan Cheng authored
to a vector shuffle. - VECTOR_SHUFFLE lowering change in preparation for more efficient codegen of vector shuffle with zero (or any splat) vector. llvm-svn: 27875
-
Chris Lattner authored
CodeGen/PowerPC/2006-04-19-vmaddfp-crash.ll llvm-svn: 27868
-
Evan Cheng authored
but i64 is not. If possible, change a i64 op to a f64 (e.g. load, constant) and then cast it back. llvm-svn: 27849
-
Evan Cheng authored
llvm-svn: 27847
-
Evan Cheng authored
instructions. - Fixed a commute vector_shuff bug. llvm-svn: 27845
-
- Apr 19, 2006
-
-
Evan Cheng authored
llvm-svn: 27844
-
Evan Cheng authored
llvm-svn: 27843
-
Evan Cheng authored
- Added more movhlps and movlhps patterns. llvm-svn: 27842
-
Evan Cheng authored
llvm-svn: 27840
-
Evan Cheng authored
llvm-svn: 27836
-
Evan Cheng authored
- Increase cost (complexity) of patterns which match mov{h|l}ps ops. These are preferred over shufps in most cases. llvm-svn: 27835
-
Evan Cheng authored
llvm-svn: 27834
-
Chris Lattner authored
llvm-svn: 27832
-
Chris Lattner authored
llvm-svn: 27828
-
Chris Lattner authored
llvm-svn: 27827
-
- Apr 18, 2006
-
-
Evan Cheng authored
- PINSRWrmi encoding bug. llvm-svn: 27818
-
Evan Cheng authored
llvm-svn: 27817
-
Evan Cheng authored
llvm-svn: 27816
-
Evan Cheng authored
llvm-svn: 27815
-
Evan Cheng authored
llvm-svn: 27814
-
Evan Cheng authored
llvm-svn: 27813
-
Chris Lattner authored
llvm-svn: 27810
-
Chris Lattner authored
llvm-svn: 27809
-
Chris Lattner authored
void foo2(vector float *A, vector float *B) { vector float C = (vector float)vec_cmpeq(*A, *B); if (!vec_any_eq(*A, *B)) *B = (vector float){0,0,0,0}; *A = C; } llvm-svn: 27808
-
Evan Cheng authored
llvm-svn: 27807
-
Chris Lattner authored
llvm-svn: 27806
-
Chris Lattner authored
If an altivec predicate compare is used immediately by a branch, don't use a (serializing) MFCR instruction to read the CR6 register, which requires a compare to get it back to CR's. Instead, just branch on CR6 directly. :) For example, for: void foo2(vector float *A, vector float *B) { if (!vec_any_eq(*A, *B)) *B = (vector float){0,0,0,0}; } We now generate: _foo2: mfspr r2, 256 oris r5, r2, 12288 mtspr 256, r5 lvx v2, 0, r4 lvx v3, 0, r3 vcmpeqfp. v2, v3, v2 bne cr6, LBB1_2 ; UnifiedReturnBlock LBB1_1: ; cond_true vxor v2, v2, v2 stvx v2, 0, r4 mtspr 256, r2 blr LBB1_2: ; UnifiedReturnBlock mtspr 256, r2 blr instead of: _foo2: mfspr r2, 256 oris r5, r2, 12288 mtspr 256, r5 lvx v2, 0, r4 lvx v3, 0, r3 vcmpeqfp. v2, v3, v2 mfcr r3, 2 rlwinm r3, r3, 27, 31, 31 cmpwi cr0, r3, 0 beq cr0, LBB1_2 ; UnifiedReturnBlock LBB1_1: ; cond_true vxor v2, v2, v2 stvx v2, 0, r4 mtspr 256, r2 blr LBB1_2: ; UnifiedReturnBlock mtspr 256, r2 blr This implements CodeGen/PowerPC/vec_br_cmp.ll. llvm-svn: 27804
-
Chris Lattner authored
llvm-svn: 27802
-
Chris Lattner authored
to optimize cases where it has to spill a lot llvm-svn: 27801
-
Chris Lattner authored
even/odd halves. Thanks to Nate telling me what's what. llvm-svn: 27793
-
Chris Lattner authored
vmuloub v5, v3, v2 vmuleub v2, v3, v2 vperm v2, v2, v5, v4 This implements CodeGen/PowerPC/vec_mul.ll. With this, v16i8 multiplies are 6.79x faster than before. Overall, UnitTests/Vector/multiplies.c is now 2.45x faster with LLVM than with GCC. Remove the 'integer multiplies' todo from the README file. llvm-svn: 27792
-
Evan Cheng authored
llvm-svn: 27790
-
Chris Lattner authored
li r5, lo16(LCPI1_0) lis r6, ha16(LCPI1_0) lvx v4, r6, r5 vmulouh v5, v3, v2 vmuleuh v2, v3, v2 vperm v2, v2, v5, v4 where v4 is: LCPI1_0: ; <16 x ubyte> .byte 2 .byte 3 .byte 18 .byte 19 .byte 6 .byte 7 .byte 22 .byte 23 .byte 10 .byte 11 .byte 26 .byte 27 .byte 14 .byte 15 .byte 30 .byte 31 This is 5.07x faster on the G5 (measured) than lowering to scalar code + loads/stores. llvm-svn: 27789
-
Chris Lattner authored
scalarize the sequence into 4 mullw's and a bunch of load/store traffic. This speeds up v4i32 multiplies 4.1x (measured) on a G5. This implements PowerPC/vec_mul.ll llvm-svn: 27788
-
Evan Cheng authored
llvm-svn: 27786
-
Evan Cheng authored
llvm-svn: 27784
-
Evan Cheng authored
llvm-svn: 27782
-