[Bug target/79197] [5/6/7 Regression] ICE in extract_insn in gcc/recog.c:2311
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jan 30 13:09:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79197
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Another testcase (reduced from hdf5) that ICEs even with -O2 -mcpu=power8 when
assembler has popcntd etc. (power7/power8) support:
unsigned long b;
unsigned long
foo (float *a, float *x)
{
__builtin_memcpy (a, x, sizeof (float));
return *a;
}
But as it affects the same buggy expander, I think it is not worth filing yet
another PR about it.
Here the expander emits:
(insn 10 9 11 2 (set (reg:DI 160)
(unsigned_fix:DI (subreg:SF (reg:SI 161) 0))) "hdf5.i":7 -1
(nil))
where (subreg:SF (reg:S 161) 0) is valid register_operand (the predicate the
expander uses).
Except that the pattern actually uses a very different predicate,
gpc_reg_operand, which refuses to accept such a subreg.
More information about the Gcc-bugs
mailing list