------- Comment #2 from ramana at gcc dot gnu dot org 2010-01-04 10:54 ------- Confirmed with trunk I get
longfunc: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mul r1, r2, r1 mla r1, r0, r3, r1 stmfd sp!, {r4, r5} umull r4, r5, r2, r0 add r1, r1, r5 mov r0, r4 mov r5, r1 ldmfd sp!, {r4, r5} bx lr r4 and r5 need not be used here - you could do with just r2 and r3 instead of r4 and r5 here i.e. mul r1, r2, r1 mla r1, r0, r3, r1 umull r2, r3, r2, r0 add r1, r1, r3 mov r0, r2 bx lr -- ramana at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|target |rtl-optimization Ever Confirmed|0 |1 Keywords| |missed-optimization, ra Last reconfirmed|0000-00-00 00:00:00 |2010-01-04 10:54:28 date| | Summary|arm-eabi-gcc 4.2.1 64-bit |arm-eabi-gcc 64-bit multiply |multiply weirdness |weirdness http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42575