[all-commits] [llvm/llvm-project] ac65fb: [LoopVectorize] Fix incorrect order of invariant s...

Igor Kirillov via All-commits all-commits at lists.llvm.org
Thu Aug 31 09:22:54 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ac65fb869977185b44757b94dc5130bd08c6f7e2
  Author: Igor Kirillov <igor.kirillov at arm.com>
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll

  Log Message:
  [LoopVectorize] Fix incorrect order of invariant stores when there are multiple reductions.

When a loop has multiple reductions, each with an intermediate invariant
store, the order in which those reductions are processed is not considered.
This can result in the invariant stores outside the loop not preserving the
original order.
This patch sorts VPReductionPHIRecipes by the order in which they have
stores in the original loop before running
`InnerLoopVectorizer::fixReduction` function, and it helps to maintain
the correct order of stores.

Fixes https://github.com/llvm/llvm-project/issues/64047

Differential Revision: https://reviews.llvm.org/D157631

More information about the All-commits mailing list