diff --git a/test/hotspot/jtreg/compiler/c2/irTests/TestConditionalMove.java b/test/hotspot/jtreg/compiler/c2/cmove/TestConditionalMove.java similarity index 95% rename from test/hotspot/jtreg/compiler/c2/irTests/TestConditionalMove.java rename to test/hotspot/jtreg/compiler/c2/cmove/TestConditionalMove.java index c531f73b71d..91197322319 100644 --- a/test/hotspot/jtreg/compiler/c2/irTests/TestConditionalMove.java +++ b/test/hotspot/jtreg/compiler/c2/cmove/TestConditionalMove.java @@ -36,7 +36,7 @@ import jdk.test.lib.Utils; * @key randomness * @summary Auto-vectorization enhancement to support vector conditional move. * @library /test/lib / - * @run driver compiler.c2.irTests.TestConditionalMove + * @run driver ${test.main.class} */ public class TestConditionalMove { @@ -601,7 +601,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVFGT(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] > b[i]) ? a[i] : b[i]; @@ -619,7 +619,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVFGTSwap(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (b[i] > a[i]) ? a[i] : b[i]; @@ -637,7 +637,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVFLT(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] < b[i]) ? a[i] : b[i]; @@ -655,7 +655,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVFLTSwap(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (b[i] < a[i]) ? a[i] : b[i]; @@ -673,7 +673,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVFEQ(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] == b[i]) ? a[i] : b[i]; @@ -691,7 +691,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVDLE(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] <= b[i]) ? a[i] : b[i]; @@ -709,7 +709,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVDLESwap(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (b[i] <= a[i]) ? a[i] : b[i]; @@ -727,7 +727,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVDGE(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] >= b[i]) ? a[i] : b[i]; @@ -745,7 +745,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVDGESwap(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (b[i] >= a[i]) ? a[i] : b[i]; @@ -763,7 +763,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveVDNE(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] != b[i]) ? a[i] : b[i]; @@ -782,7 +782,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFGTforFConst(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] > b[i]) ? 0.1f : -0.1f; @@ -800,7 +800,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFGEforFConst(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] >= b[i]) ? 0.1f : -0.1f; @@ -818,7 +818,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFLTforFConst(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] < b[i]) ? 0.1f : -0.1f; @@ -836,7 +836,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFLEforFConst(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] <= b[i]) ? 0.1f : -0.1f; @@ -854,7 +854,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFEQforFConst(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] == b[i]) ? 0.1f : -0.1f; @@ -872,7 +872,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFNEQforFConst(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] != b[i]) ? 0.1f : -0.1f; @@ -896,7 +896,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFLTforFConstH2(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] < b[i+0]) ? 0.1f : -0.1f; @@ -925,7 +925,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFLEforFConstH2(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] <= b[i+0]) ? 0.1f : -0.1f; @@ -948,7 +948,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFYYforFConstH2(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] <= b[i+0]) ? 0.1f : -0.1f; @@ -967,7 +967,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFXXforFConstH2(float[] a, float[] b, float[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] < b[i+0]) ? 0.1f : -0.1f; @@ -986,7 +986,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDGTforDConst(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] > b[i]) ? 0.1 : -0.1; @@ -1004,7 +1004,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDGEforDConst(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] >= b[i]) ? 0.1 : -0.1; @@ -1022,7 +1022,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDLTforDConst(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] < b[i]) ? 0.1 : -0.1; @@ -1040,7 +1040,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDLEforDConst(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] <= b[i]) ? 0.1 : -0.1; @@ -1058,7 +1058,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDEQforDConst(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] == b[i]) ? 0.1 : -0.1; @@ -1076,7 +1076,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDNEQforDConst(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i++) { c[i] = (a[i] != b[i]) ? 0.1 : -0.1; @@ -1094,7 +1094,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDLTforDConstH2(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] < b[i+0]) ? 0.1 : -0.1; @@ -1113,7 +1113,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDLEforDConstH2(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] <= b[i+0]) ? 0.1 : -0.1; @@ -1132,7 +1132,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDYYforDConstH2(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] <= b[i+0]) ? 0.1 : -0.1; @@ -1151,7 +1151,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDXXforDConstH2(double[] a, double[] b, double[] c) { for (int i = 0; i < a.length; i+=2) { c[i+0] = (a[i+0] < b[i+0]) ? 0.1 : -0.1; @@ -1351,7 +1351,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveIEQforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1373,7 +1373,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveINEforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1395,7 +1395,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveIGTforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1417,7 +1417,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveIGEforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1439,7 +1439,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveILTforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1461,7 +1461,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveILEforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1476,7 +1476,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveIEQforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -1490,7 +1490,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveINEforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -1504,7 +1504,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveIGTforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -1518,7 +1518,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveIGEforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -1532,7 +1532,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveILTforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -1546,7 +1546,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_I, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveILEforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -1731,7 +1731,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveLEQforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1745,7 +1745,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveLNEforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1759,7 +1759,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveLGTforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1773,7 +1773,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveLGEforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1787,7 +1787,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveLLTforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1801,7 +1801,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveLLEforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -1824,7 +1824,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveLEQforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -1847,7 +1847,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveLNEforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -1870,7 +1870,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveLGTforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -1893,7 +1893,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveLGEforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -1916,7 +1916,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveLLTforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -1939,7 +1939,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_L, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveLLEforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -2134,7 +2134,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUIEQforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2156,7 +2156,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUINEforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2178,7 +2178,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUIGTforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2200,7 +2200,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUIGEforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2222,7 +2222,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUILTforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2244,7 +2244,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUILEforF(int[] a, int[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2259,7 +2259,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUIEQforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2273,7 +2273,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUINEforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2287,7 +2287,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUIGTforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2301,7 +2301,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUIGEforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2315,7 +2315,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUILTforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2329,7 +2329,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_U, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveUILEforD(int[] a, int[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2514,7 +2514,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveULEQforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2528,7 +2528,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveULNEforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2542,7 +2542,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveULGTforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2556,7 +2556,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveULGEforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2570,7 +2570,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveULLTforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2584,7 +2584,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveULLEforF(long[] a, long[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2607,7 +2607,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveULEQforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -2630,7 +2630,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveULNEforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -2653,7 +2653,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveULGTforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -2676,7 +2676,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveULGEforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -2699,7 +2699,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveULLTforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -2722,7 +2722,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_UL, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) // Requires avx2, else L is restricted to 16 byte, and D has 32. That leads to a vector elements mismatch of 2 to 4. private static void testCMoveULLEforD(long[] a, long[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { @@ -2772,7 +2772,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFGTforF(float[] a, float[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2786,7 +2786,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFGTforD(float[] a, float[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2828,7 +2828,7 @@ public class TestConditionalMove { @IR(failOn = {IRNode.STORE_VECTOR}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDGTforF(double[] a, double[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; @@ -2849,7 +2849,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_D, ">0", IRNode.CMP_D, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveDGTforD(double[] a, double[] b, double[] c, double[] d, double[] r, double[] r2) { for (int i = 0; i < a.length; i++) { double cc = c[i]; @@ -2871,7 +2871,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFGTforFCmpCon1(float a, float[] b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < b.length; i++) { float cc = c[i]; @@ -2892,7 +2892,7 @@ public class TestConditionalMove { applyIf = {"UseVectorCmov", "false"}) @IR(counts = {IRNode.CMOVE_F, ">0", IRNode.CMP_F, ">0"}, applyIf = {"UseVectorCmov", "false"}, - applyIfPlatform = {"riscv64", "true"}) + applyIfPlatformOr = {"riscv64", "true", "x64", "true", "aarch64", "true"}) private static void testCMoveFGTforFCmpCon2(float[] a, float b, float[] c, float[] d, float[] r, float[] r2) { for (int i = 0; i < a.length; i++) { float cc = c[i]; diff --git a/test/hotspot/jtreg/compiler/c2/irTests/TestFPComparison2.java b/test/hotspot/jtreg/compiler/c2/cmove/TestFPComparison2.java similarity index 91% rename from test/hotspot/jtreg/compiler/c2/irTests/TestFPComparison2.java rename to test/hotspot/jtreg/compiler/c2/cmove/TestFPComparison2.java index 8cf3f728666..dca1f964231 100644 --- a/test/hotspot/jtreg/compiler/c2/irTests/TestFPComparison2.java +++ b/test/hotspot/jtreg/compiler/c2/cmove/TestFPComparison2.java @@ -30,10 +30,9 @@ import java.util.List; * @test * @bug 8358892 8357551 * @summary The test is to trigger code path of BoolTest::ge/gt in C2_MacroAssembler::enc_cmove_cmp_fp - * @requires os.arch == "riscv64" * @requires vm.debug * @library /test/lib / - * @run driver compiler.c2.irTests.TestFPComparison2 + * @run driver ${test.main.class} */ public class TestFPComparison2 { static final double[] DOUBLES = new double[] { @@ -109,7 +108,8 @@ public class TestFPComparison2 { class Test_ge_1 { @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -124,7 +124,8 @@ class Test_ge_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -139,7 +140,8 @@ class Test_ge_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_fixed_0_1(float x, float y) { return !(x <= y) ? 0 : 1; } @@ -149,7 +151,8 @@ class Test_ge_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_fixed_0_1(double x, double y) { return !(x <= y) ? 0 : 1; } @@ -159,7 +162,8 @@ class Test_ge_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_fixed_10_20(float x, float y) { return !(x <= y) ? 10 : 20; } @@ -169,7 +173,8 @@ class Test_ge_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_fixed_10_20(double x, double y) { return !(x <= y) ? 10 : 20; } @@ -179,7 +184,8 @@ class Test_ge_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_variable_results(float x, float y, int a, int b) { return !(x <= y) ? a : b; } @@ -189,7 +195,8 @@ class Test_ge_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_variable_results(double x, double y, int a, int b) { return !(x <= y) ? a : b; } @@ -338,7 +345,8 @@ class Test_ge_1 { class Test_ge_cmove_fp_1 { @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -353,7 +361,8 @@ class Test_ge_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -368,7 +377,8 @@ class Test_ge_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_fixed_0_1(float x, float y) { return !(x <= y) ? 0.0f : 1.0f; } @@ -378,7 +388,8 @@ class Test_ge_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_fixed_0_1(double x, double y) { return !(x <= y) ? 0.0f : 1.0f; } @@ -388,7 +399,8 @@ class Test_ge_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_fixed_10_20(float x, float y) { return !(x <= y) ? 10.0f : 20.0f; } @@ -398,7 +410,8 @@ class Test_ge_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_fixed_10_20(double x, double y) { return !(x <= y) ? 10.0f : 20.0f; } @@ -408,7 +421,8 @@ class Test_ge_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_variable_results(float x, float y, float a, float b) { return !(x <= y) ? a : b; } @@ -418,7 +432,8 @@ class Test_ge_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_variable_results(double x, double y, float a, float b) { return !(x <= y) ? a : b; } @@ -566,7 +581,8 @@ class Test_ge_cmove_fp_1 { class Test_ge_2 { @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -581,7 +597,8 @@ class Test_ge_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -596,7 +613,8 @@ class Test_ge_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_fixed_0_1(float x, float y) { return !(x >= y) ? 0 : 1; } @@ -606,7 +624,8 @@ class Test_ge_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_fixed_0_1(double x, double y) { return !(x >= y) ? 0 : 1; } @@ -616,7 +635,8 @@ class Test_ge_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_fixed_10_20(float x, float y) { return !(x >= y) ? 10 : 20; } @@ -626,7 +646,8 @@ class Test_ge_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_fixed_10_20(double x, double y) { return !(x >= y) ? 10 : 20; } @@ -636,7 +657,8 @@ class Test_ge_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_ge_variable_results(float x, float y, int a, int b) { return !(x >= y) ? a : b; } @@ -646,7 +668,8 @@ class Test_ge_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_ge_variable_results(double x, double y, int a, int b) { return !(x >= y) ? a : b; } @@ -794,7 +817,8 @@ class Test_ge_2 { class Test_ge_cmove_fp_2 { @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -809,7 +833,8 @@ class Test_ge_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -824,7 +849,8 @@ class Test_ge_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_fixed_0_1(float x, float y) { return !(x >= y) ? 0.0f : 1.0f; } @@ -834,7 +860,8 @@ class Test_ge_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_fixed_0_1(double x, double y) { return !(x >= y) ? 0.0f : 1.0f; } @@ -844,7 +871,8 @@ class Test_ge_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_fixed_10_20(float x, float y) { return !(x >= y) ? 10.0f : 20.0f; } @@ -854,7 +882,8 @@ class Test_ge_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_fixed_10_20(double x, double y) { return !(x >= y) ? 10.0f : 20.0f; } @@ -864,7 +893,8 @@ class Test_ge_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_variable_results(float x, float y, float a, float b) { return !(x >= y) ? a : b; } @@ -874,7 +904,8 @@ class Test_ge_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_ge_variable_results(double x, double y, float a, float b) { return !(x >= y) ? a : b; } @@ -1022,7 +1053,8 @@ class Test_ge_cmove_fp_2 { class Test_gt_1 { @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -1037,7 +1069,8 @@ class Test_gt_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -1052,7 +1085,8 @@ class Test_gt_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_fixed_0_1(float x, float y) { return !(x < y) ? 0 : 1; } @@ -1062,7 +1096,8 @@ class Test_gt_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_fixed_0_1(double x, double y) { return !(x < y) ? 0 : 1; } @@ -1072,7 +1107,8 @@ class Test_gt_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_fixed_10_20(float x, float y) { return !(x < y) ? 10 : 20; } @@ -1082,7 +1118,8 @@ class Test_gt_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_fixed_10_20(double x, double y) { return !(x < y) ? 10 : 20; } @@ -1092,7 +1129,8 @@ class Test_gt_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_variable_results(float x, float y, int a, int b) { return !(x < y) ? a : b; } @@ -1102,7 +1140,8 @@ class Test_gt_1 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_variable_results(double x, double y, int a, int b) { return !(x < y) ? a : b; } @@ -1250,7 +1289,8 @@ class Test_gt_1 { class Test_gt_cmove_fp_1 { @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -1265,7 +1305,8 @@ class Test_gt_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -1280,7 +1321,8 @@ class Test_gt_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_fixed_0_1(float x, float y) { return !(x < y) ? 0.0f : 1.0f; } @@ -1290,7 +1332,8 @@ class Test_gt_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_fixed_0_1(double x, double y) { return !(x < y) ? 0.0f : 1.0f; } @@ -1300,7 +1343,8 @@ class Test_gt_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_fixed_10_20(float x, float y) { return !(x < y) ? 10.0f : 20.0f; } @@ -1310,7 +1354,8 @@ class Test_gt_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_fixed_10_20(double x, double y) { return !(x < y) ? 10.0f : 20.0f; } @@ -1320,7 +1365,8 @@ class Test_gt_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_variable_results(float x, float y, float a, float b) { return !(x < y) ? a : b; } @@ -1330,7 +1376,8 @@ class Test_gt_cmove_fp_1 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_variable_results(double x, double y, float a, float b) { return !(x < y) ? a : b; } @@ -1478,7 +1525,8 @@ class Test_gt_cmove_fp_1 { class Test_gt_2 { @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -1493,7 +1541,8 @@ class Test_gt_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -1508,7 +1557,8 @@ class Test_gt_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_fixed_0_1(float x, float y) { return !(x > y) ? 0 : 1; } @@ -1518,7 +1568,8 @@ class Test_gt_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_fixed_0_1(double x, double y) { return !(x > y) ? 0 : 1; } @@ -1528,7 +1579,8 @@ class Test_gt_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_fixed_10_20(float x, float y) { return !(x > y) ? 10 : 20; } @@ -1538,7 +1590,8 @@ class Test_gt_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_fixed_10_20(double x, double y) { return !(x > y) ? 10 : 20; } @@ -1548,7 +1601,8 @@ class Test_gt_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_float_BoolTest_gt_variable_results(float x, float y, int a, int b) { return !(x > y) ? a : b; } @@ -1558,7 +1612,8 @@ class Test_gt_2 { } @Test - @IR(counts = {IRNode.CMOVE_I, "1"}) + @IR(counts = {IRNode.CMOVE_I, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static int test_double_BoolTest_gt_variable_results(double x, double y, int a, int b) { return !(x > y) ? a : b; } @@ -1706,7 +1761,8 @@ class Test_gt_2 { class Test_gt_cmove_fp_2 { @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_fixed_1_0(float x, float y) { // return 1 // when either x or y is NaN @@ -1721,7 +1777,8 @@ class Test_gt_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_fixed_1_0(double x, double y) { // return 1 // when either x or y is NaN @@ -1736,7 +1793,8 @@ class Test_gt_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_fixed_0_1(float x, float y) { return !(x > y) ? 0.0f : 1.0f; } @@ -1746,7 +1804,8 @@ class Test_gt_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_fixed_0_1(double x, double y) { return !(x > y) ? 0.0f : 1.0f; } @@ -1756,7 +1815,8 @@ class Test_gt_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_fixed_10_20(float x, float y) { return !(x > y) ? 10.0f : 20.0f; } @@ -1766,7 +1826,8 @@ class Test_gt_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_fixed_10_20(double x, double y) { return !(x > y) ? 10.0f : 20.0f; } @@ -1776,7 +1837,8 @@ class Test_gt_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_variable_results(float x, float y, float a, float b) { return !(x > y) ? a : b; } @@ -1786,7 +1848,8 @@ class Test_gt_cmove_fp_2 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_double_BoolTest_gt_variable_results(double x, double y, float a, float b) { return !(x > y) ? a : b; } @@ -1934,7 +1997,8 @@ class Test_gt_cmove_fp_2 { class Test_cmov_fp_cmp_fp_ge_3 { @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_x_lt_0(float x) { return x < 0 ? 0 : x; } @@ -1944,7 +2008,8 @@ class Test_cmov_fp_cmp_fp_ge_3 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_x_gt_0(float x) { return x > 0 ? 0 : x; } @@ -1954,7 +2019,8 @@ class Test_cmov_fp_cmp_fp_ge_3 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_neg_x_lt_0(float x) { return !(x < 0) ? 0 : x; } @@ -1964,7 +2030,8 @@ class Test_cmov_fp_cmp_fp_ge_3 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_gt_neg_x_gt_0(float x) { return !(x > 0) ? 0 : x; } @@ -2038,7 +2105,8 @@ class Test_cmov_fp_cmp_fp_ge_3 { class Test_cmov_fp_cmp_fp_ge_4 { @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_x_le_0(float x) { return x <= 0 ? 0 : x; } @@ -2048,7 +2116,8 @@ class Test_cmov_fp_cmp_fp_ge_4 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_x_ge_0(float x) { return x >= 0 ? 0 : x; } @@ -2058,7 +2127,8 @@ class Test_cmov_fp_cmp_fp_ge_4 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_neg_x_le_0(float x) { return !(x <= 0) ? 0 : x; } @@ -2068,7 +2138,8 @@ class Test_cmov_fp_cmp_fp_ge_4 { } @Test - @IR(counts = {IRNode.CMOVE_F, "1"}) + @IR(counts = {IRNode.CMOVE_F, "1"}, + applyIfPlatformOr = {"riscv64", "true", "aarch64", "true"}) public static float test_float_BoolTest_ge_neg_x_ge_0(float x) { return !(x >= 0) ? 0 : x; } diff --git a/test/hotspot/jtreg/compiler/c2/irTests/TestScalarConditionalMoveCmpObj.java b/test/hotspot/jtreg/compiler/c2/cmove/TestScalarConditionalMoveCmpObj.java similarity index 99% rename from test/hotspot/jtreg/compiler/c2/irTests/TestScalarConditionalMoveCmpObj.java rename to test/hotspot/jtreg/compiler/c2/cmove/TestScalarConditionalMoveCmpObj.java index e332ac9e293..63d6f6fba7f 100644 --- a/test/hotspot/jtreg/compiler/c2/irTests/TestScalarConditionalMoveCmpObj.java +++ b/test/hotspot/jtreg/compiler/c2/cmove/TestScalarConditionalMoveCmpObj.java @@ -31,9 +31,8 @@ import jdk.test.lib.Utils; /* * @test * @summary Test conditional move + compare object. - * @requires vm.simpleArch == "riscv64" * @library /test/lib / - * @run driver compiler.c2.irTests.TestScalarConditionalMoveCmpObj + * @run driver ${test.main.class} */ public class TestScalarConditionalMoveCmpObj {