Skip to content
  1. Feb 14, 2012
  2. Feb 13, 2012
  3. Feb 12, 2012
    • Nadav Rotem's avatar
      · 34ca89af
      Nadav Rotem authored
      This patch addresses the problem of poor code generation for the zext
      v8i8 -> v8i32 on AVX machines. The codegen often scalarizes ANY_EXTEND nodes.
      The DAGCombiner has two optimizations that can mitigate the problem. First,
      if all of the operands of a BUILD_VECTOR node are extracted from an ZEXT/ANYEXT
      nodes, then it is possible to create a new simplified BUILD_VECTOR which uses
      UNDEFS/ZERO values to eliminate the scalar ZEXT/ANYEXT nodes.
      Second, another dag combine optimization lowers BUILD_VECTOR into a shuffle
      vector instruction.
      
      In the case of zext v8i8->v8i32 on AVX, a value in an XMM register is to be
      shuffled into a wide YMM register.
      
      This patch modifes the second optimization and allows the creation of
      shuffle vectors even when the newly generated vector and the original vector
      from which we extract the values are of different types.
      
      llvm-svn: 150340
      34ca89af
  4. Feb 11, 2012
  5. Feb 10, 2012
  6. Feb 09, 2012
  7. Feb 08, 2012
Loading