Skip to content
  1. Feb 09, 2011
    • David Greene's avatar
      · b36195ab
      David Greene authored
      [AVX] Implement 256-bit vector lowering for INSERT_VECTOR_ELT.
      
      llvm-svn: 125187
      b36195ab
  2. Feb 08, 2011
    • David Greene's avatar
      · 10b0db1d
      David Greene authored
      [AVX] Implement BUILD_VECTOR lowering for 256-bit vectors.  For
      anything but the simplest of cases, lower a 256-bit BUILD_VECTOR by
      splitting it into 128-bit parts and recombining.
      
      llvm-svn: 125105
      10b0db1d
  3. Feb 07, 2011
    • David Greene's avatar
      · 79651c52
      David Greene authored
      [AVX] Insert/extract subvector lowering support.  This includes a
      couple of utility functions that will be used in other places for more
      AVX lowering.
      
      llvm-svn: 125029
      79651c52
  4. Feb 05, 2011
  5. Feb 04, 2011
    • David Greene's avatar
      · 653f1eed
      David Greene authored
      [AVX] Support VSINSERTF128 with more patterns and appropriate
      infrastructure.  This makes lowering 256-bit vectors to 128-bit
      vectors simple when 256-bit vector support is not available.
      
      llvm-svn: 124868
      653f1eed
  6. Feb 03, 2011
    • David Greene's avatar
      · c4da110f
      David Greene authored
      [AVX] VEXTRACTF128 support.  This commit includes patterns for
      matching EXTRACT_SUBVECTOR to VEXTRACTF128 along with support routines
      to examine and translate index values.  VINSERTF128 comes next.  With
      these two in place we can begin supporting more AVX operations as
      INSERT/EXTRACT can be used as a fallback when 256-bit support is not
      available.
      
      llvm-svn: 124797
      c4da110f
    • Rafael Espindola's avatar
      Fix PR9127 by reversing the operands even if they have more then one use. · d11311f2
      Rafael Espindola authored
      Reversing the operands allows us to fold, but doesn't force us to. Also, at
      this point the DAG is still being optimized, so the check for hasOneUse is not
      very precise.
      
      llvm-svn: 124773
      d11311f2
  7. Feb 01, 2011
  8. Jan 31, 2011
  9. Jan 27, 2011
    • David Greene's avatar
      · 34f7c0d8
      David Greene authored
      [AVX] Clean up the code to configure target lowering for AVX.  Specify
      how to lower more/new operations.  This is a prerequisite for adding
      additional AVX lowering.
      
      llvm-svn: 124447
      34f7c0d8
  10. Jan 26, 2011
    • David Greene's avatar
      · bab5e6ed
      David Greene authored
      [AVX] Add INSERT_SUBVECTOR and support it on x86.  This provides a
      default implementation for x86, going through the stack in a similr
      fashion to how the codegen implements BUILD_VECTOR.  Eventually this
      will get matched to VINSERTF128 if AVX is available.
      
      llvm-svn: 124307
      bab5e6ed
    • David Greene's avatar
      · b6f16119
      David Greene authored
      [AVX] Support EXTRACT_SUBVECTOR on x86.  This provides a default
      implementation of EXTRACT_SUBVECTOR for x86, going through the stack
      in a similr fashion to how the codegen implements BUILD_VECTOR.
      Eventually this will get matched to VEXTRACTF128 if AVX is available.
      
      llvm-svn: 124292
      b6f16119
    • NAKAMURA Takumi's avatar
      Target/X86: Tweak win64's tailcall. · 0cfdac07
      NAKAMURA Takumi authored
      llvm-svn: 124272
      0cfdac07
    • NAKAMURA Takumi's avatar
      Fix whitespace. · 9d29eff1
      NAKAMURA Takumi authored
      llvm-svn: 124270
      9d29eff1
  11. Jan 16, 2011
  12. Jan 10, 2011
  13. Jan 08, 2011
  14. Jan 07, 2011
  15. Jan 06, 2011
  16. Dec 23, 2010
    • Benjamin Kramer's avatar
      X86: Lower a select directly to a setcc_carry if possible. · 6020ed9d
      Benjamin Kramer authored
        int test(unsigned long a, unsigned long b) { return -(a < b); }
      compiles to
        _test:                              ## @test
          cmpq  %rsi, %rdi                  ## encoding: [0x48,0x39,0xf7]
          sbbl  %eax, %eax                  ## encoding: [0x19,0xc0]
          ret                               ## encoding: [0xc3]
      instead of
        _test:                              ## @test
          xorl  %ecx, %ecx                  ## encoding: [0x31,0xc9]
          cmpq  %rsi, %rdi                  ## encoding: [0x48,0x39,0xf7]
          movl  $-1, %eax                   ## encoding: [0xb8,0xff,0xff,0xff,0xff]
          cmovael %ecx, %eax                ## encoding: [0x0f,0x43,0xc1]
          ret                               ## encoding: [0xc3]
      
      llvm-svn: 122451
      6020ed9d
  17. Dec 21, 2010
  18. Dec 20, 2010
  19. Dec 19, 2010
  20. Dec 17, 2010
  21. Dec 10, 2010
    • Nate Begeman's avatar
      Formalize the notion that AVX and SSE are non-overlapping extensions from the... · 8b08f523
      Nate Begeman authored
      Formalize the notion that AVX and SSE are non-overlapping extensions from the compiler's point of view.  Per email discussion, we either want to always use VEX-prefixed instructions or never use them, and are taking "HasAVX" to mean "Always use VEX".  Passing -mattr=-avx,+sse42 should serve to restore legacy SSE support when desirable.
      
      llvm-svn: 121439
      8b08f523
Loading