[VPlan] VPInterleaveRecipe only uses first lane if op not stored.
authorFlorian Hahn <flo@fhahn.com>
Wed, 11 May 2022 10:24:56 +0000 (11:24 +0100)
committerFlorian Hahn <flo@fhahn.com>
Wed, 11 May 2022 10:24:56 +0000 (11:24 +0100)
commit635b7522112a69a3b50686077e54e06465fcd801
treed0a59956c5b4bb713c0d6077a93230ddf96a63c5
parente79c1962b9d7b0dda9d4481fc79fe55e762d0f5d
[VPlan] VPInterleaveRecipe only uses first lane if op not stored.

With opaque pointers, both the stored value and the address can be the
same. Only consider the recipe using the first lane only *if* the
address is not stored.

Fixes #55375.
llvm/lib/Transforms/Vectorize/VPlan.h
llvm/test/Transforms/LoopVectorize/X86/interleave-opaque-pointers.ll