- 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
aggressive in some cases where LLVMGCC 4 is inserting casts for no reason. This implements InstCombine/cast.ll:test27/28. llvm-svn: 27620
-
Reid Spencer authored
llvm-svn: 27617
-
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
-
Evan Cheng authored
llvm-svn: 27612
-
Chris Lattner authored
each other. This implements CodeGen/PowerPC/vxor-canonicalize.ll llvm-svn: 27609
-
Evan Cheng authored
llvm-svn: 27606
-
Chris Lattner authored
Implement support for the formal_arguments node. To get this, targets shouldcustom legalize it and remove their XXXTargetLowering::LowerArguments overload llvm-svn: 27604
-
Evan Cheng authored
llvm-svn: 27603
-
Chris Lattner authored
getNode do it. This fixes CodeGen/Generic/2006-04-11-vecload.ll llvm-svn: 27602
-
Evan Cheng authored
__builtin_ia32_loadlv4si, __builtin_ia32_loaddqu, __builtin_ia32_storedqu. llvm-svn: 27599
-
- Apr 11, 2006
-
-
Nate Begeman authored
llvm-svn: 27594
-
Nate Begeman authored
llvm-svn: 27593
-
Chris Lattner authored
llvm-svn: 27592
-
Evan Cheng authored
later. llvm-svn: 27591
-
Evan Cheng authored
llvm-svn: 27590
-
Jim Laskey authored
llvm-svn: 27588
-
Evan Cheng authored
llvm-svn: 27587
-
Evan Cheng authored
llvm-svn: 27586
-
Chris Lattner authored
llvm-svn: 27580
-
Chris Lattner authored
doesn't say where they go :-/ llvm-svn: 27579
-
Chris Lattner authored
llvm-svn: 27578
-
Chris Lattner authored
No functionality change. llvm-svn: 27577
-
Evan Cheng authored
llvm-svn: 27575
-
Jim Laskey authored
llvm-svn: 27574
-
Chris Lattner authored
llvm-svn: 27573
-
Chris Lattner authored
llvm-svn: 27571
-
Evan Cheng authored
llvm-svn: 27569
-
- Apr 10, 2006
-
-
Chris Lattner authored
llvm-svn: 27567
-
Evan Cheng authored
llvm-svn: 27565
-
Evan Cheng authored
llvm-svn: 27564
-
Evan Cheng authored
llvm-svn: 27563
-
Evan Cheng authored
llvm-svn: 27562
-
Andrew Lenharth authored
are visible to analysis as intrinsics. That is, make sure someone doesn't pass free around by address in some struct (as happens in say 176.gcc). This doesn't get rid of any indirect calls, just ensure calls to free and malloc are always direct. llvm-svn: 27560
-
Evan Cheng authored
llvm-svn: 27559
-
Evan Cheng authored
llvm-svn: 27556
-
Evan Cheng authored
llvm-svn: 27555
-
Evan Cheng authored
llvm-svn: 27554
-
- Apr 09, 2006
-
-
Chris Lattner authored
llvm-svn: 27544
-
Chris Lattner authored
llvm-svn: 27543
-