llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-aarch64 Author: Hassnaa Hamdi (hassnaaHamdi) <details> <summary>Changes</summary> Rename the -prefer-predicate-over-epilogue flag and its associated enum values to use 'TailFold' terminology instead of 'Predicate'. The term 'Predicate' is overloaded in the vectorizer context and would cause further confusion as more tail-folding styles are added. This work is motivated by: https://github.com/llvm/llvm-project/pull/190697 where a new tail-folding style gets supported. --- Patch is 158.12 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/191803.diff 146 Files Affected: - (modified) clang/test/CodeGen/AArch64/sve-vector-bits-codegen.c (+4-4) - (modified) llvm/lib/Transforms/Vectorize/LoopVectorize.cpp (+31-33) - (modified) llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/arith-fp-frem-costs.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment-fold-tail.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/eliminate-tail-predication.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence-fold-tail.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/fixed-wide-lane-mask.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/gather-do-not-vectorize-addressing.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/i1-reg-usage.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll (+3-3) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll (+3-3) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/runtime-check-trip-count-decisions.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalable-predicate-instruction.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalable-reduction-inloop-cond.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions-tf.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll (+6-6) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalable-struct-return.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalar_interleave.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/scalarize-store-with-predication.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-basic-vec.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-cond-inv-loads.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vscale-fixed.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-fneg.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter-cost.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-illegal-type.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions-unusual-types.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-masked-accesses.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-inv-loads.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-inv-store.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-invalid-costs.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-large-strides.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-masked-loadstore.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-runtime-check-size-based-threshold.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-select-cmp.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-strict-fadd-cost.ll (+3-3) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-cost.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-reductions.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-unroll.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-vfabi.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-wide-lane-mask.ll (+4-4) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-gep.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-phi.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/tail-fold-uniform-memops.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-fold-tail.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/uniform-args-call-variants.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/veclib-function-calls.ll (+3-3) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/veclib-intrinsic-calls.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/vector-call-linear-args.ll (+3-3) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/ARM/active-lane-mask.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/ARM/tail-folding-counting-down.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/ARM/tail-folding-prefer-flag.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/ARM/tail-folding-reduces-vf.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/Hexagon/invalidate-cm-after-invalidating-interleavegroups.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-force-tail-with-evl.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/bf16.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/dbg-tail-folding-by-evl.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/evl-compatible-loops.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/f16.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/fold-tail-low-trip-count.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll (+4-4) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/interleaved-masked-access.ll (+3-3) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll (+5-5) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/preserve-dbg-loc.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/reg-usage.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/scalable-tailfold.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-bin-unary-ops-args.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-call-intrinsics.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-cast-intrinsics.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-cond-reduction.ll (+4-4) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-cost.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-div.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-fixed-order-recurrence.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-gather-scatter.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-inloop-reduction.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-interleave.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-intermediate-store.ll (+4-4) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-iv32.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-known-no-overflow.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-masked-loadstore.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-no-masking.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-ordered-reduction.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reduction-cost.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reduction.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-safe-dep-distance.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-uniform-store.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/transform-narrow-interleave-to-widen-memory.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/type-info-cache-evl-crash.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/vector-loop-backedge-elimination-with-evl.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/RISCV/vectorize-vp-intrinsics.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/PowerPC/vplan-force-tail-with-evl.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-fixed-order-recurrence.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics-reduction.ll (+4-4) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/RISCV/vplan-vp-intrinsics.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/X86/vplan-vp-intrinsics.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/conditional-scalar-assignment-vplan.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/interleave-conditional-scalar-assignment-vplan.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/tail-folding.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/VPlan/vplan-force-tail-with-evl.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-load-i16.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-interleaved-store-i16.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/X86/divs-with-tail-folding.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/X86/tail_loop_folding.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/X86/vectorize-force-tail-with-evl.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/X86/vectorize-interleaved-accesses-gap.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/X86/x86-interleaved-store-accesses-with-gaps.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/constant-fold-commutative-and.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-expr.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll (+3-3) - (modified) llvm/test/Transforms/LoopVectorize/iv-select-cmp-fold-tail.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/loop-form.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/memdep-fold-tail.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/pr46525-expander-insertpoint.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/reduction-inloop-pred.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/reduction-predselect.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/strict-fadd-interleave-only.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-alloca-in-loop.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-counting-down.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-div.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-iv-outside-user.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-masked-mem-opts.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-optimize-vector-induction-width.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-switch.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll (+2-2) - (modified) llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll (+1-1) - (modified) llvm/test/Transforms/LoopVectorize/vectorize-force-tail-with-evl.ll (+3-3) ``````````diff diff --git a/clang/test/CodeGen/AArch64/sve-vector-bits-codegen.c b/clang/test/CodeGen/AArch64/sve-vector-bits-codegen.c index 36c3c7f745a2b..231a2ec9a3b41 100644 --- a/clang/test/CodeGen/AArch64/sve-vector-bits-codegen.c +++ b/clang/test/CodeGen/AArch64/sve-vector-bits-codegen.c @@ -1,11 +1,11 @@ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -O2 -S \ -// RUN: -mllvm -prefer-predicate-over-epilogue=scalar-epilogue -o - %s -mvscale-min=2 -mvscale-max=2 | FileCheck %s --check-prefixes=CHECK,CHECK256 +// RUN: -mllvm -prefer-tail-folding=prefer-epilogue -o - %s -mvscale-min=2 -mvscale-max=2 | FileCheck %s --check-prefixes=CHECK,CHECK256 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -O2 -S \ -// RUN: -mllvm -prefer-predicate-over-epilogue=scalar-epilogue -o - %s -mvscale-min=4 -mvscale-max=4 | FileCheck %s --check-prefixes=CHECK,CHECK512 +// RUN: -mllvm -prefer-tail-folding=prefer-epilogue -o - %s -mvscale-min=4 -mvscale-max=4 | FileCheck %s --check-prefixes=CHECK,CHECK512 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -O2 -S \ -// RUN: -mllvm -prefer-predicate-over-epilogue=scalar-epilogue -o - %s -mvscale-min=8 -mvscale-max=8 | FileCheck %s --check-prefixes=CHECK,CHECK1024 +// RUN: -mllvm -prefer-tail-folding=prefer-epilogue -o - %s -mvscale-min=8 -mvscale-max=8 | FileCheck %s --check-prefixes=CHECK,CHECK1024 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -O2 -S \ -// RUN: -mllvm -prefer-predicate-over-epilogue=scalar-epilogue -o - %s -mvscale-min=16 -mvscale-max=16 | FileCheck %s --check-prefixes=CHECK,CHECK2048 +// RUN: -mllvm -prefer-tail-folding=prefer-epilogue -o - %s -mvscale-min=16 -mvscale-max=16 | FileCheck %s --check-prefixes=CHECK,CHECK2048 // REQUIRES: aarch64-registered-target diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp index 3aa35a9de7598..d4631fc7f3412 100644 --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -205,36 +205,34 @@ static cl::opt<bool> ForceTargetSupportsMaskedMemoryOps( cl::desc("Assume the target supports masked memory operations (used for " "testing).")); -// Option prefer-predicate-over-epilogue indicates that an epilogue is undesired, -// that predication is preferred, and this lists all options. I.e., the -// vectorizer will try to fold the tail-loop (epilogue) into the vector body -// and predicate the instructions accordingly. If tail-folding fails, there are -// different fallback strategies depending on these values: -namespace PreferPredicateTy { - enum Option { - ScalarEpilogue = 0, - PredicateElseScalarEpilogue, - PredicateOrDontVectorize - }; -} // namespace PreferPredicateTy +// Option prefer-tail-folding indicates that an epilogue is undesired, that +// tail folding is preferred, and this lists all options. I.e., the vectorizer +// will try to fold the tail-loop (epilogue) into the vector body and the +// instructions accordingly. If tail-folding fails, there are different fallback +// strategies depending on these values: +namespace PreferTailFoldingTy { +enum Option { + PreferEpilogue = 0, + FoldTailElseEpilogue, + FoldTailOrDontVectorize +}; +} // namespace PreferTailFoldingTy -static cl::opt<PreferPredicateTy::Option> PreferPredicateOverEpilogue( - "prefer-predicate-over-epilogue", - cl::init(PreferPredicateTy::ScalarEpilogue), +static cl::opt<PreferTailFoldingTy::Option> PreferTailFolding( + "prefer-tail-folding", cl::init(PreferTailFoldingTy::PreferEpilogue), cl::Hidden, - cl::desc("Tail-folding and predication preferences over creating a scalar " - "epilogue loop."), - cl::values(clEnumValN(PreferPredicateTy::ScalarEpilogue, - "scalar-epilogue", - "Don't tail-predicate loops, create scalar epilogue"), - clEnumValN(PreferPredicateTy::PredicateElseScalarEpilogue, - "predicate-else-scalar-epilogue", - "prefer tail-folding, create scalar epilogue if tail " - "folding fails."), - clEnumValN(PreferPredicateTy::PredicateOrDontVectorize, - "predicate-dont-vectorize", - "prefers tail-folding, don't attempt vectorization if " - "tail-folding fails."))); + cl::desc("Tail-folding preferences over creating an epilogue loop."), + cl::values( + clEnumValN(PreferTailFoldingTy::PreferEpilogue, "prefer-epilogue", + "Don't tail-fold loops, create an epilogue"), + clEnumValN(PreferTailFoldingTy::FoldTailElseEpilogue, + "fold-tail-else-epilogue", + "prefer tail-folding, create an epilogue if tail " + "folding fails."), + clEnumValN(PreferTailFoldingTy::FoldTailOrDontVectorize, + "fold-tail-dont-vectorize", + "prefers tail-folding, don't attempt vectorization if " + "tail-folding fails."))); static cl::opt<TailFoldingStyle> ForceTailFoldingStyle( "force-tail-folding-style", cl::desc("Force the tail folding style"), @@ -8583,13 +8581,13 @@ static ScalarEpilogueLowering getScalarEpilogueLowering( return CM_ScalarEpilogueNotAllowedOptSize; // 2) If set, obey the directives - if (PreferPredicateOverEpilogue.getNumOccurrences()) { - switch (PreferPredicateOverEpilogue) { - case PreferPredicateTy::ScalarEpilogue: + if (PreferTailFolding.getNumOccurrences()) { + switch (PreferTailFolding) { + case PreferTailFoldingTy::PreferEpilogue: return CM_ScalarEpilogueAllowed; - case PreferPredicateTy::PredicateElseScalarEpilogue: + case PreferTailFoldingTy::FoldTailElseEpilogue: return CM_ScalarEpilogueNotNeededUsePredicate; - case PreferPredicateTy::PredicateOrDontVectorize: + case PreferTailFoldingTy::FoldTailOrDontVectorize: return CM_ScalarEpilogueNotAllowedUsePredicate; }; } diff --git a/llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll b/llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll index fc672dfa84edd..bf263c2cafa01 100644 --- a/llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll +++ b/llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll @@ -5,7 +5,7 @@ target triple = "aarch64" %"class.std::complex" = type { { double, double } } -; Zero initialized reduction. The IR is generated with predicated tail folding (-prefer-predicate-over-epilogue=predicate-dont-vectorize) +; Zero initialized reduction. The IR is generated with predicated tail folding (-prefer-tail-folding=fold-tail-dont-vectorize) ; ; complex<double> x = 0.0 + 0.0i; ; for (int i = 0; i < 100; ++i) @@ -100,7 +100,7 @@ exit.block: ; preds = %vector.body ret %"class.std::complex" %.fca.0.1.insert } -; Zero initialized reduction with conditional block. The IR is generated with scalar tail folding (-prefer-predicate-over-epilogue=scalar-epilogue) +; Zero initialized reduction with conditional block. The IR is generated with scalar tail folding (-prefer-tail-folding=prefer-epilogue) ; ; complex<double> x = 0.0 + 0.0i; ; for (int i = 0; i < 100; ++i) diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/arith-fp-frem-costs.ll b/llvm/test/Transforms/LoopVectorize/AArch64/arith-fp-frem-costs.ll index d9b890788a129..2636a281b366f 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/arith-fp-frem-costs.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/arith-fp-frem-costs.ll @@ -5,8 +5,8 @@ ; RUN: opt -mattr=+neon -vector-library=sleefgnuabi -passes=loop-vectorize -debug-only=loop-vectorize -disable-output -S < %s 2>&1 | FileCheck %s --check-prefix=NEON-SLEEF ; RUN: opt -mattr=+sve -vector-library=ArmPL -passes=loop-vectorize -debug-only=loop-vectorize -disable-output -S < %s 2>&1 | FileCheck %s --check-prefix=SVE-ARMPL ; RUN: opt -mattr=+sve -vector-library=sleefgnuabi -passes=loop-vectorize -debug-only=loop-vectorize -disable-output -S < %s 2>&1 | FileCheck %s --check-prefix=SVE-SLEEF -; RUN: opt -mattr=+sve -vector-library=ArmPL -passes=loop-vectorize -prefer-predicate-over-epilogue=predicate-dont-vectorize -debug-only=loop-vectorize -disable-output -S < %s 2>&1 | FileCheck %s --check-prefix=SVE-ARMPL-TAILFOLD -; RUN: opt -mattr=+sve -vector-library=sleefgnuabi -passes=loop-vectorize -prefer-predicate-over-epilogue=predicate-dont-vectorize -debug-only=loop-vectorize -disable-output -S < %s 2>&1 | FileCheck %s --check-prefix=SVE-SLEEF-TAILFOLD +; RUN: opt -mattr=+sve -vector-library=ArmPL -passes=loop-vectorize -prefer-tail-folding=fold-tail-dont-vectorize -debug-only=loop-vectorize -disable-output -S < %s 2>&1 | FileCheck %s --check-prefix=SVE-ARMPL-TAILFOLD +; RUN: opt -mattr=+sve -vector-library=sleefgnuabi -passes=loop-vectorize -prefer-tail-folding=fold-tail-dont-vectorize -debug-only=loop-vectorize -disable-output -S < %s 2>&1 | FileCheck %s --check-prefix=SVE-SLEEF-TAILFOLD target triple = "aarch64-unknown-linux-gnu" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll b/llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll index 00f94e418c108..79fd05bd90e42 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --filter-out-after "scalar.ph\:" --version 5 ; RUN: opt -p loop-vectorize -S %s | FileCheck --check-prefixes=COMMON,DEFAULT %s -; RUN: opt -p loop-vectorize -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -S %s | FileCheck --check-prefixes=COMMON,PRED %s +; RUN: opt -p loop-vectorize -prefer-tail-folding=fold-tail-else-epilogue -S %s | FileCheck --check-prefixes=COMMON,PRED %s target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" target triple = "arm64-apple-macosx14.0.0" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment-fold-tail.ll b/llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment-fold-tail.ll index 51760db75c033..82629c7aeef0e 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment-fold-tail.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment-fold-tail.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --version 6 -; RUN: opt -passes=loop-vectorize -prefer-predicate-over-epilogue=predicate-dont-vectorize -mattr=+sve -S < %s 2>&1 | FileCheck %s +; RUN: opt -passes=loop-vectorize -prefer-tail-folding=fold-tail-dont-vectorize -mattr=+sve -S < %s 2>&1 | FileCheck %s target triple = "aarch64-linux-gnu" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/eliminate-tail-predication.ll b/llvm/test/Transforms/LoopVectorize/AArch64/eliminate-tail-predication.ll index 74598e2063e48..3299d5f964f1c 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/eliminate-tail-predication.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/eliminate-tail-predication.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 -; RUN: opt -passes=loop-vectorize -force-target-instruction-cost=1 -prefer-predicate-over-epilogue=predicate-dont-vectorize -S < %s 2>&1 | FileCheck %s +; RUN: opt -passes=loop-vectorize -force-target-instruction-cost=1 -prefer-tail-folding=fold-tail-dont-vectorize -S < %s 2>&1 | FileCheck %s target triple = "aarch64" target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence-fold-tail.ll b/llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence-fold-tail.ll index e57b28fc83b0e..176e70a12a315 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence-fold-tail.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence-fold-tail.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -passes=loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -mcpu=neoverse-v1 -S %s | FileCheck %s +; RUN: opt -passes=loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -prefer-tail-folding=fold-tail-else-epilogue -mcpu=neoverse-v1 -S %s | FileCheck %s target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64-unknown-linux-gnu" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/fixed-wide-lane-mask.ll b/llvm/test/Transforms/LoopVectorize/AArch64/fixed-wide-lane-mask.ll index 446ba92240d5f..714490242a1fd 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/fixed-wide-lane-mask.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/fixed-wide-lane-mask.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --filter-out-after "^middle.block:" --version 4 -; RUN: opt -S -passes=loop-vectorize -scalable-vectorization=off -prefer-predicate-over-epilogue=predicate-dont-vectorize -enable-wide-lane-mask \ +; RUN: opt -S -passes=loop-vectorize -scalable-vectorization=off -prefer-tail-folding=fold-tail-dont-vectorize -enable-wide-lane-mask \ ; RUN: -force-vector-width=4 -force-vector-interleave=1 < %s | FileCheck %s -check-prefix CHECK-UF1 -; RUN: opt -S --passes=loop-vectorize -scalable-vectorization=off -prefer-predicate-over-epilogue=predicate-dont-vectorize -enable-wide-lane-mask \ +; RUN: opt -S --passes=loop-vectorize -scalable-vectorization=off -prefer-tail-folding=fold-tail-dont-vectorize -enable-wide-lane-mask \ ; RUN: -force-vector-width=4 -force-vector-interleave=4 < %s | FileCheck %s -check-prefix CHECK-UF4 target triple = "aarch64-unknown-linux" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/gather-do-not-vectorize-addressing.ll b/llvm/test/Transforms/LoopVectorize/AArch64/gather-do-not-vectorize-addressing.ll index 04f6e2ca60d5a..74048cda5deb3 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/gather-do-not-vectorize-addressing.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/gather-do-not-vectorize-addressing.ll @@ -1,8 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=loop-vectorize -mtriple=aarch64--linux-gnu -mattr=+neon -force-vector-width=2 -force-vector-interleave=1 \ -; RUN: -prefer-predicate-over-epilogue=scalar-epilogue -S -o - | FileCheck %s +; RUN: -prefer-tail-folding=prefer-epilogue -S -o - | FileCheck %s ; RUN: opt < %s -passes=loop-vectorize -mtriple=aarch64--linux-gnu -mattr=+sve -force-vector-width=2 -force-vector-interleave=1 \ -; RUN: -prefer-predicate-over-epilogue=scalar-epilogue -scalable-vectorization=on -S -o - | FileCheck --check-prefix=SVE %s +; RUN: -prefer-tail-folding=prefer-epilogue -scalable-vectorization=on -S -o - | FileCheck --check-prefix=SVE %s define double @test(ptr nocapture noundef readonly %data, ptr nocapture noundef readonly %offset, i32 noundef %size) { ; CHECK-LABEL: @test( diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/i1-reg-usage.ll b/llvm/test/Transforms/LoopVectorize/AArch64/i1-reg-usage.ll index 8c0fc6104e9aa..4ff073af8c6ef 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/i1-reg-usage.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/i1-reg-usage.ll @@ -1,4 +1,4 @@ -; RUN: opt -passes=loop-vectorize -debug-only=loop-vectorize,vplan -disable-output -prefer-predicate-over-epilogue=scalar-epilogue 2>&1 < %s | FileCheck %s +; RUN: opt -passes=loop-vectorize -debug-only=loop-vectorize,vplan -disable-output -prefer-tail-folding=prefer-epilogue 2>&1 < %s | FileCheck %s ; REQUIRES: asserts target triple = "aarch64" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll b/llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll index 960768434d261..03d85881b1e31 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --version 5 ; RUN: opt -p loop-vectorize -S %s | FileCheck --check-prefixes=DEFAULT %s -; RUN: opt -p loop-vectorize -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -S %s | FileCheck --check-prefixes=PRED %s +; RUN: opt -p loop-vectorize -prefer-tail-folding=fold-tail-else-epilogue -S %s | FileCheck --check-prefixes=PRED %s target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" target triple = "arm64-apple-macosx14.0.0" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll b/llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll index 0c948896ad54c..c4f0c040bc13b 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll @@ -1,8 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=loop-vectorize,instsimplify -force-vector-interleave=1 -S | FileCheck %s --check-prefixes=TFNONE -; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-predicate-over-epilogue=predicate-dont-vectorize -S | FileCheck %s --check-prefixes=TFCOMMON,TFALWAYS -; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -S | FileCheck %s --check-prefixes=TFCOMMON,TFFALLBACK -; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=2 -prefer-predicate-over-epilogue=predicate-dont-vectorize -S | FileCheck %s --check-prefixes=TFA_INTERLEAVE +; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-tail-folding=fold-tail-dont-vectorize -S | FileCheck %s --check-prefixes=TFCOMMON,TFALWAYS +; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-tail-folding=fold-tail-else-epilogue -S | FileCheck %s --check-prefixes=TFCOMMON,TFFALLBACK +; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=2 -prefer-tail-folding=fold-tail-dont-vectorize -S | FileCheck %s --check-prefixes=TFA_INTERLEAVE target triple = "aarch64-unknown-linux-gnu" diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll b/llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll index b8d326ea350b5..5421598bcb566 100644 --- a/llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll +++ b/llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll @@ -1,8 +1,8 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --version 5 ; RUN: opt < %s -passes=loop-vectorize,instsimplify -force-vector-interleave=1 -S | FileCheck %s --check-prefixes=TFNONE -; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-predicate-over-epilogue=predicate-dont-vectorize -S | FileCheck %s --check-prefixes=TFCOMMON,TFALWAYS -; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue -S | FileCheck %s --check-prefixes=TFCOMMON,TFFALLBACK -; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=2 -prefer-predicate-over-epilogue=predicate-dont-vectorize -S | FileCheck %s --check-prefixes=TFA_INTERLEAVE +; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-tail-folding=fold-tail-dont-vectorize -S | FileCheck %s --check-prefixes=TFCOMMON,TFALWAYS +; RUN: opt < %s -passes=loop-vectorize,instsimplify,simplifycfg -force-vector-interleave=1 -prefer-tail-folding=fold-tail-else-epilogue -S | FileCheck %s --check-prefixes=TFCOMMON,TFFALLBACK +; RUN: opt < %s -passe... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/191803 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
