This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Consider more intrinsics in 'isZeroingInactiveLanes'.
ClosedPublic

Authored by sdesmalen on Jul 15 2022, 6:06 AM.

Diff Detail

Event Timeline

sdesmalen created this revision.Jul 15 2022, 6:06 AM
sdesmalen requested review of this revision.Jul 15 2022, 6:06 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 15 2022, 6:06 AM

I didn't add new tests for the fcmp* cases, because there were no existing tests for these yet. The intrinsics seemed sensible to include in the switch statement. Let me know if you specifically want me to add new tests for these.

I didn't add new tests for the fcmp* cases, because there were no existing tests for these yet. The intrinsics seemed sensible to include in the switch statement. Let me know if you specifically want me to add new tests for these.

If there's functionality that we're relying on then I'd rather see a test to protect it.

Matt added a subscriber: Matt.Jul 15 2022, 10:54 AM
sdesmalen updated this revision to Diff 445757.Jul 19 2022, 3:01 AM

Added tests for FP cases as well (these new tests will be submitted as a precursory patch).

sdesmalen added inline comments.Jul 19 2022, 3:17 AM
llvm/test/CodeGen/AArch64/sve-ptest-removal-fcmpeq.ll
12 ↗(On Diff #445757)

The fcm* instructions don't set the NCZV flags so the ptest cannot be removed. Perhaps I should rename these tests.

paulwalker-arm accepted this revision.Jul 19 2022, 5:46 AM

I guess it won't be long before we need to add while to this list?

llvm/test/CodeGen/AArch64/sve-ptest-removal-fcmpeq.ll
12 ↗(On Diff #445757)

That does sound best. Perhaps a generic sve-ptest.ll to verify the cases where ptest is required but we want to ensure no additional instructions are emitted.

This revision is now accepted and ready to land.Jul 19 2022, 5:46 AM
This revision was landed with ongoing or failed builds.Jul 26 2022, 7:09 AM
This revision was automatically updated to reflect the committed changes.