[VectorCombine] Use constant range info for index scalarization legality.
authorFlorian Hahn <flo@fhahn.com>
Tue, 25 May 2021 12:54:55 +0000 (13:54 +0100)
committerFlorian Hahn <flo@fhahn.com>
Tue, 25 May 2021 12:58:42 +0000 (13:58 +0100)
commit575e2aff5574550d10278d9a41fca2926a5b8409
treec0164be2f512947d413eb11225007b292e6b8d8f
parent9b99336d5daf9425f12c747fd746118457a80ed8
[VectorCombine] Use constant range info for index scalarization legality.

We can only scalarize memory accesses if we know the index is valid.

This patch adjusts canScalarizeAcceess to fall back to
computeConstantRange to check if the index is known to be valid.

Reviewed By: nlopes

Differential Revision: https://reviews.llvm.org/D102476
llvm/lib/Transforms/Vectorize/VectorCombine.cpp
llvm/test/Transforms/PhaseOrdering/AArch64/matrix-extract-insert.ll
llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll
llvm/test/Transforms/VectorCombine/load-insert-store.ll