llvm-project
d79d9b8f - [SLP]Change the insertion point for outside-block-used nodes and prevec phi operand gathers

Commit
34 days ago
[SLP]Change the insertion point for outside-block-used nodes and prevec phi operand gathers Need to set the insertion point for (non-schedulable) vector node after the last instruction in the node to avoid def-use breakage. But it also causes miscompilation with gather/buildvector operands of the phi nodes, used in the same phi only in the block. These nodes supposed to be inserted at the end of the block and after changing the insertion point for the non-schedulable vec block, it also may break def-use dependencies. Need to prevector such nodes, to emit them as early as possible, so the vectorized nodes are inserted before these nodes. Fixes #139728 Reviewers: hiraditya, HanKuanChen, RKSimon Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/139917
Author
Parents
  • llvm
    • lib/Transforms/Vectorize
      • File
        SLPVectorizer.cpp
    • test/Transforms/SLPVectorizer
      • AArch64
        • reused-scalar-repeated-in-node.ll
      • X86
        • buildvectors-parent-phi-nodes.ll
        • full-matched-bv-with-subvectors.ll
        • matched-bv-schedulable.ll
        • matched-nodes-updated.ll
        • node-outside-used-only.ll
        • reduced-val-vectorized-in-transform.ll
        • split-node-num-operands.ll
      • revec.ll