mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 12:09:14 +00:00
8293695: Implement isInfinite intrinsic for RISC-V
Reviewed-by: yadongwang, fyang, dsamersoff
This commit is contained in:
parent
8f3bbe950f
commit
b31a03c60a
@ -7230,6 +7230,32 @@ instruct minD_reg_reg(fRegD dst, fRegD src1, fRegD src2) %{
|
||||
ins_pipe(fp_dop_reg_reg_d);
|
||||
%}
|
||||
|
||||
// Float.isInfinite
|
||||
instruct isIniniteF_reg_reg(iRegINoSp dst, fRegF src)
|
||||
%{
|
||||
match(Set dst (IsInfiniteF src));
|
||||
format %{ "isInfinite $dst, $src" %}
|
||||
ins_encode %{
|
||||
__ fclass_s(as_Register($dst$$reg), as_FloatRegister($src$$reg));
|
||||
__ andi(as_Register($dst$$reg), as_Register($dst$$reg), 0b10000001);
|
||||
__ slt(as_Register($dst$$reg), zr, as_Register($dst$$reg));
|
||||
%}
|
||||
ins_pipe(fp_dop_reg_reg_s);
|
||||
%}
|
||||
|
||||
// Double.isInfinite
|
||||
instruct isInfiniteD_reg_reg(iRegINoSp dst, fRegD src)
|
||||
%{
|
||||
match(Set dst (IsInfiniteD src));
|
||||
format %{ "isInfinite $dst, $src" %}
|
||||
ins_encode %{
|
||||
__ fclass_d(as_Register($dst$$reg), as_FloatRegister($src$$reg));
|
||||
__ andi(as_Register($dst$$reg), as_Register($dst$$reg), 0b10000001);
|
||||
__ slt(as_Register($dst$$reg), zr, as_Register($dst$$reg));
|
||||
%}
|
||||
ins_pipe(fp_dop_reg_reg_d);
|
||||
%}
|
||||
|
||||
instruct divF_reg_reg(fRegF dst, fRegF src1, fRegF src2) %{
|
||||
match(Set dst (DivF src1 src2));
|
||||
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @summary Test x86_64 intrinsics for Double methods isNaN, isFinite, isInfinite.
|
||||
* @requires vm.cpu.features ~= ".*avx512dq.*"
|
||||
* @summary Test intrinsics for Double methods isNaN, isFinite, isInfinite.
|
||||
* @requires vm.cpu.features ~= ".*avx512dq.*" | os.arch == "riscv64"
|
||||
* @library /test/lib /
|
||||
* @run driver compiler.intrinsics.TestDoubleClassCheck
|
||||
*/
|
||||
|
||||
@ -23,8 +23,8 @@
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @summary Test x86_64 intrinsics for Float methods isNaN, isFinite, isInfinite.
|
||||
* @requires vm.cpu.features ~= ".*avx512dq.*"
|
||||
* @summary Test intrinsics for Float methods isNaN, isFinite, isInfinite.
|
||||
* @requires vm.cpu.features ~= ".*avx512dq.*" | os.arch == "riscv64"
|
||||
* @library /test/lib /
|
||||
* @run driver compiler.intrinsics.TestFloatClassCheck
|
||||
*/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user