Allow i128 amount operands on shift instructions in the x64 backend

Fixes #2727.
This commit is contained in:
Afonso Bordado
2021-05-08 17:11:16 +01:00
parent f60ae73d15
commit e021995323
3 changed files with 310 additions and 1 deletions

View File

@@ -2046,7 +2046,7 @@ fn lower_insn_to_regs<C: LowerCtx<I = Inst>>(
}
ctx.emit(Inst::shift_r(size, shift_kind, count, dst));
} else if dst_ty == types::I128 {
let amt_src = put_input_in_reg(ctx, inputs[1]);
let amt_src = put_input_in_regs(ctx, inputs[1]).regs()[0];
let src = put_input_in_regs(ctx, inputs[0]);
let dst = get_output_reg(ctx, outputs[0]);