This is an archive of the discontinued LLVM Phabricator instance.

[CodeGen] Fix incorrect pattern FMLA_* pseudo instructions
ClosedPublic

Authored by igor.kirillov on Aug 4 2023, 7:03 AM.

Details

Summary
  • Remove the incorrect patterns from AArch64fmla_p/AArch64fmls_p
  • Add correct patterns to AArch64fmla_m1/AArch64fmls_m1
  • Refactor fma_patfrags for the sake of PatFrags

Fixes https://github.com/llvm/llvm-project/issues/64419

Diff Detail

Event Timeline

igor.kirillov created this revision.Aug 4 2023, 7:03 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 4 2023, 7:03 AM
igor.kirillov requested review of this revision.Aug 4 2023, 7:03 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 4 2023, 7:03 AM
paulwalker-arm added inline comments.Aug 4 2023, 9:40 AM
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
435

I know you've copied the existing pattern but can you change this to SVEAllActive? which is the "new" way we handle these cases.

Replace AArch64ptrue 31 pattern with SVEAllActive

igor.kirillov marked an inline comment as done.Aug 7 2023, 3:35 AM
paulwalker-arm accepted this revision.Aug 7 2023, 4:34 AM
This revision is now accepted and ready to land.Aug 7 2023, 4:34 AM

Just a note to say I've added a request to D157094 so the AArch64fmls_m1 patterns are better tested.

igor.kirillov edited the summary of this revision. (Show Details)

Rebase after adding extra tests