This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Use v2i1 for MVE and CDE intrinsics
ClosedPublic

Authored by dmgreen on Nov 23 2021, 9:46 AM.

Details

Summary

This adjusts all the MVE and CDE intrinsics now that v2i1 is a legal type, to use a <2 x i1> as opposed to emulating the predicate with a <4 x i1>. The v4i1 workarounds have been removed leaving the natural v2i1 types, notably in vctp64 which now generates a v2i1 type.

AutoUpgrade code has been added to upgrade old IR, which needs to convert the old v4i1 to a v2i1 be converting it back and forth to an integer with arm.mve.v2i and arm.mve.i2v intrinsics. These should be optimized away in the final assembly.

Diff Detail

Event Timeline

dmgreen created this revision.Nov 23 2021, 9:46 AM
dmgreen requested review of this revision.Nov 23 2021, 9:46 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 23 2021, 9:46 AM
This revision is now accepted and ready to land.Nov 25 2021, 8:07 AM
This revision was landed with ongoing or failed builds.Dec 3 2021, 7:28 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptDec 3 2021, 7:28 AM
Herald added a subscriber: cfe-commits. · View Herald Transcript