Skip to content
  1. May 25, 2012
  2. Apr 27, 2012
    • Benjamin Kramer's avatar
      X86: Don't emit conditional floating point moves on when targeting pre-pentiumpro architectures. · 913da4b2
      Benjamin Kramer authored
      * Model FPSW (the FPU status word) as a register.
      * Add ISel patterns for the FUCOM*, FNSTSW and SAHF instructions.
      * During Legalize/Lowering, build a node sequence to transfer the comparison
      result from FPSW into EFLAGS. If you're wondering about the right-shift: That's
      an implicit sub-register extraction (%ax -> %ah) which is handled later on by
      the instruction selector.
      
      Fixes PR6679. Patch by Christoph Erhardt!
      
      llvm-svn: 155704
      913da4b2
  3. Apr 16, 2012
  4. Apr 15, 2012
  5. Apr 14, 2012
  6. Apr 11, 2012
    • Nadav Rotem's avatar
      Reapply 154396 after fixing a test. · 9bc178ac
      Nadav Rotem authored
      Original message:
      Modify the code that lowers shuffles to blends from using blendvXX to vblendXX.
      blendV uses a register for the selection while Vblend uses an immediate.
      On sandybridge they still have the same latency and execute on the same execution ports.
      
      llvm-svn: 154483
      9bc178ac
  7. Apr 10, 2012
  8. Apr 09, 2012
  9. Apr 04, 2012
    • Rafael Espindola's avatar
      Always compute all the bits in ComputeMaskedBits. · ba0a6cab
      Rafael Espindola authored
      This allows us to keep passing reduced masks to SimplifyDemandedBits, but
      know about all the bits if SimplifyDemandedBits fails. This allows instcombine
      to simplify cases like the one in the included testcase.
      
      llvm-svn: 154011
      ba0a6cab
  10. Feb 28, 2012
  11. Feb 25, 2012
    • NAKAMURA Takumi's avatar
      Target/X86: Fix assertion failures and warnings caused by r151382 _ftol2... · bdf94879
      NAKAMURA Takumi authored
      Target/X86: Fix assertion failures and warnings caused by r151382 _ftol2 lowering for i386-*-win32 targets. Patch by Joe Groff.
      
      [Joe Groff] Hi everyone. My previous patch applied as r151382 had a few problems:
      Clang raised a warning, and X86 LowerOperation would assert out for
      fptoui f64 to i32 because it improperly lowered to an illegal
      BUILD_PAIR. Here's a patch that addresses these issues. Let me know if
      any other changes are necessary. Thanks.
      
      llvm-svn: 151432
      bdf94879
  12. Feb 24, 2012
  13. Feb 22, 2012
  14. Feb 19, 2012
  15. Feb 05, 2012
  16. Feb 02, 2012
  17. Feb 01, 2012
  18. Jan 30, 2012
  19. Jan 23, 2012
  20. Jan 22, 2012
  21. Jan 19, 2012
  22. Jan 08, 2012
  23. Jan 05, 2012
    • Victor Umansky's avatar
      Peephole optimization of ptest-conditioned branch in X86 arch. Performs... · 9255b6d9
      Victor Umansky authored
      Peephole optimization of ptest-conditioned branch in X86 arch. Performs instruction combining of sequences generated by ptestz/ptestc intrinsics to ptest+jcc pair for SSE and AVX.
      
      Testing: passed 'make check' including LIT tests for all sequences being handled (both SSE and AVX)
      
      Reviewers: Evan Cheng, David Blaikie, Bruno Lopes, Elena Demikhovsky, Chad Rosier, Anton Korobeynikov
      llvm-svn: 147601
      9255b6d9
  24. Jan 01, 2012
  25. Dec 24, 2011
    • Chandler Carruth's avatar
      Switch the lowering of CTLZ_ZERO_UNDEF from a .td pattern back to the · 7e9453e9
      Chandler Carruth authored
      X86ISelLowering C++ code. Because this is lowered via an xor wrapped
      around a bsr, we want the dagcombine which runs after isel lowering to
      have a chance to clean things up. In particular, it is very common to
      see code which looks like:
      
        (sizeof(x)*8 - 1) ^ __builtin_clz(x)
      
      Which is trying to compute the most significant bit of 'x'. That's
      actually the value computed directly by the 'bsr' instruction, but if we
      match it too late, we'll get completely redundant xor instructions.
      
      The more naive code for the above (subtracting rather than using an xor)
      still isn't handled correctly due to the dagcombine getting confused.
      
      Also, while here fix an issue spotted by inspection: we should have been
      expanding the zero-undef variants to the normal variants when there is
      an 'lzcnt' instruction. Do so, and test for this. We don't want to
      generate unnecessary 'bsr' instructions.
      
      These two changes fix some regressions in encoding and decoding
      benchmarks. However, there is still a *lot* to be improve on in this
      type of code.
      
      llvm-svn: 147244
      7e9453e9
  26. Dec 17, 2011
  27. Dec 16, 2011
  28. Dec 11, 2011
  29. Dec 06, 2011
  30. Nov 30, 2011
  31. Nov 28, 2011
  32. Nov 26, 2011
Loading