re PR target/91814 (ICE in elimination_costs_in_insn, at reload1.c:3549 since r274926)

2019-09-19  Richard Biener  <rguenther@suse.de>

	PR target/91814
	* config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
	Force operand to a register if it isn't nonimmediate_operand.

From-SVN: r275971
This commit is contained in:
Richard Biener 2019-09-19 17:05:51 +00:00 committed by Richard Biener
parent 40858b9dfb
commit 54dc857754
2 changed files with 10 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2019-09-19 Richard Biener <rguenther@suse.de>
PR target/91814
* config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
Force operand to a register if it isn't nonimmediate_operand.
2019-09-19 Wilco Dijkstra <wdijkstr@arm.com>
* config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>.

View file

@ -668,10 +668,13 @@ scalar_chain::emit_conversion_insns (rtx insns, rtx_insn *after)
static rtx
gen_gpr_to_xmm_move_src (enum machine_mode vmode, rtx gpr)
{
if (!nonimmediate_operand (gpr, GET_MODE_INNER (vmode)))
gpr = force_reg (GET_MODE_INNER (vmode), gpr);
switch (GET_MODE_NUNITS (vmode))
{
case 1:
return gen_rtx_SUBREG (vmode, gpr, 0);
/* We are not using this case currently. */
gcc_unreachable ();
case 2:
return gen_rtx_VEC_CONCAT (vmode, gpr,
CONST0_RTX (GET_MODE_INNER (vmode)));