[VPlan] Sink non-uniform recieps for scalar plans.
authorFlorian Hahn <flo@fhahn.com>
Wed, 14 Dec 2022 17:55:30 +0000 (17:55 +0000)
committerFlorian Hahn <flo@fhahn.com>
Wed, 14 Dec 2022 17:55:31 +0000 (17:55 +0000)
commite898479f2b3d95ccda9e143865eedd615c667e22
tree515286b7d64ae52213da0849d8e0b2916bc0e033
parentfe9d0a47d55ff3c55d8caa03c55c2651985b2f0a
[VPlan] Sink non-uniform recieps for scalar plans.

In scalar plans, replicate recipes will only generate a single value per
UF, independent of whether they are uniform or not. So don't consider
uniformity for plans with scalar VFs only.

This allows us to handle a few additional cases in VPlan sinking instead
of non-VPlan sinkScalarOperands.

Depends on D133762.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D134218
llvm/lib/Transforms/Vectorize/VPlan.h
llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
llvm/test/Transforms/LoopVectorize/interleave-and-scalarize-only.ll
llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge-vf1.ll