[all-commits] [llvm/llvm-project] 82c1b1: [LV] Don't predicate uniform mem op stores unnecce...
Philip Reames via All-commits
all-commits at lists.llvm.org
Thu Jul 28 08:56:07 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 82c1b136dbe10760241fabf13c635f78a509e744
https://github.com/llvm/llvm-project/commit/82c1b136dbe10760241fabf13c635f78a509e744
Author: Philip Reames <preames at rivosinc.com>
Date: 2022-07-28 (Thu, 28 Jul 2022)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/pr46525-expander-insertpoint.ll
Log Message:
-----------
[LV] Don't predicate uniform mem op stores unneccessarily
We already had the reasoning about uniform mem op loads; if the address is accessed at least once, we know the instruction doesn't need predicated to ensure fault safety. For stores, we do need to ensure that the values visible in memory are the same with and without predication. The easiest sub-case to check for is that all the values being stored are the same. Since we know that at least one lane is active, this tells us that the value must be visible.
Warning on confusing terminology: "uniform" vs "uniform mem op" mean two different things here, and this patch is specific to the later. It would *not* be legal to make this same change for merely "uniform" operations.
Differential Revision: https://reviews.llvm.org/D130637
More information about the All-commits
mailing list