This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Remove earlyclobber from compares with LMUL<=1.
ClosedPublic

Authored by craig.topper on May 28 2021, 12:20 PM.

Details

Summary

Compares are considered a narrowing operation for register overlap.
I believe for LMUL<=1 they meet this exception to allow overlap

"The destination EEW is smaller than the source EEW and the overlap is in the
lowest-numbered part of the source register group"

Both the result and the sources will occupy a single register for
LMUL<=1 so the overlap would always be in the "lowest-numbered part".

Diff Detail

Event Timeline

craig.topper created this revision.May 28 2021, 12:20 PM
craig.topper requested review of this revision.May 28 2021, 12:20 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 28 2021, 12:20 PM
Herald added a subscriber: MaskRay. · View Herald Transcript
This revision is now accepted and ready to land.May 29 2021, 6:32 PM
frasercrmck accepted this revision.Jun 1 2021, 4:26 AM

Yep, seems reasonable. LGTM. It might be prudent to quote the spec where it says For the purpose of register group overlap constraints, mask elements have EEW=1, since it doesn't explicitly say that in the compares section.

This revision was landed with ongoing or failed builds.Jun 1 2021, 9:08 AM
This revision was automatically updated to reflect the committed changes.