[all-commits] [llvm/llvm-project] 8675ef: [LV] Logical and/or select costs
David Green via All-commits
all-commits at lists.llvm.org
Thu Apr 8 02:40:16 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 8675ef100f8cbf59f2e90f4836fb92db83b6062e
https://github.com/llvm/llvm-project/commit/8675ef100f8cbf59f2e90f4836fb92db83b6062e
Author: David Green <david.green at arm.com>
Date: 2021-04-08 (Thu, 08 Apr 2021)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/test/Transforms/LoopVectorize/ARM/mve-selectandorcost.ll
Log Message:
-----------
[LV] Logical and/or select costs
D99674 stopped the folding of certain select operations into and/or, due
to incorrect folding in the presence of poison. D97360 added some costs
to attempt to account for the change, but only worked at the getUserCost
level, not the getCmpSelInstrCost that the vectorizer will use directly.
This adds similar logic into the vectorizer to handle these logical
and/or selects, treating them like and/or directly.
This fixes 60% performance regressions from code like the attached test
case.
Differential Revision: https://reviews.llvm.org/D99884
More information about the All-commits
mailing list