mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-12 23:57:31 +08:00
re PR target/15433 (ICE, cannot split insn)
PR target/15433 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix operand numbering in the output template. (SSE DF cmov 0 splitter): The conditional is VOIDmode. From-SVN: r83305
This commit is contained in:
parent
2df6cea5dc
commit
0620be185d
@ -1,3 +1,14 @@
|
||||
2004-06-17 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
PR target/15433
|
||||
* i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
|
||||
operand numbering in the output template.
|
||||
(SSE DF cmov 0 splitter): The conditional is VOIDmode.
|
||||
|
||||
2004-06-17 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* except.c (can_throw_internal): Recognize RESX expresisons.
|
||||
|
||||
2004-06-17 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* cfgbuild.c (make_edges): Do not use label_value_list.
|
||||
|
@ -18191,7 +18191,7 @@
|
||||
|
||||
(define_split
|
||||
[(set (match_operand:SF 0 "register_operand" "")
|
||||
(if_then_else (match_operator:SF 1 "comparison_operator"
|
||||
(if_then_else (match_operator 1 "comparison_operator"
|
||||
[(match_operand:SF 4 "nonimmediate_operand" "")
|
||||
(match_operand:SF 5 "nonimmediate_operand" "")])
|
||||
(match_operand:SF 2 "nonmemory_operand" "")
|
||||
@ -18217,19 +18217,19 @@
|
||||
if (const0_operand (operands[2], GET_MODE (operands[2])))
|
||||
{
|
||||
operands[7] = operands[3];
|
||||
operands[6] = gen_rtx_NOT (V4SFmode, operands[5]);
|
||||
operands[6] = gen_rtx_NOT (V4SFmode, operands[8]);
|
||||
}
|
||||
else
|
||||
{
|
||||
operands[7] = operands[2];
|
||||
operands[6] = operands[0];
|
||||
operands[6] = operands[8];
|
||||
}
|
||||
operands[7] = simplify_gen_subreg (V4SFmode, operands[7], SFmode, 0);
|
||||
})
|
||||
|
||||
(define_split
|
||||
[(set (match_operand:DF 0 "register_operand" "")
|
||||
(if_then_else (match_operator:DF 1 "comparison_operator"
|
||||
(if_then_else (match_operator 1 "comparison_operator"
|
||||
[(match_operand:DF 4 "nonimmediate_operand" "")
|
||||
(match_operand:DF 5 "nonimmediate_operand" "")])
|
||||
(match_operand:DF 2 "nonmemory_operand" "")
|
||||
|
@ -3114,6 +3114,11 @@ can_throw_internal (rtx insn)
|
||||
if (! INSN_P (insn))
|
||||
return false;
|
||||
|
||||
if (GET_CODE (insn) == JUMP_INSN
|
||||
&& GET_CODE (PATTERN (insn)) == RESX
|
||||
&& XINT (PATTERN (insn), 0) > 0)
|
||||
return can_throw_internal_1 (XINT (PATTERN (insn), 0));
|
||||
|
||||
if (GET_CODE (insn) == INSN
|
||||
&& GET_CODE (PATTERN (insn)) == SEQUENCE)
|
||||
insn = XVECEXP (PATTERN (insn), 0, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user