Skip to content
  1. Apr 18, 2006
    • Chris Lattner's avatar
      Implement an important entry from README_ALTIVEC: · 9754d142
      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
      9754d142
  2. Apr 12, 2006
    • 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
  3. Apr 08, 2006
  4. Apr 07, 2006
  5. Apr 06, 2006
  6. Apr 04, 2006
  7. Apr 02, 2006
  8. Mar 31, 2006
  9. Mar 28, 2006
  10. Mar 26, 2006
  11. Mar 25, 2006
    • Chris Lattner's avatar
      Codegen things like: · 2771e2c9
      Chris Lattner authored
       <int -1, int -1, int -1, int -1>
      and
       <int 65537, int 65537, int 65537, int 65537>
      
      Using things like:
        vspltisb v0, -1
      and:
        vspltish v0, 1
      
      instead of using constant pool loads.
      
      This implements CodeGen/PowerPC/vec_splat.ll:splat_imm_i{32|16}.
      
      llvm-svn: 27106
      2771e2c9
  12. Mar 24, 2006
  13. Mar 22, 2006
    • Chris Lattner's avatar
      When possible, custom lower 32-bit SINT_TO_FP to this: · 4a66d694
      Chris Lattner authored
      _foo2:
              extsw r2, r3
              std r2, -8(r1)
              lfd f0, -8(r1)
              fcfid f0, f0
              frsp f1, f0
              blr
      
      instead of this:
      
      _foo2:
              lis r2, ha16(LCPI2_0)
              lis r4, 17200
              xoris r3, r3, 32768
              stw r3, -4(r1)
              stw r4, -8(r1)
              lfs f0, lo16(LCPI2_0)(r2)
              lfd f1, -8(r1)
              fsub f0, f1, f0
              frsp f1, f0
              blr
      
      This speeds up Misc/pi from 2.44s->2.09s with LLC and from 3.01->2.18s
      with llcbeta (16.7% and 38.1% respectively).
      
      llvm-svn: 26943
      4a66d694
  14. Mar 20, 2006
  15. Mar 19, 2006
  16. Mar 14, 2006
  17. Mar 01, 2006
  18. Feb 22, 2006
  19. Feb 07, 2006
  20. Jan 31, 2006
  21. Jan 28, 2006
  22. Jan 27, 2006
  23. Jan 25, 2006
    • Nate Begeman's avatar
      First part of bug 680: · e74795cd
      Nate Begeman authored
      Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same
      way as everything else.
      
      llvm-svn: 25606
      e74795cd
  24. Jan 10, 2006
  25. Dec 20, 2005
  26. Dec 13, 2005
  27. Dec 06, 2005
  28. Nov 17, 2005
    • Chris Lattner's avatar
      Add an initial hack at legalizing GlobalAddress into the appropriate nodes · 595088aa
      Chris Lattner authored
      on Darwin to remove smarts from the isel.  This is currently disabled by
      default (uncomment setOperationAction(ISD::GlobalAddress to enable it).
      tblgen needs to become smarter about tglobaladdr nodes and bigger patterns
      needed to be added to the .td file.  However, we can currently emit stuff like
      this:  :)
      
              li r2, lo16(L_x$non_lazy_ptr)
              lis r3, ha16(L_x$non_lazy_ptr)
              lwzx r2, r3, r2
      
      The obvious improvements will follow.
      
      llvm-svn: 24390
      595088aa
  29. Oct 19, 2005
  30. Oct 16, 2005
Loading