Skip to content
  1. Apr 02, 2012
  2. Apr 01, 2012
    • Nadav Rotem's avatar
      This commit contains a few changes that had to go in together. · b0783508
      Nadav Rotem authored
      1. Simplify xor/and/or (bitcast(A), bitcast(B)) -> bitcast(op (A,B))
         (and also scalar_to_vector).
      
      2. Xor/and/or are indifferent to the swizzle operation (shuffle of one src).
         Simplify xor/and/or (shuff(A), shuff(B)) -> shuff(op (A, B))
      
      3. Optimize swizzles of shuffles:  shuff(shuff(x, y), undef) -> shuff(x, y).
      
      4. Fix an X86ISelLowering optimization which was very bitcast-sensitive.
      
      Code which was previously compiled to this:
      
      movd    (%rsi), %xmm0
      movdqa  .LCPI0_0(%rip), %xmm2
      pshufb  %xmm2, %xmm0
      movd    (%rdi), %xmm1
      pshufb  %xmm2, %xmm1
      pxor    %xmm0, %xmm1
      pshufb  .LCPI0_1(%rip), %xmm1
      movd    %xmm1, (%rdi)
      ret
      
      Now compiles to this:
      
      movl    (%rsi), %eax
      xorl    %eax, (%rdi)
      ret
      
      llvm-svn: 153848
      b0783508
    • Lang Hames's avatar
      Fix typo. · 652f2127
      Lang Hames authored
      llvm-svn: 153846
      652f2127
    • Andrew Trick's avatar
      misched: Add finalizeScheduler to complete the target interface. · 779b32a4
      Andrew Trick authored
      llvm-svn: 153827
      779b32a4
  3. Mar 31, 2012
  4. Mar 30, 2012
  5. Mar 29, 2012
  6. Mar 28, 2012
  7. Mar 27, 2012
  8. Mar 26, 2012
  9. Mar 24, 2012
  10. Mar 23, 2012
  11. Mar 22, 2012
  12. Mar 21, 2012
Loading