Skip to content
  1. Feb 18, 2011
  2. Feb 17, 2011
  3. Feb 16, 2011
  4. Feb 15, 2011
  5. Feb 14, 2011
  6. Feb 13, 2011
    • Chris Lattner's avatar
      Enhance ComputeMaskedBits to know that aligned frameindexes · 46c01a30
      Chris Lattner authored
      have their low bits set to zero.  This allows us to optimize
      out explicit stack alignment code like in stack-align.ll:test4 when
      it is redundant.
      
      Doing this causes the code generator to start turning FI+cst into
      FI|cst all over the place, which is general goodness (that is the
      canonical form) except that various pieces of the code generator
      don't handle OR aggressively.  Fix this by introducing a new
      SelectionDAG::isBaseWithConstantOffset predicate, and using it
      in places that are looking for ADD(X,CST).  The ARM backend in
      particular was missing a lot of addressing mode folding opportunities
      around OR.
      
      llvm-svn: 125470
      46c01a30
    • Reid Kleckner's avatar
      Add encodings and mnemonics for FXSAVE64 and FXRSTOR64. · 2406b7d1
      Reid Kleckner authored
      These are just FXSAVE and FXRSTOR with REX.W prefixes.  These versions use
      64-bit pointer values instead of 32-bit pointer values in the memory map they
      dump and restore.
      
      llvm-svn: 125446
      2406b7d1
  7. Feb 12, 2011
  8. Feb 11, 2011
    • Nate Begeman's avatar
      Implement sdiv & udiv for <4 x i16> and <8 x i8> NEON vector types. · fa62d504
      Nate Begeman authored
      This avoids moving each element to the integer register file and calling __divsi3 etc. on it.
      
      llvm-svn: 125402
      fa62d504
    • Rafael Espindola's avatar
      Remove std::string version of getNameWithPrefix. · 34b59389
      Rafael Espindola authored
      llvm-svn: 125363
      34b59389
    • Evan Cheng's avatar
      Fix buggy fcopysign lowering. · 2da1c959
      Evan Cheng authored
      This
      define float @foo(float %x, float %y) nounwind readnone {
      entry:
        %0 = tail call float @copysignf(float %x, float %y) nounwind readnone
        ret float %0
      }
      
      Was compiled to:
          vmov     s0, r1
          bic      r0, r0, #-2147483648
          vmov     s1, r0
          vcmpe.f32    s0, #0
          vmrs         apsr_nzcv, fpscr
          it           lt
          vneglt.f32   s1, s1
          vmov         r0, s1
          bx           lr
      
      This fails to copy the sign of -0.0f because it's lost during the float to int
      conversion. Also, it's sub-optimal when the inputs are in GPR registers.
      
      Now it uses integer and + or operations when it's profitable. And it's correct!
          lsrs    r1, r1, #31
          bfi     r0, r1, #31, #1
          bx      lr
      rdar://8984306
      
      llvm-svn: 125357
      2da1c959
    • David Greene's avatar
      · 79827a5a
      David Greene authored
      [AVX] Implement 256-bit vector lowering for SCALAR_TO_VECTOR.  This
      largely completes support for 128-bit fallback lowering for code that
      is not 256-bit ready.
      
      llvm-svn: 125315
      79827a5a
  9. Feb 10, 2011
  10. Feb 09, 2011
Loading