This is an archive of the discontinued LLVM Phabricator instance.

[X86] WIP Prefer VEX encoding in X86 assembler.
AbandonedPublic

Authored by craig.topper on Oct 11 2021, 1:25 PM.

Details

Summary

An alternative version of D111538 and D111505. Attempting to create different operands for the VEX and EVEX instructions so that the AsmMatcher will infer an order for them. This is similar to how we normally prefer VEX over EVEX. The VEX register classes are smaller so they get ordered before the EVEX register classes.

Naming of the new operand types isn't great. Patch needs more comments. Had to make a hack to the EVEX2VEX emitter. Not sure if that's the best fix for it.

Maybe we should change the operands for the EVEX instructions instead of the VEX instructions.

Mainly posting this as inspiration for Yuanke. I don't know if I have time to finish this myself

Diff Detail

Unit TestsFailed

Event Timeline

craig.topper created this revision.Oct 11 2021, 1:25 PM
craig.topper requested review of this revision.Oct 11 2021, 1:25 PM
Herald added a project: Restricted Project. · View Herald TranscriptOct 11 2021, 1:25 PM

Thank Craig for the patch. I may prefer https://reviews.llvm.org/D111505 because it is more generic.

craig.topper abandoned this revision.Nov 12 2021, 3:36 PM