- Apr 17, 2006
-
-
Chris Lattner authored
llvm-svn: 27778
-
Chris Lattner authored
allows us to codegen functions as: _test_rol: vspltisw v2, -12 vrlw v2, v2, v2 blr instead of: _test_rol: mfvrsave r2, 256 mr r3, r2 mtvrsave r3 vspltisw v2, -12 vrlw v2, v2, v2 mtvrsave r2 blr Testcase here: CodeGen/PowerPC/vec_vrsave.ll llvm-svn: 27777
-
Chris Lattner authored
the vrsave register for the caller. This allows us to codegen a function as: _test_rol: mfspr r2, 256 mr r3, r2 mtspr 256, r3 vspltisw v2, -12 vrlw v2, v2, v2 mtspr 256, r2 blr instead of: _test_rol: mfspr r2, 256 oris r3, r2, 40960 mtspr 256, r3 vspltisw v0, -12 vrlw v2, v0, v0 mtspr 256, r2 blr llvm-svn: 27772
-
Chris Lattner authored
vspltisw v2, -12 vrlw v2, v2, v2 instead of: vspltisw v0, -12 vrlw v2, v0, v0 when a function is returning a value. llvm-svn: 27771
-
Chris Lattner authored
llvm-svn: 27770
-
Chris Lattner authored
llvm-svn: 27769
-
Chris Lattner authored
being a bit more clever, add support for odd splats from -31 to -17. llvm-svn: 27764
-
Chris Lattner authored
This implements vec_constants.ll:test_vsldoi and test_rol llvm-svn: 27760
-
Chris Lattner authored
llvm-svn: 27758
-
Chris Lattner authored
new patterns. llvm-svn: 27754
-
Chris Lattner authored
PowerPC/vec_constants.ll:test_29. llvm-svn: 27752
-
Chris Lattner authored
Effeciently codegen even splats in the range [-32,30]. This allows us to codegen <30,30,30,30> as: vspltisw v0, 15 vadduwm v2, v0, v0 instead of as a cp load. llvm-svn: 27750
-
Chris Lattner authored
if it can be implemented in 3 or fewer discrete altivec instructions, codegen it as such. This implements Regression/CodeGen/PowerPC/vec_perf_shuffle.ll llvm-svn: 27748
-
Chris Lattner authored
llvm-svn: 27746
-
Chris Lattner authored
llvm-svn: 27744
-
Chris Lattner authored
llvm-svn: 27742
-
Chris Lattner authored
of various 4-element vectors. llvm-svn: 27739
-
- Apr 16, 2006
-
-
Chris Lattner authored
one type (v4i32) so that we don't have to write patterns for each type, and so that more CSE opportunities are exposed. llvm-svn: 27731
-
Chris Lattner authored
Remove some done items from the todo list. llvm-svn: 27729
-
Chris Lattner authored
llvm-svn: 27726
-
Chris Lattner authored
go away when I start using evan's binop type canonicalizer llvm-svn: 27725
-
- Apr 15, 2006
-
-
Chris Lattner authored
llvm-svn: 27714
-
- Apr 14, 2006
-
-
Chris Lattner authored
separate functions, for simplicity and code clarity. llvm-svn: 27693
-
Chris Lattner authored
functions, which makes the code much cleaner :) llvm-svn: 27692
-
- Apr 13, 2006
-
-
Chris Lattner authored
tested by CodeGen/Generic/vector.ll llvm-svn: 27657
-
Chris Lattner authored
llvm-svn: 27654
-
Reid Spencer authored
llvm-svn: 27651
-
- Apr 12, 2006
-
-
Chris Lattner authored
different types. Codegen spltw(0x7FFFFFFF) and spltw(0x80000000) without a constant pool load, implementing PowerPC/vec_constants.ll:test1. This compiles: typedef float vf __attribute__ ((vector_size (16))); typedef int vi __attribute__ ((vector_size (16))); void test(vi *P1, vi *P2, vf *P3) { *P1 &= (vi){0x80000000,0x80000000,0x80000000,0x80000000}; *P2 &= (vi){0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF}; *P3 = vec_abs((vector float)*P3); } to: _test: mfspr r2, 256 oris r6, r2, 49152 mtspr 256, r6 vspltisw v0, -1 vslw v0, v0, v0 lvx v1, 0, r3 vand v1, v1, v0 stvx v1, 0, r3 lvx v1, 0, r4 vandc v1, v1, v0 stvx v1, 0, r4 lvx v1, 0, r5 vandc v0, v1, v0 stvx v0, 0, r5 mtspr 256, r2 blr instead of (with two constant pool entries): _test: mfspr r2, 256 oris r6, r2, 49152 mtspr 256, r6 li r6, lo16(LCPI1_0) lis r7, ha16(LCPI1_0) li r8, lo16(LCPI1_1) lis r9, ha16(LCPI1_1) lvx v0, r7, r6 lvx v1, 0, r3 vand v0, v1, v0 stvx v0, 0, r3 lvx v0, r9, r8 lvx v1, 0, r4 vand v1, v1, v0 stvx v1, 0, r4 lvx v1, 0, r5 vand v0, v1, v0 stvx v0, 0, r5 mtspr 256, r2 blr GCC produces (with 2 cp entries): _test: mfspr r0,256 stw r0,-4(r1) oris r0,r0,0xc00c mtspr 256,r0 lis r2,ha16(LC0) lis r9,ha16(LC1) la r2,lo16(LC0)(r2) lvx v0,0,r3 lvx v1,0,r5 la r9,lo16(LC1)(r9) lwz r12,-4(r1) lvx v12,0,r2 lvx v13,0,r9 vand v0,v0,v12 stvx v0,0,r3 vspltisw v0,-1 vslw v12,v0,v0 vandc v1,v1,v12 stvx v1,0,r5 lvx v0,0,r4 vand v0,v0,v13 stvx v0,0,r4 mtspr 256,r12 blr llvm-svn: 27624
-
Chris Lattner authored
Canonicalize BUILD_VECTOR's that match VSPLTI's into a single type for each form, eliminating a bunch of Pat patterns in the .td file and allowing us to CSE stuff more aggressively. This implements PowerPC/buildvec_canonicalize.ll:VSPLTI llvm-svn: 27614
-
Chris Lattner authored
each other. This implements CodeGen/PowerPC/vxor-canonicalize.ll llvm-svn: 27609
-
- Apr 11, 2006
-
-
Nate Begeman authored
llvm-svn: 27594
-
Nate Begeman authored
llvm-svn: 27593
-
Chris Lattner authored
llvm-svn: 27592
-
Jim Laskey authored
llvm-svn: 27588
-
Chris Lattner authored
doesn't say where they go :-/ llvm-svn: 27579
-
Chris Lattner authored
No functionality change. llvm-svn: 27577
-
- Apr 09, 2006
-
-
Chris Lattner authored
llvm-svn: 27544
-
Chris Lattner authored
llvm-svn: 27543
-
- Apr 08, 2006
-
-
Nate Begeman authored
letting the code generator handle them directly. llvm-svn: 27539
-
Chris Lattner authored
constant pool load. llvm-svn: 27538
-