[gnu.gcc.bug] Gcc 1.36 Bug in mips backend

grunwald@foobar.colorado.edu (Dirk Grunwald) (10/15/89)

configuration: decstation-3100 virgin gcc-1.36 installation
symptom: pattern not recognized by mips backend

repeat by: execute the following program. You can also use ``return(i=i+x)''
so I think it's a general problem of converting between floats and ints.
If anyone comes up with a patch for this before I do, please send me mail,
this is impeding my G++ progress.

[foobar-11] cat test.c
int
foo(int i, float x)
{
    i = (int) x;
}
[foobar-12] gcc -c -v test.c
gcc version 1.36
 /usr/local/Gnu/lib/gcc-cpp -v -undef -D__GNUC__ -Dmips -Dunix -D__mips__ -D__unix__ -DR3000 -DLANGUAGE_C -DMIPSEL -DSYSTYPE_BSD -Dultrix test.c /usr/tmp/cca28975.cpp
GNU CPP version 1.36
 /usr/local/Gnu/lib/gcc-cc1 /usr/tmp/cca28975.cpp -quiet -dumpbase test.c -version -o /usr/tmp/cca28975.s
GNU C version 1.36 (AL-MIPS 1.11) <Decstation>
 compiled by GNU C version 1.36.
default target switches: -munix -mnofixed-ovfl -mG0 -mG1
test.c: In function foo:
test.c:5: The following insn was not recognizable:
(insn 5 4 6 (parallel[ 
           (set (mem:SF (plus:SI (reg:SI 30)
                       (const_int 4)))
               (reg:DF 6))
           (clobber (reg:SI 24))
       ] ) -1 (nil)
   (nil))
gcc: Program cc1 got fatal signal 4.
[foobar-13]