This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 3.1.1 Status
> and there isn't a FLOAT_REG that will hold a QImode value, so we fail the
> test in set_reload_reg for each attempted FLOAT_REG. Basically, since
> reg 90 didn't get a hard, we'd be trying to move a byte from a floating
> point register to a memory location, and that is obviously not going to
> work. So, we certainly should never have made a reload like this one.
>
> All of this might have worked better if push_reload hadn't decided to strip
> the subreg (it gets passed "(subreg:SF (reg:QI 90))" for OUT). But then,
> I certainly don't fully understand the logic behind the 60 line if conditions
> that deal with subregs, so it's hard to decide what to do about it.
>
> Can you show me an example of what happens in the x86-64 case?
The failure is:
Executing on host: /usr/src/aj/regression/build/gcc/xgcc -B/usr/src/aj/regression/build/gcc/ /usr/src/aj/regres
sion/sources/gcc/gcc/gcc/testsuite/gcc.dg/i386-sse-1.c -O2 -msse -S -o i386-sse-1.s (timeout = 300)
In file included from /usr/src/aj/regression/sources/gcc/gcc/gcc/testsuite/gcc.dg/i386-sse-1.c:12:
/usr/src/aj/regression/build/gcc/include/xmmintrin.h: In function `_mm_mul_epu16':
/usr/src/aj/regression/build/gcc/include/xmmintrin.h:1714: error: unable to find a register to spill in class `
MMX_REGS'
/usr/src/aj/regression/build/gcc/include/xmmintrin.h:1714: error: this is the insn:
(insn:HI 14 13 15 0 (nil) (set (reg:V2DI 21 exmm0 [64])
(mult:V2DI (zero_extend:V2DI (vec_select:V2SI (reg:V4SI 23 exmm2 [62])
(parallel [
(const_int 0 [0x0])
(const_int 2 [0x2])
])))
(zero_extend:V2DI (vec_select:V2SI (reg:V4SI 21 exmm0 [63])
(parallel [
(const_int 0 [0x0])
(const_int 2 [0x2])
]))))) 931 {sse2_umulv2siv2di3} (insn_list 12 (insn_list 13 (nil)))
(expr_list:REG_DEAD (reg:V4SI 23 exmm2 [62])
(expr_list:REG_DEAD (reg:V4SI 21 exmm0 [63])
(nil))))
/usr/src/aj/regression/build/gcc/include/xmmintrin.h:1714: internal compiler error: Internal compiler error in
spill_failure, at reload1.c:1908
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.