8287139: aarch64 intrinsic for unsignedMultiplyHigh

Reviewed-by: aph, ngasson
This commit is contained in:
Raffaello Giulietti 2022-05-24 15:49:00 +00:00 committed by Nick Gasson
parent 8f0eb5d401
commit fdc147e354

View File

@ -11132,7 +11132,7 @@ instruct mulHiL_rReg(iRegLNoSp dst, iRegL src1, iRegL src2, rFlagsReg cr)
match(Set dst (MulHiL src1 src2));
ins_cost(INSN_COST * 7);
format %{ "smulh $dst, $src1, $src2, \t# mulhi" %}
format %{ "smulh $dst, $src1, $src2\t# mulhi" %}
ins_encode %{
__ smulh(as_Register($dst$$reg),
@ -11143,6 +11143,22 @@ instruct mulHiL_rReg(iRegLNoSp dst, iRegL src1, iRegL src2, rFlagsReg cr)
ins_pipe(lmul_reg_reg);
%}
instruct umulHiL_rReg(iRegLNoSp dst, iRegL src1, iRegL src2, rFlagsReg cr)
%{
match(Set dst (UMulHiL src1 src2));
ins_cost(INSN_COST * 7);
format %{ "umulh $dst, $src1, $src2\t# umulhi" %}
ins_encode %{
__ umulh(as_Register($dst$$reg),
as_Register($src1$$reg),
as_Register($src2$$reg));
%}
ins_pipe(lmul_reg_reg);
%}
// Combined Integer Multiply & Add/Sub
instruct maddI(iRegINoSp dst, iRegIorL2I src1, iRegIorL2I src2, iRegIorL2I src3) %{