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

--- Comment #1 from Paul Hua <paul.hua.gm at gmail dot com> ---
and other new fails:

  681 FAIL: gcc.target/mips/fpr-moves-5.c   -O1   scan-assembler
\\tsdc1\\t\\\\\$f12,0\\\\(\\\\\$6\\\\)\\n                                       
  682 FAIL: gcc.target/mips/fpr-moves-5.c   -O1   scan-assembler
\\tsdc1\\t\\\\\$f13,8\\\\(\\\\\$6\\\\)\\n                                       
  683 FAIL: gcc.target/mips/fpr-moves-5.c   -O2   scan-assembler
\\tsdc1\\t\\\\\$f12,0\\\\(\\\\\$6\\\\)\\n                                       
  684 FAIL: gcc.target/mips/fpr-moves-5.c   -O2   scan-assembler
\\tsdc1\\t\\\\\$f13,8\\\\(\\\\\$6\\\\)\\n                                       
  685 FAIL: gcc.target/mips/fpr-moves-5.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none   scan-assembler \\tsdc1\\t\\\\\$f12,0\\\\(\\\\\$6\\\\)\\n 
  686 FAIL: gcc.target/mips/fpr-moves-5.c   -O2 -flto -fno-use-linker-plugin
-flto-partition=none   scan-assembler \\tsdc1\\t\\\\\$f13,8\\\\(\\\\\$6\\\\)\\n 
  687 FAIL: gcc.target/mips/fpr-moves-5.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects   scan-assembler \\tsdc1\\t\\\\\$f12,0\\\\(\\\\\$6\\\\)\\n 
  688 FAIL: gcc.target/mips/fpr-moves-5.c   -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects   scan-assembler \\tsdc1\\t\\\\\$f13,8\\\\(\\\\\$6\\\\)\\n 
  689 FAIL: gcc.target/mips/fpr-moves-5.c   -O3 -g   scan-assembler
\\tsdc1\\t\\\\\$f12,0\\\\(\\\\\$6\\\\)\\n                                       
  690 FAIL: gcc.target/mips/fpr-moves-5.c   -O3 -g   scan-assembler
\\tsdc1\\t\\\\\$f13,8\\\\(\\\\\$6\\\\)\\n                                       
  691 FAIL: gcc.target/mips/fpr-moves-5.c   -Os   scan-assembler
\\tsdc1\\t\\\\\$f12,0\\\\(\\\\\$6\\\\)\\n                                       
  692 FAIL: gcc.target/mips/fpr-moves-5.c   -Os   scan-assembler
\\tsdc1\\t\\\\\$f13,8\\\\(\\\\\$6\\\\)\\n   


$ cat fpr-moves-5.i

# 1
"/home/xuchenghua/GCC/gcc_git_trunk/gcc/testsuite/gcc.target/mips/fpr-moves-5.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/fpr-moves-5.c"




__attribute__((nomips16)) void
foo (long double d, long double *x)
{
  *x = d;
}

__attribute__((nomips16)) long double
bar (long double d, long double *x)
{
  register long double l1 asm ("$8") = d;
  register long double l2 asm ("$10") = x[1];
  register long double l3 asm ("$f20") = 0.0;
  asm ("#foo" : "=d" (l1) : "d" (l1));
  asm ("#foo" : "=d" (l2) : "d" (l2));
  asm volatile ("#foo" :: "f" (l3));
  x[1] = l1;
  return l2;
}

$./cc1 -fpreprocessed fpr-moves-5.i -mel -quiet -dumpbase fpr-moves-5.c
-mabi=64 -mhard-float -mgp64 -mlong64 -march=mips64r2 -mllsc -mips64r2
-mno-shared -auxbase-strip fpr-moves-5.s -O1 -version -fdiagnostics-color=never
-fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-ffat-lto-objects -fno-ident -o fpr-moves-5.s


good asm:

foo:
        .frame  $sp,0,$31               # vars= 0, regs= 0/0, args= 0, gp= 0
        .mask   0x00000000,0
        .fmask  0x00000000,0
        .set    noreorder
        .set    nomacro
        sdc1    $f12,0($6)
        jr      $31
        sdc1    $f13,8($6)

bad asm:

foo:
        .frame  $sp,0,$31               # vars= 0, regs= 0/0, args= 0, gp= 0
        .mask   0x00000000,0
        .fmask  0x00000000,0
        .set    noreorder
        .set    nomacro
        dmfc1   $2,$f12
        dmfc1   $3,$f13
        sd      $2,0($6)
        jr      $31
        sd      $3,8($6)

Reply via email to