re PR target/91814 (ICE in elimination_costs_in_insn, at reload1.c:3549 since r274926)
2019-09-20 Richard Biener <rguenther@suse.de> Uros Bizjak <ubizjak@gmail.com> PR target/91814 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert previous change. (general_scalar_chain::convert_op): Force not suitable memory operands to a register. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r275998
This commit is contained in:
parent
d63eadac7d
commit
b049c26955
2 changed files with 18 additions and 2 deletions
|
@ -1,3 +1,12 @@
|
|||
2019-09-20 Richard Biener <rguenther@suse.de>
|
||||
Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/91814
|
||||
* config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert
|
||||
previous change.
|
||||
(general_scalar_chain::convert_op): Force not suitable memory
|
||||
operands to a register.
|
||||
|
||||
2019-09-20 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/91821
|
||||
|
|
|
@ -668,8 +668,6 @@ 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:
|
||||
|
@ -835,6 +833,15 @@ general_scalar_chain::convert_op (rtx *op, rtx_insn *insn)
|
|||
{
|
||||
rtx tmp = gen_reg_rtx (GET_MODE (*op));
|
||||
|
||||
/* Handle movabs. */
|
||||
if (!memory_operand (*op, GET_MODE (*op)))
|
||||
{
|
||||
rtx tmp2 = gen_reg_rtx (GET_MODE (*op));
|
||||
|
||||
emit_insn_before (gen_rtx_SET (tmp2, *op), insn);
|
||||
*op = tmp2;
|
||||
}
|
||||
|
||||
emit_insn_before (gen_rtx_SET (gen_rtx_SUBREG (vmode, tmp, 0),
|
||||
gen_gpr_to_xmm_move_src (vmode, *op)),
|
||||
insn);
|
||||
|
|
Loading…
Add table
Reference in a new issue