Mark MULHS/MULHU nodes as legal for both scalable and fixed SVE types,
and lower them to the appropriate SVE instructions.
Additionally now that the MULH nodes are legal, integer divides can be
expanded into a more performant code sequence.
Paths
| Differential D100487
[AArch64][SVE] Lower MULHU/MULHS nodes to umulh/smulh instructions ClosedPublic Authored by bsmith on Apr 14 2021, 8:28 AM.
Details Summary Mark MULHS/MULHU nodes as legal for both scalable and fixed SVE types, Additionally now that the MULH nodes are legal, integer divides can be
Diff Detail
Event Timeline
bsmith marked 5 inline comments as done. Comment Actions
paulwalker-arm added inline comments.
This revision is now accepted and ready to land.Apr 19 2021, 4:06 AM
Closed by commit rGb8b075d8d744: [AArch64][SVE] Lower MULHU/MULHS nodes to umulh/smulh instructions (authored by bsmith). · Explain WhyApr 20 2021, 7:18 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 338860 llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/test/CodeGen/AArch64/sve-expand-div.ll
llvm/test/CodeGen/AArch64/sve-fixed-length-int-div.ll
llvm/test/CodeGen/AArch64/sve-fixed-length-int-mulh.ll
llvm/test/CodeGen/AArch64/sve-int-arith-imm.ll
llvm/test/CodeGen/AArch64/sve-int-mulh-pred.ll
llvm/test/CodeGen/AArch64/sve2-int-mulh.ll
|
As the general rule we use the common node name suffixed with _PRED, so in this case these should be MULHS_PRED and MULHU_PRED.