https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78012
--- Comment #3 from Aurelien Jarno <aurelien at aurel32 dot net> ---
(In reply to Maciej W. Rozycki from comment #2)
> I can't reproduce your problem with either test case and:
>
> mips-mti-linux-gnu-gcc (GCC) 7.0.0 20161117 (experimental)
>
> -- code produced assembles correctly and visual inspection of the
> assembly reveals no odd-numbered FGR operands throughout.
>
> Would you therefore please reconfirm this issue still triggers with
> current HEAD, and if so, then report the details of your compilation as
> shown with the `-v' flag added to your invocation line?
Sorry about that. I think the trick there is that Debian defaults to mips32r2.
Indeed, I am not able to reproduce the problem with -march=mips32. I have tried
again, I am still able to reproduce the issue for both testcases when using GCC
6.2.1, but only with the non-reduced testcase when using GCC trunk (through I
used the one in Debian, so a slightly older version than you from 20161106).
Here is the output with the -v flag added:
$ gcc -mfpxx -O2 -c fun-p86c.i -v
Using built-in specs.
COLLECT_GCC=gcc
Target: mips-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 20161106-1'
--with-bugurl=file:///usr/share/doc/gcc-snapshot/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr/lib/gcc-snapshot
--program-prefix= --enable-
shared --enable-linker-build-id --disable-nls --with-sysroot=/
--enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm
--disable-libsanitizer --disa
ble-libquadmath --enable-plugin --enable-default-pie --with-system-zlib
--enable-multiarch --enable-multilib --with-arch-32=mips32r2 --with-fp-32=xx
--enable-targets=all --with-arch-64=mips64r2 --disable-werror
--enable-checking=yes --build=mi
ps-linux-gnu --host=mips-linux-gnu --target=mips-linux-gnu
Thread model: posix
gcc version 7.0.0 20161106 (experimental) [trunk revision 241885] (Debian
20161106-1)
COLLECT_GCC_OPTIONS='-mfpxx' '-O2' '-c' '-v' '-march=mips32r2' '-mllsc'
'-mips32r2' '-EB' '-mabi=32'
/usr/lib/gcc-snapshot/libexec/gcc/mips-linux-gnu/7.0.0/cc1 -fpreprocessed
fun-p86c.i -meb -quiet -dumpbase fun-p86c.i -mfpxx -march=mips32r2 -mllsc
-mips32r2 -mabi=32 -auxbase fun-p86c -O2 -version -o /tmp/ccbT7qjh.s
GNU C11 (Debian 20161106-1) version 7.0.0 20161106 (experimental) [trunk
revision 241885] (mips-linux-gnu)
compiled by GNU C version 7.0.0 20161106 (experimental) [trunk revision
241885], GMP version 6.1.1, MPFR version 3.1.5, MPC version 1.0.3, isl version
0.15
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C11 (Debian 20161106-1) version 7.0.0 20161106 (experimental) [trunk
revision 241885] (mips-linux-gnu)
compiled by GNU C version 7.0.0 20161106 (experimental) [trunk revision
241885], GMP version 6.1.1, MPFR version 3.1.5, MPC version 1.0.3, isl version
0.15
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: b5d3035afeb69ed786f0bd6e5bf73e96
COLLECT_GCC_OPTIONS='-mfpxx' '-O2' '-c' '-v' '-march=mips32r2' '-mllsc'
'-mips32r2' '-EB' '-mabi=32'
as -v -EB -mips32r2 -O2 -no-mdebug -mabi=32 -march=mips32r2 -mfpxx -KPIC -o
fun-p86c.o /tmp/ccbT7qjh.s
GNU assembler version 2.27.51 (mips-linux-gnu) using BFD version (GNU Binutils
for Debian) 2.27.51.20161118
/tmp/ccbT7qjh.s: Assembler messages:
/tmp/ccbT7qjh.s:1859: Error: float register should be even, was 15
/tmp/ccbT7qjh.s:2567: Error: float register should be even, was 15