1. May 25, 2020
    • Simon Pilgrim's avatar
      [X86][AVX] Fold extract_subvector(broadcast(x),c) -> extract_subvector(broadcast(x),0) iff c != 0 · e508d643
      Simon Pilgrim authored
      If we're extracting an upper subvector from a broadcast we're better off extracting the lowest subvector instead as it avoids an actual extract instruction and might help SimplifyDemandedVectorElts further simplify the code.
      e508d643
    • Sanjay Patel's avatar
      [Pass Manager] remove EarlyCSE as clean-up for VectorCombine · 57bb4787
      Sanjay Patel authored
      EarlyCSE was added with D75145, but the motivating test is
      not regressed by removing the extra pass now. That might be
      because VectorCombine altered the way it processes instructions,
      or it might be from (re)moving VectorCombine in the pipeline.
      
      The extra round of EarlyCSE appears to cost approximately
      0.26% in compile-time as discussed in D80236, so we need some
      evidence to justify its inclusion here, but we do not have
      that (yet).
      
      I suspect that between SLP and VectorCombine, we are creating
      patterns that InstCombine and/or codegen are not prepared for,
      but we will need to reduce those examples and include them as
      PhaseOrdering and/or test-suite benchmarks.
      57bb4787
    • Florian Hahn's avatar
      [LV] Either get invariant condition OR vector condition. · 0deab8a5
      Florian Hahn authored
      Currently we unconditionally get the first lane of the condition
      operand, even if we later use the full vector condition. This can result
      in some unnecessary instructions being generated.
      
      Suggested as follow-up in D80219.
      0deab8a5
  2. May 24, 2020