Skip to content
  1. Jan 03, 2012
  2. Jan 02, 2012
    • Craig Topper's avatar
      Miscellaneous shuffle lowering cleanup. No functional changes. Primarily... · 5bacb7e9
      Craig Topper authored
      Miscellaneous shuffle lowering cleanup. No functional changes. Primarily converting the indexing loops to unsigned to be consistent across functions.
      
      llvm-svn: 147430
      5bacb7e9
    • Craig Topper's avatar
      Make CanXFormVExtractWithShuffleIntoLoad reject loads with multiple uses. Also... · 53d55964
      Craig Topper authored
      Make CanXFormVExtractWithShuffleIntoLoad reject loads with multiple uses. Also make it return false if there's not even a load at all. This makes the code better match the code in DAGCombiner that it tries to match. These two changes prevent some cases where vector_shuffles were making it to instruction selection and causing the older shuffle selection code to be triggered. Also needed to fix a bad pattern that this change exposed. This is the first step towards getting rid of the old shuffle selection support. No test cases yet because there's no way to tell whether a shuffle was handled in the legalize stage or at instruction selection.
      
      llvm-svn: 147428
      53d55964
    • Nadav Rotem's avatar
      · 6c7a0e6c
      Nadav Rotem authored
      Optimize the sequence blend(sign_extend(x)) to blend(shl(x)) since SSE blend instructions only look at the highest bit.
      
      llvm-svn: 147426
      6c7a0e6c
  3. Jan 01, 2012
  4. Dec 30, 2011
  5. Dec 29, 2011
  6. Dec 28, 2011
  7. Dec 27, 2011
  8. Dec 25, 2011
  9. Dec 24, 2011
    • Rafael Espindola's avatar
      Section relative fixups are a coff concept, not a x86 one. Replace the · a56ab0ed
      Rafael Espindola authored
      x86 specific reloc_coff_secrel32 with a generic FK_SecRel_4.
      
      llvm-svn: 147252
      a56ab0ed
    • Chandler Carruth's avatar
      Use standard promotion for i8 CTTZ nodes and i8 CTLZ nodes when the · a3d54fe0
      Chandler Carruth authored
      LZCNT instructions are available. Force promotion to i32 to get
      a smaller encoding since the fix-ups necessary are just as complex for
      either promoted type
      
      We can't do standard promotion for CTLZ when lowering through BSR
      because it results in poor code surrounding the 'xor' at the end of this
      instruction. Essentially, if we promote the entire CTLZ node to i32, we
      end up doing the xor on a 32-bit CTLZ implementation, and then
      subtracting appropriately to get back to an i8 value. Instead, our
      custom logic just uses the knowledge of the incoming size to compute
      a perfect xor. I'd love to know of a way to fix this, but so far I'm
      drawing a blank. I suspect the legalizer could be more clever and/or it
      could collude with the DAG combiner, but how... ;]
      
      llvm-svn: 147251
      a3d54fe0
Loading