From fdc147e3540801822f5b15c9c5a76cacc92c4fd2 Mon Sep 17 00:00:00 2001 From: Raffaello Giulietti Date: Tue, 24 May 2022 15:49:00 +0000 Subject: [PATCH] 8287139: aarch64 intrinsic for unsignedMultiplyHigh Reviewed-by: aph, ngasson --- src/hotspot/cpu/aarch64/aarch64.ad | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/hotspot/cpu/aarch64/aarch64.ad b/src/hotspot/cpu/aarch64/aarch64.ad index fe62e2fdf52..e0774bb8bea 100644 --- a/src/hotspot/cpu/aarch64/aarch64.ad +++ b/src/hotspot/cpu/aarch64/aarch64.ad @@ -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) %{