This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Remove i1 type from isElementTypeLegalForScalableVector
ClosedPublic

Authored by kmclaughlin on Nov 11 2021, 8:32 AM.

Details

Summary

collectElementTypesForWidening collects the types of load, store and
reduction Phis in a loop. These types are later checked using
isElementTypeLegalForScalableVector to prevent vectorisation of
loops with instruction types that are unsupported.

This patch removes i1 from the list of types supported for scalable
vectors. This fixes an assert ("Cannot yet scalarize uniform stores") in
setCostBasedWideningDecision when we have a loop containing a uniform
i1 store and a scalable VF, which we cannot create a scatter for.

Diff Detail

Event Timeline

kmclaughlin created this revision.Nov 11 2021, 8:32 AM
kmclaughlin requested review of this revision.Nov 11 2021, 8:32 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 11 2021, 8:32 AM
This revision is now accepted and ready to land.Nov 11 2021, 8:44 AM
This revision was landed with ongoing or failed builds.Nov 12 2021, 6:25 AM
This revision was automatically updated to reflect the committed changes.