https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87761
Bug ID: 87761 Summary: [9 regression][MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c -O1 start with r265398 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:~/debug_r265398$ cat fix-r4000-10.i # 1 "/home/xuchenghua/GCC/gcc_git_trunk/gcc/testsuite/gcc.target/mips/fix-r4000-10.c" # 1 "<built-in>" # 1 "<command-line>" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 1 "<command-line>" 2 # 1 "/home/xuchenghua/GCC/gcc_git_trunk/gcc/testsuite/gcc.target/mips/fix-r4000-10.c" typedef unsigned long long uint64_t; typedef unsigned int uint128_t __attribute__((mode(TI))); __attribute__((nomips16)) uint128_t foo (uint64_t x, uint64_t y) { return (uint128_t) x * y; } paulhua@gcc122:~/debug_r265398$ ~/build/gcc_397_obj/gcc/cc1 -fpreprocessed fix-r4000-10.i -mel -quiet -dumpbase fix-r4000-10.c -dp -mips3 -mgp64 -mno-micromips -mno-mips3d -mno-dsp -mno-dspr2 -mfix-r4000 -mno-paired-single -mno-synci -mnan=legacy -mabi=64 -mllsc -mno-shared -auxbase-strip fix-r4000-10.s -O1 -version -fdiagnostics-color=never -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers -fno-split-wide-types -ffat-lto-objects -fno-ident -o fix-r4000-10.s -mno-abicalls good: paulhua@gcc122:~/debug_r265398$ cat fix-r4000-10.s .file 1 "fix-r4000-10.c" .section .mdebug.abi64 .previous .nan legacy .gnu_attribute 4, 1 .text .align 2 .globl foo .set nomips16 .ent foo .type foo, @function foo: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 dmultu $4,$5 # 17 [c=48 l=12] umulditi3_r4000 mflo $2 mfhi $3 jr $31 # 39 [c=0 l=8] *simple_return .end foo .size foo, .-foo after r265398 bad asm: paulhua@gcc122:~/debug_r265398$ cat fix-r4000-10.s .file 1 "fix-r4000-10.c" .section .mdebug.abi64 .previous .nan legacy .text .align 2 .globl foo .set nomips16 .ent foo .type foo, @function foo: .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 .mask 0x00000000,0 .fmask 0x00000000,0 move $6,$5 # 34 [c=4 l=4] *movdi_64bit/0 move $2,$4 # 10 [c=4 l=4] *movdi_64bit/0 dmultu $2,$6 # 17 [c=48 l=12] umulditi3_r4000 mflo $2 mfhi $3 jr $31 # 43 [c=0 l=8] *simple_return .end foo .size foo, .-foo