Skip to content
  1. Apr 04, 2006
  2. Apr 03, 2006
  3. Apr 02, 2006
    • Andrew Lenharth's avatar
      This should be a win of every arch · 015eaf5f
      Andrew Lenharth authored
      llvm-svn: 27364
      015eaf5f
    • Andrew Lenharth's avatar
      This makes McCat/12-IOtest go 8x faster or so · 444bdb06
      Andrew Lenharth authored
      llvm-svn: 27363
      444bdb06
    • Andrew Lenharth's avatar
      This will be needed soon · 01bd5523
      Andrew Lenharth authored
      llvm-svn: 27362
      01bd5523
    • Chris Lattner's avatar
      add a note · acf1fc8a
      Chris Lattner authored
      llvm-svn: 27360
      acf1fc8a
    • Chris Lattner's avatar
      c5287c0e
    • Chris Lattner's avatar
      relax assertion · 6c1321ca
      Chris Lattner authored
      llvm-svn: 27358
      6c1321ca
    • Chris Lattner's avatar
      Allow targets to compute masked bits for intrinsics. · e6025525
      Chris Lattner authored
      llvm-svn: 27357
      e6025525
    • Chris Lattner's avatar
      Add a little dag combine to compile this: · 4993249a
      Chris Lattner authored
      int %AreSecondAndThirdElementsBothNegative(<4 x float>* %in) {
      entry:
              %tmp1 = load <4 x float>* %in           ; <<4 x float>> [#uses=1]
              %tmp = tail call int %llvm.ppc.altivec.vcmpgefp.p( int 1, <4 x float> < float 0x7FF8000000000000, float 0.000000e+00, float 0.000000e+00, float 0x7FF8000000000000 >, <4 x float> %tmp1 )           ; <int> [#uses=1]
              %tmp = seteq int %tmp, 0                ; <bool> [#uses=1]
              %tmp3 = cast bool %tmp to int           ; <int> [#uses=1]
              ret int %tmp3
      }
      
      into this:
      
      _AreSecondAndThirdElementsBothNegative:
              mfspr r2, 256
              oris r4, r2, 49152
              mtspr 256, r4
              li r4, lo16(LCPI1_0)
              lis r5, ha16(LCPI1_0)
              lvx v0, 0, r3
              lvx v1, r5, r4
              vcmpgefp. v0, v1, v0
              mfcr r3, 2
              rlwinm r3, r3, 27, 31, 31
              mtspr 256, r2
              blr
      
      instead of this:
      
      _AreSecondAndThirdElementsBothNegative:
              mfspr r2, 256
              oris r4, r2, 49152
              mtspr 256, r4
              li r4, lo16(LCPI1_0)
              lis r5, ha16(LCPI1_0)
              lvx v0, 0, r3
              lvx v1, r5, r4
              vcmpgefp. v0, v1, v0
              mfcr r3, 2
              rlwinm r3, r3, 27, 31, 31
              xori r3, r3, 1
              cntlzw r3, r3
              srwi r3, r3, 5
              mtspr 256, r2
              blr
      
      llvm-svn: 27356
      4993249a
    • Chris Lattner's avatar
      vector casts of casts are eliminable. Transform this: · caba72b6
      Chris Lattner authored
              %tmp = cast <4 x uint> %tmp to <4 x int>                ; <<4 x int>> [#uses=1]
              %tmp = cast <4 x int> %tmp to <4 x float>               ; <<4 x float>> [#uses=1]
      
      into:
      
              %tmp = cast <4 x uint> %tmp to <4 x float>              ; <<4 x float>> [#uses=1]
      
      llvm-svn: 27355
      caba72b6
    • Chris Lattner's avatar
      vector casts never reinterpret bits · 7ee10dec
      Chris Lattner authored
      llvm-svn: 27354
      7ee10dec
    • Chris Lattner's avatar
      Allow transforming this: · ebca476b
      Chris Lattner authored
              %tmp = cast <4 x uint>* %testData to <4 x int>*         ; <<4 x int>*> [#uses=1]
              %tmp = load <4 x int>* %tmp             ; <<4 x int>> [#uses=1]
      
      to this:
      
              %tmp = load <4 x uint>* %testData               ; <<4 x uint>> [#uses=1]
              %tmp = cast <4 x uint> %tmp to <4 x int>                ; <<4 x int>> [#uses=1]
      
      llvm-svn: 27353
      ebca476b
    • Chris Lattner's avatar
      Turn altivec lvx/stvx intrinsics into loads and stores. This allows the · f42d0aed
      Chris Lattner authored
      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
      
      llvm-svn: 27352
      f42d0aed
    • Chris Lattner's avatar
      Remove done item · 80fdc1eb
      Chris Lattner authored
      llvm-svn: 27351
      80fdc1eb
Loading