http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59459

            Bug ID: 59459
           Summary: MIPS target tests failing
                    (gcc.target/mips/fpr-moves-7.c, fpr-moves-8.c,
                    int-moves-1.c, etc)
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: sje at gcc dot gnu.org
                CC: richard.sandiford at linaro dot org
            Target: mips*-*-*

Starting around December 2nd, 2013 I noticed some new MIPS test failures. 
These include 

gcc.target/mips/fpr-moves-7.c
gcc.target/mips/fpr-moves-8.c
gcc.target/mips/int-moves-1.c

and possibly some others.  Here is a cutdown test case based on fpr-moves-7.c

extern unsigned char gstuff[0x10000];
__attribute__((mips16)) long double
bar ()
{
  return *(long double *) (gstuff + 0x7fff);
}

And here is the failure, it requires the -mabi=64 -mips64r2 -EL -msoft-float
-fno-pic -msym32 flags.

I am not sure if this combination makes sense or not but GCC does not reject
them.  If I take out -msoft-float or -fno-pic or -msym32 then the compiler does
reject the option combination.  I think -msym32
forces the o64 ABI which technically supports mips16.


install-mips-mti-linux-gnu/bin/mips-mti-linux-gnu-gcc fpr-moves-7a.c -O0 '-mab
i=64' -mips64r2 -EL -msoft-float -fno-pic -msym32 -S -o fpr-moves-7.s
fpr-moves-7a.c: In function 'bar':
fpr-moves-7a.c:6:1: error: unrecognizable insn:
 }
 ^
(insn 8 7 9 2 (set (reg:DI 198)
        (unspec:DI [
                (mem/c:BLK (reg/f:DI 197) [0 MEM[(long double *)&gstuff +
32767B
]+0 S8 A8])
                (mem/c:QI (plus:DI (reg/f:DI 197)
                        (const_int 7 [0x7])) [0 MEM[(long double *)&gstuff +
327
67B]+7 S1 A8])
            ] UNSPEC_LOAD_LEFT)) fpr-moves-7a.c:5 -1
     (nil))
fpr-moves-7a.c:6:1: internal compiler error: in extract_insn, at recog.c:2164
0x8f230a _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
    /local/home/sellcey/nightly/src/gcc/gcc/rtl-error.c:109
0x8f2339 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
    /local/home/sellcey/nightly/src/gcc/gcc/rtl-error.c:117
0x8bf663 extract_insn(rtx_def*)
    /local/home/sellcey/nightly/src/gcc/gcc/recog.c:2164
0x74b9f3 instantiate_virtual_regs_in_insn
    /local/home/sellcey/nightly/src/gcc/gcc/function.c:1555
0x74b9f3 instantiate_virtual_regs
    /local/home/sellcey/nightly/src/gcc/gcc/function.c:1921
0x74b9f3 execute
    /local/home/sellcey/nightly/src/gcc/gcc/function.c:1971
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reply via email to