[ARM] Cleanup 64-bit multiplies
Cleanup 64-bit multiplies. Combine the expanders using iterators. Merge the signed/unsigned multiplies as well as the pre-Armv6 and Armv6 variants. Split DImode operands early into parallel sets inside the MULL/MLAL instructions - this improves register allocation and avoids subreg issues due to other DImode operations splitting early. gcc/ * config/arm/arm.md (maddsidi4): Remove expander. (mulsidi3adddi): Remove pattern. (mulsidi3adddi_v6): Likewise. (mulsidi3_nov6): Likewise. (mulsidi3_v6): Likewise. (umulsidi3): Remove expander. (umulsidi3_nov6): Remove pattern. (umulsidi3_v6): Likewise. (umulsidi3adddi): Likewise. (umulsidi3adddi_v6): Likewise. (<Us>mulsidi3): Add combined expander. (<Us>maddsidi4): Likewise. (<US>mull): Add combined umull and smull pattern. (<US>mlal): Likewise. * config/arm/iterators.md (Us): Add new iterator. From-SVN: r275901
Showing
Please
register
or
sign in
to comment