[llvm] [VPlan] Remove original loop if dead after vectorization. (PR #155497)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 26 14:02:04 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {undef deprecator}-->
:warning: undef deprecator found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git diff -U0 --pickaxe-regex -S '([^a-zA-Z0-9#_-]undef[^a-zA-Z0-9_-]|UndefValue::get)' 'HEAD~1' HEAD llvm/lib/Transforms/Vectorize/LoopVectorize.cpp llvm/lib/Transforms/Vectorize/VPlan.cpp llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp llvm/lib/Transforms/Vectorize/VPlanUtils.h llvm/test/Transforms/LoopVectorize/AArch64/aarch64-predication.ll llvm/test/Transforms/LoopVectorize/AArch64/blend-costs.ll llvm/test/Transforms/LoopVectorize/AArch64/call-costs.ll llvm/test/Transforms/LoopVectorize/AArch64/clamped-trip-count.ll llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll llvm/test/Transforms/LoopVectorize/AArch64/deterministic-type-shrinkage.ll llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll llvm/test/Transforms/LoopVectorize/AArch64/drop-poison-generating-flags.ll llvm/test/Transforms/LoopVectorize/AArch64/eliminate-tail-predication.ll llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence-fold-tail.ll llvm/test/Transforms/LoopVectorize/AArch64/fminimumnum.ll llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll llvm/test/Transforms/LoopVectorize/AArch64/interleave-allocsize-not-equal-typesize.ll llvm/test/Transforms/LoopVectorize/AArch64/interleave-with-gaps.ll llvm/test/Transforms/LoopVectorize/AArch64/interleave_count_for_known_tc.ll llvm/test/Transforms/LoopVectorize/AArch64/invariant-replicate-region.ll llvm/test/Transforms/LoopVectorize/AArch64/licm-calls.ll llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll llvm/test/Transforms/LoopVectorize/AArch64/mul-simplification.ll llvm/test/Transforms/LoopVectorize/AArch64/multiple-result-intrinsics.ll llvm/test/Transforms/LoopVectorize/AArch64/optsize_minsize.ll llvm/test/Transforms/LoopVectorize/AArch64/outer_loop_test1_no_explicit_vect_width.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-mixed.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-neon.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub.ll llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce.ll llvm/test/Transforms/LoopVectorize/AArch64/pr151664-cost-hoisted-vector-scalable.ll llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll llvm/test/Transforms/LoopVectorize/AArch64/pr73894.ll llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll llvm/test/Transforms/LoopVectorize/AArch64/scalable-struct-return.ll llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll llvm/test/Transforms/LoopVectorize/AArch64/struct-return-cost.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-masked-accesses.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-low-trip-count.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-optsize.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-overflow-checks.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-reductions.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-unroll.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-phi.ll llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt.ll llvm/test/Transforms/LoopVectorize/AArch64/synthesize-mask-for-call.ll llvm/test/Transforms/LoopVectorize/AArch64/tail-fold-uniform-memops.ll llvm/test/Transforms/LoopVectorize/AArch64/tail-folding-styles.ll llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-constant-ops.ll llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-derived-ivs.ll llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-metadata.ll llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-remove-loop-region.ll llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-unroll.ll llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops.ll llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory.ll llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-insertelt.ll llvm/test/Transforms/LoopVectorize/AArch64/wider-VF-for-callinst.ll llvm/test/Transforms/LoopVectorize/AMDGPU/packed-math.ll llvm/test/Transforms/LoopVectorize/ARM/mve-gather-scatter-tailpred.ll llvm/test/Transforms/LoopVectorize/ARM/mve-hoist-runtime-checks.ll llvm/test/Transforms/LoopVectorize/ARM/mve-reduction-predselect.ll llvm/test/Transforms/LoopVectorize/ARM/mve-reduction-types.ll llvm/test/Transforms/LoopVectorize/ARM/mve-reg-pressure-vmla.ll llvm/test/Transforms/LoopVectorize/ARM/optsize_minsize.ll llvm/test/Transforms/LoopVectorize/ARM/tail-folding-loop-hint.ll llvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll llvm/test/Transforms/LoopVectorize/LoongArch/defaults.ll llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-call.ll llvm/test/Transforms/LoopVectorize/PowerPC/widened-massv-vfabi-attr.ll llvm/test/Transforms/LoopVectorize/RISCV/bf16.ll llvm/test/Transforms/LoopVectorize/RISCV/blocks-with-dead-instructions.ll llvm/test/Transforms/LoopVectorize/RISCV/dead-ops-cost.ll llvm/test/Transforms/LoopVectorize/RISCV/defaults.ll llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll llvm/test/Transforms/LoopVectorize/RISCV/evl-compatible-loops.ll llvm/test/Transforms/LoopVectorize/RISCV/f16.ll llvm/test/Transforms/LoopVectorize/RISCV/fminimumnum.ll llvm/test/Transforms/LoopVectorize/RISCV/induction-costs.ll llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll llvm/test/Transforms/LoopVectorize/RISCV/interleaved-accesses.ll llvm/test/Transforms/LoopVectorize/RISCV/interleaved-masked-access.ll llvm/test/Transforms/LoopVectorize/RISCV/lmul.ll llvm/test/Transforms/LoopVectorize/RISCV/low-trip-count.ll llvm/test/Transforms/LoopVectorize/RISCV/mask-index-type.ll llvm/test/Transforms/LoopVectorize/RISCV/masked_gather_scatter.ll llvm/test/Transforms/LoopVectorize/RISCV/partial-reduce-dot-product.ll llvm/test/Transforms/LoopVectorize/RISCV/pr154103.ll llvm/test/Transforms/LoopVectorize/RISCV/pr87378-vpinstruction-or-drop-poison-generating-flags.ll llvm/test/Transforms/LoopVectorize/RISCV/pr88802.ll llvm/test/Transforms/LoopVectorize/RISCV/reductions.ll llvm/test/Transforms/LoopVectorize/RISCV/remark-reductions.ll llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll llvm/test/Transforms/LoopVectorize/RISCV/safe-dep-distance.ll llvm/test/Transforms/LoopVectorize/RISCV/scalable-basics.ll llvm/test/Transforms/LoopVectorize/RISCV/scalable-tailfold.ll llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-bin-unary-ops-args.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-call-intrinsics.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-cast-intrinsics.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-cond-reduction.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-div.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-fixed-order-recurrence.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-gather-scatter.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-inloop-reduction.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-interleave.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-intermediate-store.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-iv32.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-known-no-overflow.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-masked-loadstore.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-ordered-reduction.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reduction.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-reverse-load-store.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-safe-dep-distance.ll llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-uniform-store.ll llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-cost.ll llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll llvm/test/Transforms/LoopVectorize/RISCV/type-info-cache-evl-crash.ll llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll llvm/test/Transforms/LoopVectorize/RISCV/vector-loop-backedge-elimination-with-evl.ll llvm/test/Transforms/LoopVectorize/RISCV/vectorize-vp-intrinsics.ll llvm/test/Transforms/LoopVectorize/RISCV/vf-will-not-generate-any-vector-insts.ll llvm/test/Transforms/LoopVectorize/SystemZ/addressing.ll llvm/test/Transforms/LoopVectorize/SystemZ/force-target-instruction-cost.ll llvm/test/Transforms/LoopVectorize/SystemZ/pr47665.ll llvm/test/Transforms/LoopVectorize/SystemZ/predicated-first-order-recurrence.ll llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll llvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll llvm/test/Transforms/LoopVectorize/X86/cost-constant-known-via-scev.ll llvm/test/Transforms/LoopVectorize/X86/cost-model.ll llvm/test/Transforms/LoopVectorize/X86/divs-with-tail-folding.ll llvm/test/Transforms/LoopVectorize/X86/drop-inbounds-flags-for-reverse-vector-pointer.ll llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll llvm/test/Transforms/LoopVectorize/X86/fixed-order-recurrence.ll llvm/test/Transforms/LoopVectorize/X86/fminimumnum.ll llvm/test/Transforms/LoopVectorize/X86/gep-use-outside-loop.ll llvm/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll llvm/test/Transforms/LoopVectorize/X86/interleave-ptradd-with-replicated-operand.ll llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-hoist-load-across-store.ll llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-sink-store-across-load.ll llvm/test/Transforms/LoopVectorize/X86/interleaving.ll llvm/test/Transforms/LoopVectorize/X86/limit-vf-by-tripcount.ll llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll llvm/test/Transforms/LoopVectorize/X86/masked-store-cost.ll llvm/test/Transforms/LoopVectorize/X86/masked_load_store.ll llvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll llvm/test/Transforms/LoopVectorize/X86/optsize.ll llvm/test/Transforms/LoopVectorize/X86/outer_loop_test1_no_explicit_vect_width.ll llvm/test/Transforms/LoopVectorize/X86/parallel-loops.ll llvm/test/Transforms/LoopVectorize/X86/pr109581-unused-blend.ll llvm/test/Transforms/LoopVectorize/X86/pr131359-dead-for-splice.ll llvm/test/Transforms/LoopVectorize/X86/pr141968-instsimplifyfolder.ll llvm/test/Transforms/LoopVectorize/X86/pr34438.ll llvm/test/Transforms/LoopVectorize/X86/pr36524.ll llvm/test/Transforms/LoopVectorize/X86/pr51366-sunk-instruction-used-outside-of-loop.ll llvm/test/Transforms/LoopVectorize/X86/pr81872.ll llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll llvm/test/Transforms/LoopVectorize/X86/replicate-recipe-with-only-first-lane-used.ll llvm/test/Transforms/LoopVectorize/X86/replicate-uniform-call.ll llvm/test/Transforms/LoopVectorize/X86/scev-checks-unprofitable.ll llvm/test/Transforms/LoopVectorize/X86/small-size.ll llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll llvm/test/Transforms/LoopVectorize/X86/tail_loop_folding.ll llvm/test/Transforms/LoopVectorize/X86/uniform_load.ll llvm/test/Transforms/LoopVectorize/X86/uniform_mem_op.ll llvm/test/Transforms/LoopVectorize/X86/vect.omp.force.small-tc.ll llvm/test/Transforms/LoopVectorize/X86/vectorize-force-tail-with-evl.ll llvm/test/Transforms/LoopVectorize/X86/vectorize-interleaved-accesses-gap.ll llvm/test/Transforms/LoopVectorize/X86/vplan-native-inner-loop-only.ll llvm/test/Transforms/LoopVectorize/X86/widened-value-used-as-scalar-and-first-lane.ll llvm/test/Transforms/LoopVectorize/X86/x86-predication.ll llvm/test/Transforms/LoopVectorize/assume.ll llvm/test/Transforms/LoopVectorize/blend-in-header.ll llvm/test/Transforms/LoopVectorize/bsd_regex.ll llvm/test/Transforms/LoopVectorize/check-prof-info.ll llvm/test/Transforms/LoopVectorize/constantfolder-infer-correct-gepty.ll llvm/test/Transforms/LoopVectorize/constantfolder.ll llvm/test/Transforms/LoopVectorize/create-induction-resume.ll llvm/test/Transforms/LoopVectorize/dbg-outer-loop-vect.ll llvm/test/Transforms/LoopVectorize/dead_instructions.ll llvm/test/Transforms/LoopVectorize/debugloc-optimize-vfuf-term.ll llvm/test/Transforms/LoopVectorize/dereferenceable-info-from-assumption-constant-size.ll llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-const-TC.ll llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll llvm/test/Transforms/LoopVectorize/expand-scev-after-invoke.ll llvm/test/Transforms/LoopVectorize/extract-from-end-vector-constant.ll llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll llvm/test/Transforms/LoopVectorize/first-order-recurrence-dead-instructions.ll llvm/test/Transforms/LoopVectorize/first-order-recurrence-interleave-only.ll llvm/test/Transforms/LoopVectorize/first-order-recurrence-multiply-recurrences.ll llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll llvm/test/Transforms/LoopVectorize/float-induction.ll llvm/test/Transforms/LoopVectorize/float-minmax-instruction-flag.ll llvm/test/Transforms/LoopVectorize/forked-pointers.ll llvm/test/Transforms/LoopVectorize/hints-trans.ll llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll llvm/test/Transforms/LoopVectorize/if-pred-stores.ll llvm/test/Transforms/LoopVectorize/if-reduction.ll llvm/test/Transforms/LoopVectorize/induction-multiple-uses-in-same-instruction.ll llvm/test/Transforms/LoopVectorize/induction-step.ll llvm/test/Transforms/LoopVectorize/induction.ll llvm/test/Transforms/LoopVectorize/instruction-only-used-outside-of-loop.ll llvm/test/Transforms/LoopVectorize/interleave-with-i65-induction.ll llvm/test/Transforms/LoopVectorize/interleaved-accesses-different-insert-position.ll llvm/test/Transforms/LoopVectorize/interleaved-accesses-gep-nowrap-flags.ll llvm/test/Transforms/LoopVectorize/interleaved-accesses-metadata.ll llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll llvm/test/Transforms/LoopVectorize/invalidate-scev-at-scope-after-vectorization.ll llvm/test/Transforms/LoopVectorize/is_fpclass.ll llvm/test/Transforms/LoopVectorize/iv-select-cmp-decreasing.ll llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll llvm/test/Transforms/LoopVectorize/iv-select-cmp.ll llvm/test/Transforms/LoopVectorize/iv_outside_user.ll llvm/test/Transforms/LoopVectorize/lcssa-crashes.ll llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll llvm/test/Transforms/LoopVectorize/load-deref-pred-neg-off.ll llvm/test/Transforms/LoopVectorize/load-deref-pred-poison-ub-ops-feeding-pointer.ll llvm/test/Transforms/LoopVectorize/load-of-struct-deref-pred.ll llvm/test/Transforms/LoopVectorize/loop-form.ll llvm/test/Transforms/LoopVectorize/make-followup-loop-id.ll llvm/test/Transforms/LoopVectorize/memdep-fold-tail.ll llvm/test/Transforms/LoopVectorize/metadata.ll llvm/test/Transforms/LoopVectorize/min-trip-count-known-via-scev.ll llvm/test/Transforms/LoopVectorize/minimumnum-maximumnum-reductions.ll llvm/test/Transforms/LoopVectorize/multiple-address-spaces.ll llvm/test/Transforms/LoopVectorize/multiple-result-intrinsics.ll llvm/test/Transforms/LoopVectorize/narrow-to-single-scalar.ll llvm/test/Transforms/LoopVectorize/nested-loops-scev-expansion.ll llvm/test/Transforms/LoopVectorize/no_outside_user.ll llvm/test/Transforms/LoopVectorize/noalias-scope-decl.ll llvm/test/Transforms/LoopVectorize/non-const-n.ll llvm/test/Transforms/LoopVectorize/optsize.ll llvm/test/Transforms/LoopVectorize/outer-loop-wide-phis.ll llvm/test/Transforms/LoopVectorize/outer_loop_test1.ll llvm/test/Transforms/LoopVectorize/phi-cost.ll llvm/test/Transforms/LoopVectorize/pointer-induction-index-width-smaller-than-iv-width.ll llvm/test/Transforms/LoopVectorize/pointer-induction-unroll.ll llvm/test/Transforms/LoopVectorize/pointer-induction.ll llvm/test/Transforms/LoopVectorize/pr154045-dont-fold-extractelement-livein.ll llvm/test/Transforms/LoopVectorize/pr32859.ll llvm/test/Transforms/LoopVectorize/pr36983-multiple-lcssa.ll llvm/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.ll llvm/test/Transforms/LoopVectorize/pr44488-predication.ll llvm/test/Transforms/LoopVectorize/pr45525.ll llvm/test/Transforms/LoopVectorize/pr45679-fold-tail-by-masking.ll llvm/test/Transforms/LoopVectorize/pr46525-expander-insertpoint.ll llvm/test/Transforms/LoopVectorize/pr47343-expander-lcssa-after-cfg-update.ll llvm/test/Transforms/LoopVectorize/pr50686.ll llvm/test/Transforms/LoopVectorize/pr51614-fold-tail-by-masking.ll llvm/test/Transforms/LoopVectorize/pr55167-fold-tail-live-out.ll llvm/test/Transforms/LoopVectorize/pr58811-scev-expansion.ll llvm/test/Transforms/LoopVectorize/pr66616.ll llvm/test/Transforms/LoopVectorize/predicate-switch.ll llvm/test/Transforms/LoopVectorize/predicatedinst-loop-invariant.ll llvm/test/Transforms/LoopVectorize/preserve-dbg-loc-and-loop-metadata.ll llvm/test/Transforms/LoopVectorize/preserve-dbg-loc-reduction-inloop.ll llvm/test/Transforms/LoopVectorize/reduction-inloop-min-max.ll llvm/test/Transforms/LoopVectorize/reduction-inloop-pred.ll llvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll llvm/test/Transforms/LoopVectorize/reduction-inloop.ll llvm/test/Transforms/LoopVectorize/reduction-predselect.ll llvm/test/Transforms/LoopVectorize/reduction.ll llvm/test/Transforms/LoopVectorize/remarks-reduction-inloop.ll llvm/test/Transforms/LoopVectorize/reuse-lcssa-phi-scev-expansion.ll llvm/test/Transforms/LoopVectorize/reverse_induction.ll llvm/test/Transforms/LoopVectorize/runtime-check-readonly.ll llvm/test/Transforms/LoopVectorize/runtime-check.ll llvm/test/Transforms/LoopVectorize/runtime-checks-difference-simplifications.ll llvm/test/Transforms/LoopVectorize/runtime-checks-difference.ll llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll llvm/test/Transforms/LoopVectorize/scev-exit-phi-invalidation.ll llvm/test/Transforms/LoopVectorize/scev-predicate-reasoning.ll llvm/test/Transforms/LoopVectorize/select-neg-cond.ll llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll llvm/test/Transforms/LoopVectorize/select-reduction.ll llvm/test/Transforms/LoopVectorize/single-early-exit-cond-poison.ll llvm/test/Transforms/LoopVectorize/single-early-exit-deref-assumptions.ll llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-hint.ll llvm/test/Transforms/LoopVectorize/single-early-exit-interleave-only.ll llvm/test/Transforms/LoopVectorize/single-early-exit-interleave.ll llvm/test/Transforms/LoopVectorize/single-value-blend-phis.ll llvm/test/Transforms/LoopVectorize/single_early_exit.ll llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll llvm/test/Transforms/LoopVectorize/single_early_exit_with_outer_loop.ll llvm/test/Transforms/LoopVectorize/store-reduction-results-in-tail-folded-loop.ll llvm/test/Transforms/LoopVectorize/strict-fadd-interleave-only.ll llvm/test/Transforms/LoopVectorize/strided-accesses-interleave-only.ll llvm/test/Transforms/LoopVectorize/struct-return-replicate.ll llvm/test/Transforms/LoopVectorize/struct-return.ll llvm/test/Transforms/LoopVectorize/tail-folding-alloca-in-loop.ll llvm/test/Transforms/LoopVectorize/tail-folding-optimize-vector-induction-width.ll llvm/test/Transforms/LoopVectorize/tail-folding-switch.ll llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll llvm/test/Transforms/LoopVectorize/trunc-extended-icmps.ll llvm/test/Transforms/LoopVectorize/trunc-loads-p16.ll llvm/test/Transforms/LoopVectorize/trunc-reductions.ll llvm/test/Transforms/LoopVectorize/trunc-shifts.ll llvm/test/Transforms/LoopVectorize/uitofp-preserve-nneg.ll llvm/test/Transforms/LoopVectorize/uniform-blend.ll llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1.ll llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_and.ll llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.ll llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_lshr.ll llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction2.ll llvm/test/Transforms/LoopVectorize/unroll_nonlatch.ll llvm/test/Transforms/LoopVectorize/unused-blend-mask-for-first-operand.ll llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-branch-weights.ll llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-early-exit.ll llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-outside-iv-users.ll llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination.ll llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll llvm/test/Transforms/LoopVectorize/vplan-printing-before-execute.ll llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll llvm/test/Transforms/LoopVectorize/vplan-widen-select-instruction.ll llvm/test/Transforms/LoopVectorize/widen-gep-all-indices-invariant.ll llvm/test/Transforms/LoopVectorize/widen-intrinsic.ll llvm/test/Transforms/PhaseOrdering/X86/vdiv-nounroll.ll llvm/test/Transforms/PhaseOrdering/X86/vector-reduction-known-first-value.ll llvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
``````````
</details>
The following files introduce new uses of undef:
- llvm/test/Transforms/LoopVectorize/optsize.ll
- llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll
[Undef](https://llvm.org/docs/LangRef.html#undefined-values) is now deprecated and should only be used in the rare cases where no replacement is possible. For example, a load of uninitialized memory yields `undef`. You should use `poison` values for placeholders instead.
In tests, avoid using `undef` and having tests that trigger undefined behavior. If you need an operand with some unimportant value, you can add a new argument to the function and use that instead.
For example, this is considered a bad practice:
```llvm
define void @fn() {
...
br i1 undef, ...
}
```
Please use the following instead:
```llvm
define void @fn(i1 %cond) {
...
br i1 %cond, ...
}
```
Please refer to the [Undefined Behavior Manual](https://llvm.org/docs/UndefinedBehavior.html) for more information.
https://github.com/llvm/llvm-project/pull/155497
More information about the llvm-commits
mailing list