diff --git a/qemu/target/arm/translate.c b/qemu/target/arm/translate.c index e366bb50..dda37fe8 100644 --- a/qemu/target/arm/translate.c +++ b/qemu/target/arm/translate.c @@ -5857,16 +5857,8 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn) gen_gvec_sli(tcg_ctx, size, rd_ofs, rm_ofs, shift, vec_size, vec_size); } else { /* VSHL */ - /* Shifts larger than the element size are - * architecturally valid and results in zero. - */ - if (shift >= 8 << size) { - tcg_gen_gvec_dup_imm(tcg_ctx, size, rd_ofs, - vec_size, vec_size, 0); - } else { - tcg_gen_gvec_shli(tcg_ctx, size, rd_ofs, rm_ofs, shift, - vec_size, vec_size); - } + tcg_gen_gvec_shli(tcg_ctx, size, rd_ofs, rm_ofs, shift, + vec_size, vec_size); } return 0; }