re PR target/89378 ([MIPS] FAIL: gcc.dg/vect/pr88598-3.c -mmsa (internal compiler error))

PR target/89378
	* config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
	instead of gen_rtx_SUBREG.
	* config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.

From-SVN: r269801
This commit is contained in:
Jakub Jelinek 2019-03-19 17:10:59 +01:00 committed by Jakub Jelinek
parent 22fdf6af14
commit bb48c402f4
3 changed files with 11 additions and 4 deletions

View file

@ -1,3 +1,10 @@
2019-03-19 Jakub Jelinek <jakub@redhat.com>
PR target/89378
* config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
instead of gen_rtx_SUBREG.
* config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
2019-03-19 Richard Biener <rguenther@suse.de>
PR debug/88389

View file

@ -346,12 +346,12 @@
operands[2] accordingly. */
rtx wd = gen_reg_rtx (V16QImode);
rtx ws = gen_reg_rtx (V16QImode);
emit_move_insn (ws, gen_rtx_SUBREG (V16QImode, operands[1], 0));
emit_move_insn (ws, gen_lowpart (V16QImode, operands[1]));
rtx n = GEN_INT (val * GET_MODE_SIZE (<UNITMODE>mode));
gcc_assert (INTVAL (n) < GET_MODE_NUNITS (V16QImode));
emit_insn (gen_msa_sldi_b (wd, ws, ws, n));
temp = gen_reg_rtx (<MODE>mode);
emit_move_insn (temp, gen_rtx_SUBREG (<MODE>mode, wd, 0));
emit_move_insn (temp, gen_lowpart (<MODE>mode, wd));
}
emit_insn (gen_msa_vec_extract_<msafmt_f> (operands[0], temp));
DONE;

View file

@ -22265,7 +22265,7 @@ mips_expand_vec_cond_expr (machine_mode mode, machine_mode vimode,
if (mode != vimode)
{
xop1 = gen_reg_rtx (vimode);
emit_move_insn (xop1, gen_rtx_SUBREG (vimode, operands[1], 0));
emit_move_insn (xop1, gen_lowpart (vimode, operands[1]));
}
emit_move_insn (src1, xop1);
}
@ -22282,7 +22282,7 @@ mips_expand_vec_cond_expr (machine_mode mode, machine_mode vimode,
if (mode != vimode)
{
xop2 = gen_reg_rtx (vimode);
emit_move_insn (xop2, gen_rtx_SUBREG (vimode, operands[2], 0));
emit_move_insn (xop2, gen_lowpart (vimode, operands[2]));
}
emit_move_insn (src2, xop2);
}