8355913: RISC-V: improve hotspot/jtreg/compiler/vectorization/runner/BasicFloatOpTest.java
Reviewed-by: fyang, rehn
This commit is contained in:
parent
0a697f6ff4
commit
0cd0afb2b3
@ -1916,9 +1916,10 @@ bool Matcher::match_rule_supported(int opcode) {
|
|||||||
|
|
||||||
case Op_FmaF:
|
case Op_FmaF:
|
||||||
case Op_FmaD:
|
case Op_FmaD:
|
||||||
|
return UseFMA;
|
||||||
case Op_FmaVF:
|
case Op_FmaVF:
|
||||||
case Op_FmaVD:
|
case Op_FmaVD:
|
||||||
return UseFMA;
|
return UseRVV && UseFMA;
|
||||||
|
|
||||||
case Op_ConvHF2F:
|
case Op_ConvHF2F:
|
||||||
case Op_ConvF2HF:
|
case Op_ConvF2HF:
|
||||||
|
@ -142,6 +142,7 @@ public class TestFramework {
|
|||||||
"Xlog",
|
"Xlog",
|
||||||
"LogCompilation",
|
"LogCompilation",
|
||||||
"UseCompactObjectHeaders",
|
"UseCompactObjectHeaders",
|
||||||
|
"UseFMA",
|
||||||
// Riscv
|
// Riscv
|
||||||
"UseRVV",
|
"UseRVV",
|
||||||
"UseZbb",
|
"UseZbb",
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
* -XX:+WhiteBoxAPI
|
* -XX:+WhiteBoxAPI
|
||||||
* compiler.vectorization.runner.BasicFloatOpTest
|
* compiler.vectorization.runner.BasicFloatOpTest
|
||||||
*
|
*
|
||||||
* @requires (os.simpleArch == "x64") | (os.simpleArch == "aarch64")
|
* @requires (os.simpleArch == "x64") | (os.simpleArch == "aarch64") | (os.simpleArch == "riscv64")
|
||||||
* @requires vm.compiler2.enabled
|
* @requires vm.compiler2.enabled
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -229,7 +229,7 @@ public class BasicFloatOpTest extends VectorizationTestRunner {
|
|||||||
counts = {IRNode.FMA_VF, ">0", IRNode.VFMLA, ">0"})
|
counts = {IRNode.FMA_VF, ">0", IRNode.VFMLA, ">0"})
|
||||||
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
@IR(applyIfCPUFeature = {"rvv", "true"},
|
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
public float[] vectorMulAdd() {
|
public float[] vectorMulAdd() {
|
||||||
float[] res = new float[SIZE];
|
float[] res = new float[SIZE];
|
||||||
@ -244,7 +244,7 @@ public class BasicFloatOpTest extends VectorizationTestRunner {
|
|||||||
counts = {IRNode.FMA_VF, ">0", IRNode.VFMLS, ">0"})
|
counts = {IRNode.FMA_VF, ">0", IRNode.VFMLS, ">0"})
|
||||||
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
@IR(applyIfCPUFeature = {"rvv", "true"},
|
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
public float[] vectorMulSub1() {
|
public float[] vectorMulSub1() {
|
||||||
float[] res = new float[SIZE];
|
float[] res = new float[SIZE];
|
||||||
@ -259,7 +259,7 @@ public class BasicFloatOpTest extends VectorizationTestRunner {
|
|||||||
counts = {IRNode.FMA_VF, ">0", IRNode.VFMLS, ">0"})
|
counts = {IRNode.FMA_VF, ">0", IRNode.VFMLS, ">0"})
|
||||||
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
@IR(applyIfCPUFeature = {"rvv", "true"},
|
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
public float[] vectorMulSub2() {
|
public float[] vectorMulSub2() {
|
||||||
float[] res = new float[SIZE];
|
float[] res = new float[SIZE];
|
||||||
@ -276,7 +276,7 @@ public class BasicFloatOpTest extends VectorizationTestRunner {
|
|||||||
counts = {IRNode.VFNMLA, ">0"})
|
counts = {IRNode.VFNMLA, ">0"})
|
||||||
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
@IR(applyIfCPUFeature = {"rvv", "true"},
|
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
public float[] vectorNegateMulAdd1() {
|
public float[] vectorNegateMulAdd1() {
|
||||||
float[] res = new float[SIZE];
|
float[] res = new float[SIZE];
|
||||||
@ -293,7 +293,7 @@ public class BasicFloatOpTest extends VectorizationTestRunner {
|
|||||||
counts = {IRNode.VFNMLA, ">0"})
|
counts = {IRNode.VFNMLA, ">0"})
|
||||||
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
@IR(applyIfCPUFeature = {"rvv", "true"},
|
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
public float[] vectorNegateMulAdd2() {
|
public float[] vectorNegateMulAdd2() {
|
||||||
float[] res = new float[SIZE];
|
float[] res = new float[SIZE];
|
||||||
@ -308,7 +308,7 @@ public class BasicFloatOpTest extends VectorizationTestRunner {
|
|||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
@IR(applyIfCPUFeature = {"rvv", "true"},
|
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
|
||||||
counts = {IRNode.FMA_VF, ">0"})
|
counts = {IRNode.FMA_VF, ">0"})
|
||||||
public float[] vectorNegateMulSub() {
|
public float[] vectorNegateMulSub() {
|
||||||
float[] res = new float[SIZE];
|
float[] res = new float[SIZE];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user