Skip to content
  1. Jul 16, 2012
  2. Jul 15, 2012
    • Nadav Rotem's avatar
      Fix a bug in the scalarization of BUILD_VECTOR. BUILD_VECTOR elements may be... · 3050e071
      Nadav Rotem authored
      Fix a bug in the scalarization of BUILD_VECTOR. BUILD_VECTOR elements may be wider than the output element type. Make sure to trunc them if needed.
      
      Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
      
      llvm-svn: 160235
      3050e071
    • Nadav Rotem's avatar
      Teach getTargetVShiftNode about TargetConstant nodes. · eec74c72
      Nadav Rotem authored
      llvm-svn: 160234
      eec74c72
    • Nadav Rotem's avatar
      Rename VBROADCASTSDrm into VBROADCASTSDYrm to match the naming convention. · ee3552f8
      Nadav Rotem authored
      Allow the folding of vbroadcastRR to vbroadcastRM, where the memory operand is a spill slot.
      
      PR12782.
      
      Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
      
      llvm-svn: 160230
      ee3552f8
    • Nadav Rotem's avatar
      Refactor the code that checks that all operands of a node are UNDEFs. · a62368c9
      Nadav Rotem authored
      Add a micro-optimization to getNode of CONCAT_VECTORS when both operands are undefs.
      Can't find a testcase for this because VECTOR_SHUFFLE already handles undef operands, but Duncan suggested that we add this.
      
      Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
      
      llvm-svn: 160229
      a62368c9
    • Chandler Carruth's avatar
      Reapply r160194, switching to use LV information for finding local kills. · db5536f0
      Chandler Carruth authored
      The notable fix is to look at any dependencies attached to the kill
      instruction (or other instructions between MI nad the kill) where the
      dependencies are specific to the register in question.
      
      The old code implicitly handled this by rejecting the transform if *any*
      other uses were found within the block, but after the start point. The
      new code directly finds the kill, and has to re-use the existing
      dependency scan to check for non-kill uses.
      
      This was caught by self-host, but I found the bug via inspection and use
      of absurd assert scaffolding to compute the kills in two ways and
      compare them. So I have no useful testcase for this other than
      "bootstrap". I'd work harder to reduce a test case if this particular
      code were likely to live for a long time.
      
      Thanks to Benjamin Kramer for reviewing the fix itself.
      
      llvm-svn: 160228
      db5536f0
    • Nadav Rotem's avatar
      AVX: Fix a bug in getTargetVShiftNode. The shift amount has to be a 128bit... · 9466e81d
      Nadav Rotem authored
      AVX: Fix a bug in getTargetVShiftNode. The shift amount has to be a 128bit vector with the same element type as the input vector.
      This is needed because of the patterns we have for the VP[SLL/SRA/SRL][W/D/Q] instructions.
      
      llvm-svn: 160222
      9466e81d
  3. Jul 14, 2012
Loading