Skip to content

Commit da004cb

Browse files
author
Hamlin Li
committed
8356030: RISC-V: enable (part of) BasicDoubleOpTest.java
Reviewed-by: fyang, luhenry
1 parent b5fd289 commit da004cb

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

test/hotspot/jtreg/compiler/vectorization/runner/BasicDoubleOpTest.java

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/*
22
* Copyright (c) 2022, 2023, Arm Limited. All rights reserved.
33
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
4+
* Copyright (c) 2025, Rivos Inc. All rights reserved.
45
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
56
*
67
* This code is free software; you can redistribute it and/or modify it
@@ -36,7 +37,7 @@
3637
* -XX:+WhiteBoxAPI
3738
* compiler.vectorization.runner.BasicDoubleOpTest
3839
*
39-
* @requires (os.simpleArch == "x64") | (os.simpleArch == "aarch64")
40+
* @requires (os.simpleArch == "x64") | (os.simpleArch == "aarch64") | (os.simpleArch == "riscv64")
4041
* @requires vm.compiler2.enabled
4142
*/
4243

@@ -118,7 +119,7 @@ public BasicDoubleOpTest() {
118119

119120
// ---------------- Arithmetic ----------------
120121
@Test
121-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true"},
122+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true", "rvv", "true"},
122123
counts = {IRNode.NEG_VD, ">0"})
123124
public double[] vectorNeg() {
124125
double[] res = new double[SIZE];
@@ -129,7 +130,7 @@ public double[] vectorNeg() {
129130
}
130131

131132
@Test
132-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true"},
133+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true", "rvv", "true"},
133134
counts = {IRNode.ABS_VD, ">0"})
134135
public double[] vectorAbs() {
135136
double[] res = new double[SIZE];
@@ -140,7 +141,7 @@ public double[] vectorAbs() {
140141
}
141142

142143
@Test
143-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true"},
144+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true", "rvv", "true"},
144145
counts = {IRNode.SQRT_VD, ">0"})
145146
public double[] vectorSqrt() {
146147
double[] res = new double[SIZE];
@@ -184,7 +185,7 @@ public double[] vectorRint() {
184185
}
185186

186187
@Test
187-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true"},
188+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true", "rvv", "true"},
188189
counts = {IRNode.ADD_VD, ">0"})
189190
public double[] vectorAdd() {
190191
double[] res = new double[SIZE];
@@ -195,7 +196,7 @@ public double[] vectorAdd() {
195196
}
196197

197198
@Test
198-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true"},
199+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true", "rvv", "true"},
199200
counts = {IRNode.SUB_VD, ">0"})
200201
public double[] vectorSub() {
201202
double[] res = new double[SIZE];
@@ -206,7 +207,7 @@ public double[] vectorSub() {
206207
}
207208

208209
@Test
209-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true"},
210+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true", "rvv", "true"},
210211
counts = {IRNode.MUL_VD, ">0"})
211212
public double[] vectorMul() {
212213
double[] res = new double[SIZE];
@@ -217,7 +218,7 @@ public double[] vectorMul() {
217218
}
218219

219220
@Test
220-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true"},
221+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "sse2", "true", "rvv", "true"},
221222
counts = {IRNode.DIV_VD, ">0"})
222223
public double[] vectorDiv() {
223224
double[] res = new double[SIZE];
@@ -228,7 +229,7 @@ public double[] vectorDiv() {
228229
}
229230

230231
@Test
231-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true"},
232+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true", "rvv", "true"},
232233
counts = {IRNode.MAX_VD, ">0"})
233234
public double[] vectorMax() {
234235
double[] res = new double[SIZE];
@@ -239,7 +240,7 @@ public double[] vectorMax() {
239240
}
240241

241242
@Test
242-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true"},
243+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true", "rvv", "true"},
243244
counts = {IRNode.MAX_VD, "0"})
244245
public double[] vectorMax_8322090() {
245246
double[] res = new double[SIZE];
@@ -250,7 +251,7 @@ public double[] vectorMax_8322090() {
250251
}
251252

252253
@Test
253-
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true"},
254+
@IR(applyIfCPUFeatureOr = {"asimd", "true", "avx", "true", "rvv", "true"},
254255
counts = {IRNode.MIN_VD, ">0"})
255256
public double[] vectorMin() {
256257
double[] res = new double[SIZE];
@@ -265,6 +266,8 @@ public double[] vectorMin() {
265266
counts = {IRNode.FMA_VD, ">0", IRNode.VFMLA, ">0"})
266267
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
267268
counts = {IRNode.FMA_VD, ">0"})
269+
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
270+
counts = {IRNode.FMA_VD, ">0"})
268271
public double[] vectorMulAdd() {
269272
double[] res = new double[SIZE];
270273
for (int i = 0; i < SIZE; i++) {
@@ -278,6 +281,8 @@ public double[] vectorMulAdd() {
278281
counts = {IRNode.FMA_VD, ">0", IRNode.VFMLS, ">0"})
279282
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
280283
counts = {IRNode.FMA_VD, ">0"})
284+
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
285+
counts = {IRNode.FMA_VD, ">0"})
281286
public double[] vectorMulSub1() {
282287
double[] res = new double[SIZE];
283288
for (int i = 0; i < SIZE; i++) {
@@ -291,6 +296,8 @@ public double[] vectorMulSub1() {
291296
counts = {IRNode.FMA_VD, ">0", IRNode.VFMLS, ">0"})
292297
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
293298
counts = {IRNode.FMA_VD, ">0"})
299+
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
300+
counts = {IRNode.FMA_VD, ">0"})
294301
public double[] vectorMulSub2() {
295302
double[] res = new double[SIZE];
296303
for (int i = 0; i < SIZE; i++) {
@@ -306,6 +313,8 @@ public double[] vectorMulSub2() {
306313
counts = {IRNode.VFNMLA, ">0"})
307314
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
308315
counts = {IRNode.FMA_VD, ">0"})
316+
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
317+
counts = {IRNode.FMA_VD, ">0"})
309318
public double[] vectorNegateMulAdd1() {
310319
double[] res = new double[SIZE];
311320
for (int i = 0; i < SIZE; i++) {
@@ -321,6 +330,8 @@ public double[] vectorNegateMulAdd1() {
321330
counts = {IRNode.VFNMLA, ">0"})
322331
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
323332
counts = {IRNode.FMA_VD, ">0"})
333+
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
334+
counts = {IRNode.FMA_VD, ">0"})
324335
public double[] vectorNegateMulAdd2() {
325336
double[] res = new double[SIZE];
326337
for (int i = 0; i < SIZE; i++) {
@@ -334,6 +345,8 @@ public double[] vectorNegateMulAdd2() {
334345
counts = {IRNode.FMA_VD, ">0"})
335346
@IR(applyIfCPUFeatureAnd = {"fma", "true", "avx", "true"},
336347
counts = {IRNode.FMA_VD, ">0"})
348+
@IR(applyIfCPUFeature = {"rvv", "true"}, applyIf = {"UseFMA", "true"},
349+
counts = {IRNode.FMA_VD, ">0"})
337350
public double[] vectorNegateMulSub() {
338351
double[] res = new double[SIZE];
339352
for (int i = 0; i < SIZE; i++) {

0 commit comments

Comments
 (0)