This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Zero extended extract_vector_elt pattern
ClosedPublic

Authored by dmgreen on Mar 14 2021, 8:20 AM.

Details

Summary

This adds a pattern for i64 zext_inreg(i32 extract_vector_elt X), producing a single UMOVvi16 instruction that is already expected to clear the top bits. The exact pattern that this matches is and(anyext(vector_extract X, lane), 0xff), similar to the sext patterns higher up in the same file.

Diff Detail

Event Timeline

dmgreen created this revision.Mar 14 2021, 8:20 AM
dmgreen requested review of this revision.Mar 14 2021, 8:20 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 14 2021, 8:20 AM
sdesmalen accepted this revision.Mar 15 2021, 2:10 AM

Looks like a valid pattern, and a nice improvement, thanks.

This revision is now accepted and ready to land.Mar 15 2021, 2:10 AM
This revision was landed with ongoing or failed builds.Mar 15 2021, 7:56 AM
This revision was automatically updated to reflect the committed changes.