This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/34831] ICE on gcc.dg/pr34233.c for MIPS
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Jan 2008 17:14:40 -0000
- Subject: [Bug target/34831] ICE on gcc.dg/pr34233.c for MIPS
- References: <bug-34831-7151@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #10 from steven at gcc dot gnu dot org 2008-01-18 17:14 -------
The problem is IMHO in the div<mode>3 define_expand in mips.md:
(define_expand "div<mode>3"
[(set (match_operand:ANYF 0 "register_operand")
(div:ANYF (match_operand:ANYF 1 "reg_or_1_operand")
(match_operand:ANYF 2 "register_operand")))]
"<divide_condition>"
{
if (const_1_operand (operands[1], <MODE>mode))
if (!(ISA_HAS_FP4 && flag_unsafe_math_optimizations))
operands[1] = force_reg (<MODE>mode, operands[1]);
})
If SB1 can't handle CONST1_RTX in operand 1, then the expander shouldn't
generate an insn like that for it.
So either the define_expand is wrong, or there is a mismatch between this and a
define_insn (at least, AFAIU -- not being a MIPS guru and a below-par back-end
hacker ;-)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34831