Commit 7f46559c by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/88032 (ICE in operand_subword_force, at emit-rtl.c:1793)

	PR middle-end/88032
	* optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it
	is VOIDmode, in which case use int_mode.  Similarly for op1_mode.

From-SVN: r266216
parent fe5d1296
2018-11-16 Jakub Jelinek <jakub@redhat.com>
PR middle-end/88032
* optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it
is VOIDmode, in which case use int_mode. Similarly for op1_mode.
2018-11-16 Eric Botcazou <ebotcazou@adacore.com>
* tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add
......@@ -1377,8 +1377,12 @@ expand_binop (machine_mode mode, optab binoptab, rtx op0, rtx op1,
start_sequence ();
/* Do the actual arithmetic. */
enum machine_mode op0_mode = CONSTANT_P (op0) ? int_mode : VOIDmode;
enum machine_mode op1_mode = CONSTANT_P (op1) ? int_mode : VOIDmode;
enum machine_mode op0_mode = GET_MODE (op0);
enum machine_mode op1_mode = GET_MODE (op1);
if (op0_mode == VOIDmode)
op0_mode = int_mode;
if (op1_mode == VOIDmode)
op1_mode = int_mode;
for (i = 0; i < GET_MODE_BITSIZE (int_mode) / BITS_PER_WORD; i++)
{
rtx target_piece = operand_subword (target, i, 1, int_mode);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment