Skip to content
  1. Apr 14, 2006
  2. Apr 13, 2006
  3. Apr 12, 2006
    • Evan Cheng's avatar
      All "integer" logical ops (pand, por, pxor) are now promoted to v2i64. · 92232307
      Evan Cheng authored
      Clean up and fix various logical ops issues.
      
      llvm-svn: 27633
      92232307
    • Chris Lattner's avatar
      Add a new way to match vector constants, which make it easier to bang bits of · 147e50e1
      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
      147e50e1
    • Chris Lattner's avatar
      Rename get_VSPLI_elt -> get_VSPLTI_elt · 74cf9ff7
      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
      74cf9ff7
    • Evan Cheng's avatar
      Promote v4i32, v8i16, v16i8 load to v2i64 load. · e2157c6e
      Evan Cheng authored
      llvm-svn: 27612
      e2157c6e
    • Chris Lattner's avatar
      Ensure that zero vectors are always v4i32, which forces them to CSE with · e318a757
      Chris Lattner authored
      each other.  This implements CodeGen/PowerPC/vxor-canonicalize.ll
      
      llvm-svn: 27609
      e318a757
    • Evan Cheng's avatar
      Various SSE2 conversion intrinsics · 29be057d
      Evan Cheng authored
      llvm-svn: 27603
      29be057d
    • Evan Cheng's avatar
      Added __builtin_ia32_storelv4si, __builtin_ia32_movqv4si, · 70c74a3c
      Evan Cheng authored
      __builtin_ia32_loadlv4si, __builtin_ia32_loaddqu, __builtin_ia32_storedqu.
      
      llvm-svn: 27599
      70c74a3c
  4. Apr 11, 2006
  5. Apr 10, 2006
Loading