+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
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;
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);
}
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);
}