https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88349
Bug ID: 88349 Summary: [9 regression][MIPS] Redundant store instructions generated start with r266385 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: paul.hua.gm at gmail dot com Target Milestone: --- paulhua@gcc122:~/test/debug_mult-16$ cat mult-16.i typedef int DI __attribute__((mode(DI))); typedef int SI __attribute__((mode(SI))); __attribute__((mips16)) SI f (SI x, SI y) { return ((DI) x * y) >> 32; } good asm: f: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 mult $4,$5 mfhi $3 .set noreorder .set nomacro jr $31 move $2,$3 .set macro .set reorder bad asm: f: .frame $sp,16,$31 # vars= 8, regs= 0/0, args= 0, gp= 8 .mask 0x00000000,0 .fmask 0x00000000,0 addiu $sp,-16 mult $4,$5 mflo $2 mfhi $3 sw $2,8($sp) sw $3,12($sp) lw $2,12($sp) .set noreorder .set nomacro jr $31 addiu $sp,16 .set macro .set reorder cmd: paulhua@gcc122:~/test/debug_mult-16$ ~/build/gcc-r266385_obj/gcc/cc1 -fpreprocessed mult-16.i -mel -quiet -dumpbase mult-16.c -mabi=32 -mgp32 -mlong32 -mno-micromips -march=mips64r2 -mllsc -mips64r2 -mno-shared -auxbase-strip mult-16.s -O1 -version -fdiagnostics-color=never -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fexpensive-optimizations -ffat-lto-objects -fno-ident -o new.s cross-gcc configure: configure MISSING=texinfo MAKEINFO=missing --target=mips64el-linux-gnu --enable-languages=c,c++