Skip to content
  1. Jul 29, 2011
  2. Jul 28, 2011
  3. Jul 27, 2011
  4. Jul 26, 2011
  5. Jul 25, 2011
  6. Jul 24, 2011
  7. Jul 22, 2011
  8. Jul 21, 2011
    • Bruno Cardoso Lopes's avatar
      - Register v16i16 as valid VR256 register class · 178fb406
      Bruno Cardoso Lopes authored
      - Add more bitcasts for v16i16
      - Since 135661 and 135662 already added the splat logic,
      just add one more splat test for v16i16
      
      llvm-svn: 135663
      178fb406
    • Bruno Cardoso Lopes's avatar
      Add support for 256-bit versions of VPERMIL instruction. This is a new · b878caa5
      Bruno Cardoso Lopes authored
      instruction introduced in AVX, which can operate on 128 and 256-bit vectors.
      It considers a 256-bit vector as two independent 128-bit lanes. It can permute
      any 32 or 64 elements inside a lane, and restricts the second lane to
      have the same permutation of the first one. With the improved splat support
      introduced early today, adding codegen for this instruction enable more
      efficient 256-bit code:
      
      Instead of:
        vextractf128  $0, %ymm0, %xmm0
        punpcklbw %xmm0, %xmm0
        punpckhbw %xmm0, %xmm0
        vinsertf128 $0, %xmm0, %ymm0, %ymm1
        vinsertf128 $1, %xmm0, %ymm1, %ymm0
        vextractf128  $1, %ymm0, %xmm1
        shufps  $1, %xmm1, %xmm1
        movss %xmm1, 28(%rsp)
        movss %xmm1, 24(%rsp)
        movss %xmm1, 20(%rsp)
        movss %xmm1, 16(%rsp)
        vextractf128  $0, %ymm0, %xmm0
        shufps  $1, %xmm0, %xmm0
        movss %xmm0, 12(%rsp)
        movss %xmm0, 8(%rsp)
        movss %xmm0, 4(%rsp)
        movss %xmm0, (%rsp)
        vmovaps (%rsp), %ymm0
      We get:
        vextractf128  $0, %ymm0, %xmm0
        punpcklbw %xmm0, %xmm0
        punpckhbw %xmm0, %xmm0
        vinsertf128 $0, %xmm0, %ymm0, %ymm1
        vinsertf128 $1, %xmm0, %ymm1, %ymm0
        vpermilps $85, %ymm0, %ymm0
      
      llvm-svn: 135662
      b878caa5
  9. Jul 20, 2011
  10. Jul 19, 2011
    • Devang Patel's avatar
      · 9ab3cac6
      Devang Patel authored
      Revert r135423.
      
      llvm-svn: 135454
      9ab3cac6
  11. Jul 18, 2011
    • Devang Patel's avatar
      · 4dc76f24
      Devang Patel authored
      During bottom up fast-isel, instructions emitted to materalize registers are at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases.
      [take 2]
      
      llvm-svn: 135423
      4dc76f24
    • Bruno Cardoso Lopes's avatar
      Add AVX 128-bit sqrt versions · 4208cace
      Bruno Cardoso Lopes authored
      llvm-svn: 135404
      4208cace
    • Nick Lewycky's avatar
      Delete empty unused file. · d8921f93
      Nick Lewycky authored
      llvm-svn: 135379
      d8921f93
  12. Jul 16, 2011
    • Bruno Cardoso Lopes's avatar
      Add AVX 128-bit patterns for sint_to_fp · 44800401
      Bruno Cardoso Lopes authored
      llvm-svn: 135332
      44800401
    • Bruno Cardoso Lopes's avatar
      Fix a couple of things: · 8df9cfc2
      Bruno Cardoso Lopes authored
      1) Make non-legal 256-bit loads to be promoted to v4i64. This lets us
      canonize the loads and handle things the same way we use to handle
      for 128-bit registers. Despite of what one of the removed comments
      explained, the load promotion would not mess with VPERM, it's only a
      matter of doing the appropriate bitcasts when this instructions comes
      to be introduced. Also make LOAD v8i32 legal.
      
      2) Doing 1) exposed two bugs:
      - v4i64 was being promoted to itself for several opcodes (introduced
      in r124447 by David Greene) causing endless recursion and the stack to
      explode.
      - there was no support for allOnes BUILD_VECTORs and ANDNP would fail to
      match because it was generating early target constant pools during
      lowering.
      
      3) The testcases are already checked-in, doing 1) exposed the
      bugs in the current testcases.
      
      4) Tidy up code to be more clear and explicit about AVX.
      
      llvm-svn: 135313
      8df9cfc2
  13. Jul 14, 2011
Loading