[Bug middle-end/95830] [11 regression][MIPS/MSA] internal compiler error: in do_store_flag, at expr.c:12247 start with gcc-11-1445-g502d63b6d61

paul.hua.gm at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Jun 26 08:54:40 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95830

Paul Hua <paul.hua.gm at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |---

--- Comment #5 from Paul Hua <paul.hua.gm at gmail dot com> ---
The following testcase still fails on mips.

FAIL: gcc.target/mips/mips-ps-5.c   -O1   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O1   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O2   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O2   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O3 -g   scan-assembler
\\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O3 -g   scan-assembler
\\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-5.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O1   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O1   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O2   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O2   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions   scan-assembler \\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O3 -g   scan-assembler
\\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O3 -g   scan-assembler
\\tmov[tf]\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none   scan-assembler \\tc\\\\.eq\\\\.ps\\t
FAIL: gcc.target/mips/mips-ps-7.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none   scan-assembler \\tmov[tf]\\\\.ps\\t


$ cat mips-ps-5.i 


extern float a[] __attribute__ ((aligned (8)));
extern float b[] __attribute__ ((aligned (8)));
extern float c[] __attribute__ ((aligned (8)));

__attribute__((nomips16)) void
foo (void)
{
  int i;
  for (i = 0; i < 16; i++)
    a[i] = b[i] == c[i] + 1 ? b[i] : c[i];
}

$ ./gcc/cc1 -fpreprocessed mips-ps-5.i -mel -quiet -dumpbase mips-ps-5.c
-dumpbase-ext .c -mhard-float -mdouble-float -mfp64 -mgp64 -mpaired-single
-modd-spreg -march=mips64r2 -mabi=64 -mllsc -mips64r2 -mno-shared -O1 -version
-fdiagnostics-color=never -fno-diagnostics-show-caret
-fno-diagnostics-show-line-numbers -fdiagnostics-urls=never -ftree-vectorize
-ffat-lto-objects -fno-ident -o mips-ps-5.s

old asm out :
.L2:
        ldc1    $f0,0($2)
        ldc1    $f1,0($4)
        add.ps  $f2,$f1,$f3
        c.eq.ps $fcc0,$f0,$f2
        movf.ps $f0,$f1,$fcc0
        sdc1    $f0,0($3)
        daddiu  $2,$2,8
        daddiu  $4,$4,8
        .set    noreorder
        .set    nomacro
        bne     $2,$5,.L2
        daddiu  $3,$3,8
        .set    macro
        .set    reorder

after r11-1445-g502d63b6d61 asm out:

.L2:
        ldc1    $f2,0($3)
        ldc1    $f0,0($5)
        add.ps  $f3,$f0,$f5
        cvt.s.pl        $f1,$f2
        cvt.s.pu        $f2,$f2
        cvt.s.pl        $f4,$f3
        c.eq.s  $fcc0,$f1,$f4
        move    $2,$6
        movf    $2,$0,$fcc0
        sw      $2,16($sp)
        cvt.s.pu        $f3,$f3
        c.eq.s  $fcc1,$f2,$f3
        move    $2,$6
        movf    $2,$0,$fcc1
        sw      $2,20($sp)
        ld      $2,16($sp)
        sll     $7,$2,0
        dsra    $2,$2,32
        cvt.s.pl        $f3,$f0
        movz.s  $f1,$f3,$7
        cvt.s.pu        $f0,$f0
        movn.s  $f0,$f2,$2
        cvt.ps.s        $f1,$f0,$f1
        sdc1    $f1,0($4)
        daddiu  $3,$3,8
        daddiu  $5,$5,8
        .set    noreorder
        .set    nomacro
        bne     $3,$8,.L2
        daddiu  $4,$4,8
        .set    macro
        .set    reorder


More information about the Gcc-bugs mailing list