https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86640
--- Comment #7 from Segher Boessenkool <segher at gcc dot gnu.org> --- Does this fix the problem / is it correct / etc. ? diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index cf12ace..bdd125e 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -30065,10 +30065,8 @@ arm_block_set_aligned_vect (rtx dstbase, dst = copy_addr_to_reg (XEXP (dstbase, 0)); - v = sext_hwi (v, BITS_PER_WORD); - reg = gen_reg_rtx (mode); - val_vec = gen_const_vec_duplicate (mode, GEN_INT (v)); + val_vec = gen_const_vec_duplicate (mode, gen_int_mode (v, QImode)); /* Emit instruction loading the constant value. */ emit_move_insn (reg, val_vec);