This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Predicated mul pattern
ClosedPublic

Authored by dmgreen on May 5 2023, 8:44 AM.

Details

Summary

This is a simple predicated mul pattern, selecting from select(p, mul(x, y), x).

Diff Detail

Event Timeline

dmgreen created this revision.May 5 2023, 8:44 AM
dmgreen requested review of this revision.May 5 2023, 8:44 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 5 2023, 8:44 AM
Matt added a subscriber: Matt.May 5 2023, 2:40 PM

Seems like a nice improvements - thanks @dmgreen! I just had one comment about the patterns.

llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
410

Should this be similar to the PatFrags below, i.e.

(vselect node:$pred, (AArch64mul_p_oneuse (SVEAllActive),

Thanks. Paul has some comments in D149967.

dmgreen updated this revision to Diff 524259.May 22 2023, 5:55 AM

I found these VSelectCommPredOrPassthruPatFrags PatFrags used for the existing fmul, min and max operations. I've switched over to use it and added D151084 and D151080 for improving them.

paulwalker-arm accepted this revision.Jun 5 2023, 3:36 AM
This revision is now accepted and ready to land.Jun 5 2023, 3:36 AM
This revision was landed with ongoing or failed builds.Jun 7 2023, 1:53 PM
This revision was automatically updated to reflect the committed changes.