summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Artem Serov <artem.serov@arm.com> 2022-09-28 16:06:15 +0100
committer Santiago Aboy Solanes <solanes@google.com> 2024-03-22 08:54:34 +0000
commitc4b188db0eb42d9639e5f66d0d063105024f8960 (patch)
tree8e1bbd22b0e20f1fe739eb8cf6133bedf3088ac2
parentf4ca2830f238ec7673392389d999bfe98283a459 (diff)
Don't use predicated vectorization by default.
This patch sets the traditional vectorization mode to be the default one; previously, if the target supported predicated vectorization (e.g. arm64 SVE), predicated vectorization was be tried for ALL loops. Motivation: this is a prerequisite for the further patches to enable mixed mode vectorization - when most of the loops are vectorized in traditional mode and some others - in predicated. A new env variable - ART_FORCE_TRY_PREDICATED_SIMD - is introduced to force-use the predicated mode; this could be set to true for testing purposes. Checker tests are adjusted accordingly - to also check the ART_FORCE_TRY_PREDICATED_SIMD variable. Test: test-art-target, test-art-host. Test: test-art-target with ART_FORCE_TRY_PREDICATED_SIMD=true. Original author: Artem Serov <Artem.Serov@linaro.org> Test: ./art/test/testrunner/testrunner.py --host --optimizing --jit Test: ./art/test/testrunner/testrunner.py --target --optimizing --jit (with ART_FORCE_TRY_PREDICATED_SIMD=true and without) Test: 661-checker-simd-cf-loops. Test: target tests on arm64 with SVE Change-Id: I57852f3777da6f86d615429d1a3c703cb87fbac8
-rw-r--r--build/art.go4
-rw-r--r--compiler/optimizing/loop_optimization.cc9
-rw-r--r--test/527-checker-array-access-simd/src/Main.java28
-rw-r--r--test/530-checker-lse-simd/src/Main.java12
-rw-r--r--test/530-checker-lse/src/Main.java4
-rw-r--r--test/623-checker-loop-regressions/src/Main.java20
-rw-r--r--test/640-checker-simd/src/SimdInt.java6
-rw-r--r--test/640-checker-simd/src/SimdLong.java8
-rw-r--r--test/645-checker-abs-simd/src/Main.java14
-rw-r--r--test/646-checker-simd-hadd/src/HaddAltByte.java12
-rw-r--r--test/646-checker-simd-hadd/src/HaddAltChar.java12
-rw-r--r--test/646-checker-simd-hadd/src/HaddAltShort.java12
-rw-r--r--test/646-checker-simd-hadd/src/HaddByte.java12
-rw-r--r--test/646-checker-simd-hadd/src/HaddChar.java12
-rw-r--r--test/646-checker-simd-hadd/src/HaddOther.java2
-rw-r--r--test/646-checker-simd-hadd/src/HaddShort.java22
-rw-r--r--test/655-checker-simd-arm-opt/src/Main.java6
-rw-r--r--test/656-checker-simd-opt/src/Main.java16
-rw-r--r--test/660-checker-simd-sad/src/SimdSadByte.java10
-rw-r--r--test/660-checker-simd-sad/src/SimdSadInt.java8
-rw-r--r--test/660-checker-simd-sad/src/SimdSadLong.java6
-rw-r--r--test/660-checker-simd-sad/src/SimdSadShort.java16
-rw-r--r--test/660-checker-simd-sad/src/SimdSadShort2.java10
-rw-r--r--test/660-checker-simd-sad/src/SimdSadShort3.java16
-rw-r--r--test/661-checker-simd-cf-loops/src/Main.java42
-rw-r--r--test/661-checker-simd-reduc/src/Main.java18
-rw-r--r--test/665-checker-simd-zero/src/Main.java16
-rw-r--r--test/669-checker-break/src/Main.java6
-rw-r--r--test/684-checker-simd-dotprod/src/other/TestByte.java16
-rw-r--r--test/684-checker-simd-dotprod/src/other/TestCharShort.java20
-rw-r--r--test/684-checker-simd-dotprod/src/other/TestVarious.java16
31 files changed, 211 insertions, 200 deletions
diff --git a/build/art.go b/build/art.go
index 34e3c159e3..0e06c62979 100644
--- a/build/art.go
+++ b/build/art.go
@@ -82,6 +82,10 @@ func globalFlags(ctx android.LoadHookContext) ([]string, []string) {
cflags = append(cflags, "-DART_USE_TLAB=1")
}
+ if ctx.Config().IsEnvTrue("ART_FORCE_TRY_PREDICATED_SIMD") {
+ cflags = append(cflags, "-DART_FORCE_TRY_PREDICATED_SIMD=1")
+ }
+
// We need larger stack overflow guards for ASAN, as the compiled code will have
// larger frame sizes. For simplicity, just use global not-target-specific cflags.
// Note: We increase this for both debug and non-debug, as the overflow gap will
diff --git a/compiler/optimizing/loop_optimization.cc b/compiler/optimizing/loop_optimization.cc
index ed66d65373..14e6683cf8 100644
--- a/compiler/optimizing/loop_optimization.cc
+++ b/compiler/optimizing/loop_optimization.cc
@@ -875,6 +875,13 @@ static HBasicBlock* GetInnerLoopFiniteSingleExit(HLoopInformation* loop_info) {
return exit;
}
+// Determines whether predicated loop vectorization should be tried for ALL loops.
+#ifdef ART_FORCE_TRY_PREDICATED_SIMD
+ static constexpr bool kForceTryPredicatedSIMD = true;
+#else
+ static constexpr bool kForceTryPredicatedSIMD = false;
+#endif
+
bool HLoopOptimization::TryOptimizeInnerLoopFinite(LoopNode* node) {
HBasicBlock* header = node->loop_info->GetHeader();
HBasicBlock* preheader = node->loop_info->GetPreHeader();
@@ -931,7 +938,7 @@ bool HLoopOptimization::TryOptimizeInnerLoopFinite(LoopNode* node) {
return false;
}
- if (IsInPredicatedVectorizationMode()) {
+ if (kForceTryPredicatedSIMD && IsInPredicatedVectorizationMode()) {
return TryVectorizePredicated(node, body, exit, main_phi, trip_count);
} else {
return TryVectorizedTraditional(node, body, exit, main_phi, trip_count);
diff --git a/test/527-checker-array-access-simd/src/Main.java b/test/527-checker-array-access-simd/src/Main.java
index a08b1f09b4..a26efaeefe 100644
--- a/test/527-checker-array-access-simd/src/Main.java
+++ b/test/527-checker-array-access-simd/src/Main.java
@@ -25,7 +25,7 @@ public class Main {
/// CHECK-START-ARM64: void Main.checkIntCase(int[]) instruction_simplifier_arm64 (before)
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
// -------------- Loop
@@ -51,7 +51,7 @@ public class Main {
/// CHECK-START-ARM64: void Main.checkIntCase(int[]) instruction_simplifier_arm64 (after)
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
@@ -84,7 +84,7 @@ public class Main {
/// CHECK-START-ARM64: void Main.checkIntCase(int[]) GVN$after_arch (after)
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
@@ -114,7 +114,7 @@ public class Main {
/// CHECK-FI:
/// CHECK-START-ARM64: void Main.checkIntCase(int[]) disassembly (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
/// CHECK-NOT: IntermediateAddressIndex
@@ -134,7 +134,7 @@ public class Main {
/// CHECK-START-ARM64: void Main.checkByteCase(byte[]) instruction_simplifier_arm64 (before)
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
// -------------- Loop
@@ -161,7 +161,7 @@ public class Main {
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
@@ -194,7 +194,7 @@ public class Main {
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
@@ -223,7 +223,7 @@ public class Main {
/// CHECK-FI:
/// CHECK-START-ARM64: void Main.checkByteCase(byte[]) disassembly (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
/// CHECK-NOT: IntermediateAddressIndex
@@ -247,7 +247,7 @@ public class Main {
/// CHECK-START-ARM64: void Main.checkSingleAccess(int[]) instruction_simplifier_arm64 (before)
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
// -------------- Loop
@@ -270,7 +270,7 @@ public class Main {
/// CHECK-DAG: <<Array:l\d+>> ParameterValue
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0
/// CHECK-DAG: <<Const5:i\d+>> IntConstant 5
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const5>>,{{j\d+}}]
// -------------- Loop
@@ -301,7 +301,7 @@ public class Main {
/// CHECK-DAG: <<Array1:l\d+>> ParameterValue
/// CHECK-DAG: <<Array2:l\d+>> ParameterValue
// -------------- Loop
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile
/// CHECK-DAG: <<Index:i\d+>> Phi
@@ -323,7 +323,7 @@ public class Main {
/// CHECK-START-ARM64: void Main.checkInt2Float(int[], float[]) instruction_simplifier_arm64 (after)
/// CHECK-DAG: <<Array1:l\d+>> ParameterValue
/// CHECK-DAG: <<Array2:l\d+>> ParameterValue
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
// -------------- Loop
@@ -354,7 +354,7 @@ public class Main {
/// CHECK-START-ARM64: void Main.checkInt2Float(int[], float[]) GVN$after_arch (after)
/// CHECK-DAG: <<Array1:l\d+>> ParameterValue
/// CHECK-DAG: <<Array2:l\d+>> ParameterValue
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
// -------------- Loop
@@ -383,7 +383,7 @@ public class Main {
/// CHECK-FI:
/// CHECK-START-ARM64: void Main.checkInt2Float(int[], float[]) disassembly (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// IntermediateAddressIndex is not supported for SVE.
/// CHECK-NOT: IntermediateAddressIndex
diff --git a/test/530-checker-lse-simd/src/Main.java b/test/530-checker-lse-simd/src/Main.java
index ec2faf51ec..c9be5a6440 100644
--- a/test/530-checker-lse-simd/src/Main.java
+++ b/test/530-checker-lse-simd/src/Main.java
@@ -38,7 +38,7 @@ public class Main {
/// CHECK-NEXT: Sub
/// CHECK-NEXT: Mul
/// CHECK-NEXT: ArraySet
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NEXT: ArrayGet
//
@@ -94,7 +94,7 @@ public class Main {
/// CHECK-NEXT: ArrayGet
/// CHECK-NEXT: Mul
/// CHECK-NEXT: ArraySet
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NEXT: ArrayGet
//
@@ -134,7 +134,7 @@ public class Main {
/// CHECK-NEXT: Return
/// CHECK-START: double Main.$noinline$test03(int) load_store_elimination (after)
- /// CHECK-IF: not hasIsaFeature("sve")
+ /// CHECK-IF: not (hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true')
//
/// CHECK-NOT: ArrayGet loop:none
//
@@ -172,7 +172,7 @@ public class Main {
/// CHECK: Goto loop:{{B\d+}}
/// CHECK-START-ARM64: double[] Main.$noinline$test04(int) load_store_elimination (after)
- /// CHECK-IF: not hasIsaFeature("sve")
+ /// CHECK-IF: not (hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true')
//
// In NEON case there is a post-loop which prevents the store to be removed.
/// CHECK: VecStore
@@ -185,7 +185,7 @@ public class Main {
/// CHECK: Goto loop:{{B\d+}}
//
- /// CHECK-IF: not hasIsaFeature("sve")
+ /// CHECK-IF: not (hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true')
//
/// CHECK-NOT: VecStore
//
@@ -272,7 +272,7 @@ public class Main {
/// CHECK: VecAdd
/// CHECK: VecStore
//
- /// CHECK-IF: not hasIsaFeature("sve")
+ /// CHECK-IF: not (hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true')
//
/// CHECK-NOT: VecStore
//
diff --git a/test/530-checker-lse/src/Main.java b/test/530-checker-lse/src/Main.java
index 875444941d..2516129c6c 100644
--- a/test/530-checker-lse/src/Main.java
+++ b/test/530-checker-lse/src/Main.java
@@ -2852,7 +2852,7 @@ public class Main {
/// CHECK-START: int Main.testLoop15(int) load_store_elimination (before)
/// CHECK-DAG: NewArray
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile
/// CHECK-DAG: VecStore
@@ -2867,7 +2867,7 @@ public class Main {
/// CHECK-START: int Main.testLoop15(int) load_store_elimination (after)
/// CHECK-DAG: NewArray
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile
/// CHECK-DAG: VecStore
diff --git a/test/623-checker-loop-regressions/src/Main.java b/test/623-checker-loop-regressions/src/Main.java
index 2b280bb7d6..134e90c6c5 100644
--- a/test/623-checker-loop-regressions/src/Main.java
+++ b/test/623-checker-loop-regressions/src/Main.java
@@ -290,7 +290,7 @@ public class Main {
/// CHECK-NOT: VecLoad
//
/// CHECK-START-ARM64: void Main.string2Bytes(char[], java.lang.String) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// TODO: Support CharAt for SVE.
/// CHECK-NOT: VecLoad
@@ -314,7 +314,7 @@ public class Main {
/// CHECK-NOT: VecLoad
/// CHECK-START-ARM64: void Main.$noinline$stringToShorts(short[], java.lang.String) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// TODO: Support CharAt for SVE.
/// CHECK-NOT: VecLoad
@@ -368,7 +368,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.oneBoth(short[], char[]) loop_optimization (after)
/// CHECK-DAG: <<One:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<One>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile loop:<<Loop:B\d+>> outer_loop:none
@@ -423,7 +423,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.typeConv(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<One:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<One>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile loop:<<Loop1:B\d+>> outer_loop:none
@@ -765,7 +765,7 @@ public class Main {
/// CHECK-DAG: VecStore
//
/// CHECK-START-ARM64: int Main.testSADAndSet(int[], int[], int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// VecSADAccumulate is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -793,7 +793,7 @@ public class Main {
/// CHECK-DAG: VecSADAccumulate
//
/// CHECK-START-ARM64: int Main.testSADAndSAD(int[], int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// VecSADAccumulate is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -860,7 +860,7 @@ public class Main {
/// CHECK-DAG: VecSADAccumulate
//
/// CHECK-START-ARM64: int Main.testSADAndSADExtraAbs0(int[], int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// VecSADAccumulate is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -894,7 +894,7 @@ public class Main {
/// CHECK-DAG: VecSADAccumulate
//
/// CHECK-START-ARM64: int Main.testSADAndSADExtraAbs1(int[], int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// VecSADAccumulate is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -923,7 +923,7 @@ public class Main {
// Idioms common sub-expression bug: SAD and DotProd combined.
//
/// CHECK-START-ARM64: int Main.testSADAndDotProdCombined0(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// VecSADAccumulate is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -951,7 +951,7 @@ public class Main {
// Idioms common sub-expression bug: SAD and DotProd combined (reversed order).
/// CHECK-START-ARM64: int Main.testSADAndDotProdCombined1(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// VecSADAccumulate is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
diff --git a/test/640-checker-simd/src/SimdInt.java b/test/640-checker-simd/src/SimdInt.java
index 065fc49c40..9bc475ca87 100644
--- a/test/640-checker-simd/src/SimdInt.java
+++ b/test/640-checker-simd/src/SimdInt.java
@@ -163,7 +163,7 @@ public class SimdInt {
/// CHECK-DAG: ArraySet [{{l\d+}},{{i\d+}},<<Get>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-{ARM,ARM64}: void SimdInt.shr32() loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Get:d\d+>> VecLoad loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<Get>>,{{j\d+}}] loop:<<Loop>> outer_loop:none
@@ -194,7 +194,7 @@ public class SimdInt {
//
/// CHECK-START-{ARM,ARM64}: void SimdInt.shr33() loop_optimization (after)
/// CHECK-DAG: <<Dist:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Get:d\d+>> VecLoad loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: <<UShr:d\d+>> VecUShr [<<Get>>,<<Dist>>,{{j\d+}}] loop:<<Loop>> outer_loop:none
@@ -226,7 +226,7 @@ public class SimdInt {
//
/// CHECK-START-{ARM,ARM64}: void SimdInt.shrMinus254() loop_optimization (after)
/// CHECK-DAG: <<Dist:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Get:d\d+>> VecLoad loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: <<UShr:d\d+>> VecUShr [<<Get>>,<<Dist>>,{{j\d+}}] loop:<<Loop>> outer_loop:none
diff --git a/test/640-checker-simd/src/SimdLong.java b/test/640-checker-simd/src/SimdLong.java
index 13ea9afa48..3ee3e05dd1 100644
--- a/test/640-checker-simd/src/SimdLong.java
+++ b/test/640-checker-simd/src/SimdLong.java
@@ -58,7 +58,7 @@ public class SimdLong {
// Not directly supported for longs.
//
/// CHECK-START-ARM64: void SimdLong.mul(long) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: VecMul loop:<<Loop>> outer_loop:none
@@ -173,7 +173,7 @@ public class SimdLong {
/// CHECK-DAG: ArraySet [{{l\d+}},{{i\d+}},<<Get>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void SimdLong.shr64() loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Get:d\d+>> VecLoad loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<Get>>,{{j\d+}}] loop:<<Loop>> outer_loop:none
@@ -204,7 +204,7 @@ public class SimdLong {
//
/// CHECK-START-ARM64: void SimdLong.shr65() loop_optimization (after)
/// CHECK-DAG: <<Dist:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Get:d\d+>> VecLoad loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: <<UShr:d\d+>> VecUShr [<<Get>>,<<Dist>>,{{j\d+}}] loop:<<Loop>> outer_loop:none
@@ -236,7 +236,7 @@ public class SimdLong {
//
/// CHECK-START-ARM64: void SimdLong.shrMinus254() loop_optimization (after)
/// CHECK-DAG: <<Dist:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Get:d\d+>> VecLoad loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: <<UShr:d\d+>> VecUShr [<<Get>>,<<Dist>>,{{j\d+}}] loop:<<Loop>> outer_loop:none
diff --git a/test/645-checker-abs-simd/src/Main.java b/test/645-checker-abs-simd/src/Main.java
index 43881be416..702779a4f4 100644
--- a/test/645-checker-abs-simd/src/Main.java
+++ b/test/645-checker-abs-simd/src/Main.java
@@ -45,7 +45,7 @@ public class Main {
/// CHECK-DAG: VecLoad loop:<<Loop1:B\d+>> outer_loop:none
/// CHECK-DAG: VecAbs loop:<<Loop1>> outer_loop:none
/// CHECK-DAG: VecStore loop:<<Loop1>> outer_loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile loop:<<Loop1>> outer_loop:none
/// CHECK-NOT: ArrayGet
@@ -100,7 +100,7 @@ public class Main {
/// CHECK-DAG: VecLoad loop:<<Loop1:B\d+>> outer_loop:none
/// CHECK-DAG: VecAbs loop:<<Loop1>> outer_loop:none
/// CHECK-DAG: VecStore loop:<<Loop1>> outer_loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile loop:<<Loop1>> outer_loop:none
/// CHECK-NOT: ArrayGet
@@ -132,7 +132,7 @@ public class Main {
/// CHECK-DAG: VecLoad loop:<<Loop1:B\d+>> outer_loop:none
/// CHECK-DAG: VecAbs loop:<<Loop1>> outer_loop:none
/// CHECK-DAG: VecStore loop:<<Loop1>> outer_loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile loop:<<Loop1>> outer_loop:none
/// CHECK-NOT: ArrayGet
@@ -174,7 +174,7 @@ public class Main {
/// CHECK-DAG: VecLoad loop:<<Loop1:B\d+>> outer_loop:none
/// CHECK-DAG: VecAbs loop:<<Loop1>> outer_loop:none
/// CHECK-DAG: VecStore loop:<<Loop1>> outer_loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile loop:<<Loop1>> outer_loop:none
/// CHECK-NOT: ArrayGet
@@ -206,7 +206,7 @@ public class Main {
/// CHECK-DAG: VecLoad loop:<<Loop1:B\d+>> outer_loop:none
/// CHECK-DAG: VecAbs loop:<<Loop1>> outer_loop:none
/// CHECK-DAG: VecStore loop:<<Loop1>> outer_loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile loop:<<Loop1>> outer_loop:none
/// CHECK-NOT: ArrayGet
@@ -238,7 +238,7 @@ public class Main {
/// CHECK-DAG: VecLoad loop:<<Loop1:B\d+>> outer_loop:none
/// CHECK-DAG: VecAbs loop:<<Loop1>> outer_loop:none
/// CHECK-DAG: VecStore loop:<<Loop1>> outer_loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile loop:<<Loop1>> outer_loop:none
/// CHECK-NOT: ArrayGet
@@ -270,7 +270,7 @@ public class Main {
/// CHECK-DAG: VecLoad loop:<<Loop1:B\d+>> outer_loop:none
/// CHECK-DAG: VecAbs loop:<<Loop1>> outer_loop:none
/// CHECK-DAG: VecStore loop:<<Loop1>> outer_loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecPredWhile loop:<<Loop1>> outer_loop:none
/// CHECK-NOT: ArrayGet
diff --git a/test/646-checker-simd-hadd/src/HaddAltByte.java b/test/646-checker-simd-hadd/src/HaddAltByte.java
index 69d46023ff..585291f0ac 100644
--- a/test/646-checker-simd-hadd/src/HaddAltByte.java
+++ b/test/646-checker-simd-hadd/src/HaddAltByte.java
@@ -46,7 +46,7 @@ public class HaddAltByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltByte.halving_add_signed(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -96,7 +96,7 @@ public class HaddAltByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltByte.halving_add_unsigned(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -134,7 +134,7 @@ public class HaddAltByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltByte.rounding_halving_add_signed(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -186,7 +186,7 @@ public class HaddAltByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltByte.rounding_halving_add_unsigned(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -224,7 +224,7 @@ public class HaddAltByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltByte.halving_add_signed_constant(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -274,7 +274,7 @@ public class HaddAltByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltByte.halving_add_unsigned_constant(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
diff --git a/test/646-checker-simd-hadd/src/HaddAltChar.java b/test/646-checker-simd-hadd/src/HaddAltChar.java
index f9d40a9d3e..62fbcece96 100644
--- a/test/646-checker-simd-hadd/src/HaddAltChar.java
+++ b/test/646-checker-simd-hadd/src/HaddAltChar.java
@@ -46,7 +46,7 @@ public class HaddAltChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltChar.halving_add_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -97,7 +97,7 @@ public class HaddAltChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltChar.halving_add_also_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -138,7 +138,7 @@ public class HaddAltChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltChar.rounding_halving_add_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -191,7 +191,7 @@ public class HaddAltChar {
//
//
/// CHECK-START-ARM64: void HaddAltChar.rounding_halving_add_also_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -232,7 +232,7 @@ public class HaddAltChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltChar.halving_add_unsigned_constant(char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -282,7 +282,7 @@ public class HaddAltChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltChar.halving_add_also_unsigned_constant(char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
diff --git a/test/646-checker-simd-hadd/src/HaddAltShort.java b/test/646-checker-simd-hadd/src/HaddAltShort.java
index 3b19a2638e..fcc52ed90c 100644
--- a/test/646-checker-simd-hadd/src/HaddAltShort.java
+++ b/test/646-checker-simd-hadd/src/HaddAltShort.java
@@ -46,7 +46,7 @@ public class HaddAltShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltShort.halving_add_signed(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -96,7 +96,7 @@ public class HaddAltShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltShort.halving_add_unsigned(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -136,7 +136,7 @@ public class HaddAltShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltShort.rounding_halving_add_signed(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -188,7 +188,7 @@ public class HaddAltShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltShort.rounding_halving_add_unsigned(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -228,7 +228,7 @@ public class HaddAltShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltShort.halving_add_signed_constant(short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -278,7 +278,7 @@ public class HaddAltShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddAltShort.halving_add_unsigned_constant(short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
diff --git a/test/646-checker-simd-hadd/src/HaddByte.java b/test/646-checker-simd-hadd/src/HaddByte.java
index c8bb0aaf2b..bcf93ea402 100644
--- a/test/646-checker-simd-hadd/src/HaddByte.java
+++ b/test/646-checker-simd-hadd/src/HaddByte.java
@@ -43,7 +43,7 @@ public class HaddByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddByte.halving_add_signed(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -93,7 +93,7 @@ public class HaddByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddByte.halving_add_unsigned(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -131,7 +131,7 @@ public class HaddByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddByte.rounding_halving_add_signed(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -183,7 +183,7 @@ public class HaddByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddByte.rounding_halving_add_unsigned(byte[], byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -221,7 +221,7 @@ public class HaddByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddByte.halving_add_signed_constant(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -271,7 +271,7 @@ public class HaddByte {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddByte.halving_add_unsigned_constant(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
diff --git a/test/646-checker-simd-hadd/src/HaddChar.java b/test/646-checker-simd-hadd/src/HaddChar.java
index 236b08164f..1c8b52cbf9 100644
--- a/test/646-checker-simd-hadd/src/HaddChar.java
+++ b/test/646-checker-simd-hadd/src/HaddChar.java
@@ -43,7 +43,7 @@ public class HaddChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddChar.halving_add_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -93,7 +93,7 @@ public class HaddChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddChar.halving_add_also_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -134,7 +134,7 @@ public class HaddChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddChar.rounding_halving_add_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -186,7 +186,7 @@ public class HaddChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddChar.rounding_halving_add_also_unsigned(char[], char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -227,7 +227,7 @@ public class HaddChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddChar.halving_add_unsigned_constant(char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -276,7 +276,7 @@ public class HaddChar {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddChar.halving_add_also_unsigned_constant(char[], char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
diff --git a/test/646-checker-simd-hadd/src/HaddOther.java b/test/646-checker-simd-hadd/src/HaddOther.java
index 377ea9ab26..c8350c2b70 100644
--- a/test/646-checker-simd-hadd/src/HaddOther.java
+++ b/test/646-checker-simd-hadd/src/HaddOther.java
@@ -104,7 +104,7 @@ public class HaddOther {
/// CHECK: VecHalvingAdd
//
/// CHECK-START-ARM64: void HaddOther.test_no_hadd_sum_cast_plus_const(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
diff --git a/test/646-checker-simd-hadd/src/HaddShort.java b/test/646-checker-simd-hadd/src/HaddShort.java
index 9880a7a0da..bafaa29491 100644
--- a/test/646-checker-simd-hadd/src/HaddShort.java
+++ b/test/646-checker-simd-hadd/src/HaddShort.java
@@ -47,7 +47,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.halving_add_signed(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -88,7 +88,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.halving_add_signed_alt(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -139,7 +139,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.halving_add_unsigned(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -179,7 +179,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.rounding_halving_add_signed(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -217,7 +217,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.rounding_halving_add_signed_alt(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -259,7 +259,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.rounding_halving_add_signed_alt2(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -303,7 +303,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.rounding_halving_add_signed_alt3(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -356,7 +356,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.rounding_halving_add_unsigned(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -410,7 +410,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.rounding_halving_add_unsigned_alt(short[], short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -451,7 +451,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.halving_add_signed_constant(short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
@@ -501,7 +501,7 @@ public class HaddShort {
/// CHECK-DAG: VecStore [{{l\d+}},{{i\d+}},<<HAdd>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void HaddShort.halving_add_unsigned_constant(short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// HalvingAdd idiom is not supported for SVE.
/// CHECK-NOT: VecHalvingAdd
diff --git a/test/655-checker-simd-arm-opt/src/Main.java b/test/655-checker-simd-arm-opt/src/Main.java
index 5412aab6a1..cfd6f6a08a 100644
--- a/test/655-checker-simd-arm-opt/src/Main.java
+++ b/test/655-checker-simd-arm-opt/src/Main.java
@@ -38,7 +38,7 @@ public class Main {
/// CHECK-DAG: <<D9:d\d+>> DoubleConstant 20
/// CHECK-DAG: <<D10:d\d+>> DoubleConstant 0
//
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecReplicateScalar [<<C1>>,{{j\d+}}]
/// CHECK-DAG: VecReplicateScalar [<<C2>>,{{j\d+}}]
@@ -104,7 +104,7 @@ public class Main {
/// CHECK-DAG: VecStore loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void Main.SVEIntermediateAddress(int) instruction_simplifier_arm64 (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
/// CHECK-DAG: <<IntAddr1:i\d+>> IntermediateAddress [{{l\d+}},{{i\d+}}] loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: VecLoad [<<IntAddr1>>,{{i\d+}},{{j\d+}}] loop:<<Loop>> outer_loop:none
/// CHECK-DAG: VecAdd loop:<<Loop>> outer_loop:none
@@ -113,7 +113,7 @@ public class Main {
/// CHECK-FI:
//
/// CHECK-START-ARM64: void Main.SVEIntermediateAddress(int) GVN$after_arch (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
/// CHECK-DAG: <<IntAddr:i\d+>> IntermediateAddress [{{l\d+}},{{i\d+}}] loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: VecLoad [<<IntAddr>>,{{i\d+}},{{j\d+}}] loop:<<Loop>> outer_loop:none
/// CHECK-DAG: VecAdd loop:<<Loop>> outer_loop:none
diff --git a/test/656-checker-simd-opt/src/Main.java b/test/656-checker-simd-opt/src/Main.java
index 9fc4536a4d..6b08d6352e 100644
--- a/test/656-checker-simd-opt/src/Main.java
+++ b/test/656-checker-simd-opt/src/Main.java
@@ -31,7 +31,7 @@ public class Main {
/// CHECK-START-{X86_64,ARM64}: void Main.unroll(float[], float[]) loop_optimization (after)
/// CHECK-DAG: <<Cons:f\d+>> FloatConstant 2.5 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Cons>>,{{j\d+}}] loop:none
/// CHECK-NOT: VecReplicateScalar
@@ -68,7 +68,7 @@ public class Main {
/// CHECK-START-{X86_64,ARM64}: void Main.stencil(int[], int[], int) loop_optimization (after)
/// CHECK-DAG: <<CP1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<CP2:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile [<<Phi>>,{{i\d+}}] loop:<<Loop>> outer_loop:none
@@ -115,7 +115,7 @@ public class Main {
/// CHECK-DAG: <<TCSel:i\d+>> Select [<<C0>>,{{i\d+}},<<ArrCh>>] loop:none
/// CHECK-DAG: <<PhiV:i\d+>> Phi [<<C0>>,{{i\d+}}] loop:<<LoopV:B\d+>> outer_loop:none
//
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile [<<PhiV>>,{{i\d+}}] loop:<<LoopV>> outer_loop:none
/// CHECK-DAG: <<Add1:i\d+>> Add [<<PhiV>>,<<CP1>>] loop:<<LoopV>> outer_loop:none
@@ -172,7 +172,7 @@ public class Main {
/// CHECK-START-{X86_64,ARM64}: void Main.stencilAddInt(int[], int[], int) loop_optimization (after)
/// CHECK-DAG: <<CP1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<CP2:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile [<<Phi>>,{{i\d+}}] loop:<<Loop>> outer_loop:none
@@ -226,7 +226,7 @@ public class Main {
/// CHECK-START-{X86_64,ARM64}: void Main.stencilSubInt(int[], int[], int) loop_optimization (after)
/// CHECK-DAG: <<CP1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<CP2:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile [<<Phi>>,{{i\d+}}] loop:<<Loop>> outer_loop:none
@@ -278,7 +278,7 @@ public class Main {
/// CHECK-DAG: <<L1:j\d+>> LongConstant 1 loop:none
/// CHECK-DAG: <<I0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Get:j\d+>> ArrayGet [{{l\d+}},<<I0>>] loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Rep:d\d+>> VecReplicateScalar [<<Get>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<L1>>,{{j\d+}}] loop:none
@@ -321,7 +321,7 @@ public class Main {
/// CHECK-DAG: <<I1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Get:j\d+>> ArrayGet [{{l\d+}},<<I0>>] loop:none
/// CHECK-DAG: <<Cnv:i\d+>> TypeConversion [<<Get>>] loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Rep:d\d+>> VecReplicateScalar [<<Cnv>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi [<<I0>>,{{i\d+}}] loop:<<Loop:B\d+>> outer_loop:none
@@ -360,7 +360,7 @@ public class Main {
/// CHECK-DAG: <<I0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<L1:j\d+>> LongConstant 1 loop:none
/// CHECK-DAG: <<Cnv:i\d+>> TypeConversion [<<L1>>] loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Rep:d\d+>> VecReplicateScalar [<<Cnv>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi [<<I0>>,{{i\d+}}] loop:<<Loop:B\d+>> outer_loop:none
diff --git a/test/660-checker-simd-sad/src/SimdSadByte.java b/test/660-checker-simd-sad/src/SimdSadByte.java
index 0591fd172b..f33783c571 100644
--- a/test/660-checker-simd-sad/src/SimdSadByte.java
+++ b/test/660-checker-simd-sad/src/SimdSadByte.java
@@ -101,7 +101,7 @@ public class SimdSadByte {
//
/// CHECK-START-ARM64: int SimdSadByte.sadByte2Int(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -141,7 +141,7 @@ public class SimdSadByte {
//
/// CHECK-START-ARM64: int SimdSadByte.sadByte2IntAlt(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -183,7 +183,7 @@ public class SimdSadByte {
//
/// CHECK-START-ARM64: int SimdSadByte.sadByte2IntAlt2(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -232,7 +232,7 @@ public class SimdSadByte {
/// CHECK-START-ARM64: long SimdSadByte.sadByte2Long(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -278,7 +278,7 @@ public class SimdSadByte {
/// CHECK-START-ARM64: long SimdSadByte.sadByte2LongAt1(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
diff --git a/test/660-checker-simd-sad/src/SimdSadInt.java b/test/660-checker-simd-sad/src/SimdSadInt.java
index 74d87dee60..bc4a5d78de 100644
--- a/test/660-checker-simd-sad/src/SimdSadInt.java
+++ b/test/660-checker-simd-sad/src/SimdSadInt.java
@@ -41,7 +41,7 @@ public class SimdSadInt {
/// CHECK-DAG: Add [<<I>>,<<Cons>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: int SimdSadInt.sadInt2Int(int[], int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -116,7 +116,7 @@ public class SimdSadInt {
/// CHECK-DAG: Add [<<I>>,<<Cons>>] loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: int SimdSadInt.sadInt2IntAlt2(int[], int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -163,7 +163,7 @@ public class SimdSadInt {
/// CHECK-START-ARM64: long SimdSadInt.sadInt2Long(int[], int[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -209,7 +209,7 @@ public class SimdSadInt {
/// CHECK-START-ARM64: long SimdSadInt.sadInt2LongAt1(int[], int[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
diff --git a/test/660-checker-simd-sad/src/SimdSadLong.java b/test/660-checker-simd-sad/src/SimdSadLong.java
index 149fad6803..3263ae3833 100644
--- a/test/660-checker-simd-sad/src/SimdSadLong.java
+++ b/test/660-checker-simd-sad/src/SimdSadLong.java
@@ -35,7 +35,7 @@ public class SimdSadLong {
/// CHECK-START-ARM64: long SimdSadLong.sadLong2Long(long[], long[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -106,7 +106,7 @@ public class SimdSadLong {
/// CHECK-START-ARM64: long SimdSadLong.sadLong2LongAlt2(long[], long[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -152,7 +152,7 @@ public class SimdSadLong {
/// CHECK-START-ARM64: long SimdSadLong.sadLong2LongAt1(long[], long[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
diff --git a/test/660-checker-simd-sad/src/SimdSadShort.java b/test/660-checker-simd-sad/src/SimdSadShort.java
index 0f1d08b91e..bc4de467ea 100644
--- a/test/660-checker-simd-sad/src/SimdSadShort.java
+++ b/test/660-checker-simd-sad/src/SimdSadShort.java
@@ -72,7 +72,7 @@ public class SimdSadShort {
//
/// CHECK-START-ARM64: int SimdSadShort.sadShort2Int(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -112,7 +112,7 @@ public class SimdSadShort {
//
/// CHECK-START-ARM64: int SimdSadShort.sadShort2IntAlt(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -154,7 +154,7 @@ public class SimdSadShort {
//
/// CHECK-START-ARM64: int SimdSadShort.sadShort2IntAlt2(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -200,7 +200,7 @@ public class SimdSadShort {
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Cons1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Cons:i\d+>> IntConstant 7 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -241,7 +241,7 @@ public class SimdSadShort {
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Cons1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Cons:i\d+>> IntConstant 7 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -282,7 +282,7 @@ public class SimdSadShort {
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Cons1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Cons:i\d+>> IntConstant -7 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -325,7 +325,7 @@ public class SimdSadShort {
/// CHECK-START-ARM64: long SimdSadShort.sadShort2Long(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -371,7 +371,7 @@ public class SimdSadShort {
/// CHECK-START-ARM64: long SimdSadShort.sadShort2LongAt1(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
diff --git a/test/660-checker-simd-sad/src/SimdSadShort2.java b/test/660-checker-simd-sad/src/SimdSadShort2.java
index 9688f0e310..71e9fb0e5e 100644
--- a/test/660-checker-simd-sad/src/SimdSadShort2.java
+++ b/test/660-checker-simd-sad/src/SimdSadShort2.java
@@ -87,7 +87,7 @@ public class SimdSadShort2 {
//
/// CHECK-START-ARM64: int SimdSadShort2.sadCastChar2Int(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -144,7 +144,7 @@ public class SimdSadShort2 {
//
/// CHECK-START-ARM64: int SimdSadShort2.sadCastChar2IntAlt(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -203,7 +203,7 @@ public class SimdSadShort2 {
//
/// CHECK-START-ARM64: int SimdSadShort2.sadCastChar2IntAlt2(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -271,7 +271,7 @@ public class SimdSadShort2 {
/// CHECK-START-ARM64: long SimdSadShort2.sadCastChar2Long(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -336,7 +336,7 @@ public class SimdSadShort2 {
/// CHECK-START-ARM64: long SimdSadShort2.sadCastChar2LongAt1(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsL:j\d+>> LongConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
diff --git a/test/660-checker-simd-sad/src/SimdSadShort3.java b/test/660-checker-simd-sad/src/SimdSadShort3.java
index 0687d1e0f2..cc92f69632 100644
--- a/test/660-checker-simd-sad/src/SimdSadShort3.java
+++ b/test/660-checker-simd-sad/src/SimdSadShort3.java
@@ -36,7 +36,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntParamRight(short[], short) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Param:s\d+>> ParameterValue loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -76,7 +76,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntParamLeft(short[], short) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Param:s\d+>> ParameterValue loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -116,7 +116,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntConstRight(short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsI:i\d+>> IntConstant 32767 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -156,7 +156,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntConstLeft(short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsI:i\d+>> IntConstant 32767 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -196,7 +196,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntInvariantRight(short[], int) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Conv:s\d+>> TypeConversion [{{i\d+}}] loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -237,7 +237,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntInvariantLeft(short[], int) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Conv:s\d+>> TypeConversion [{{i\d+}}] loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -280,7 +280,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntCastExprRight(short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsI:i\d+>> IntConstant 110 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
@@ -324,7 +324,7 @@ public class SimdSadShort3 {
/// CHECK-START-ARM64: int SimdSadShort3.sadShort2IntCastExprLeft(short[]) loop_optimization (after)
/// CHECK-DAG: <<Cons0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<ConsI:i\d+>> IntConstant 110 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// SAD idiom is not supported for SVE.
/// CHECK-NOT: VecSADAccumulate
diff --git a/test/661-checker-simd-cf-loops/src/Main.java b/test/661-checker-simd-cf-loops/src/Main.java
index 95c09490bb..aee6c6a4f4 100644
--- a/test/661-checker-simd-cf-loops/src/Main.java
+++ b/test/661-checker-simd-cf-loops/src/Main.java
@@ -45,7 +45,7 @@ public class Main {
public static final float MAGIC_FLOAT_ADD_CONST = 99.0f;
/// CHECK-START-ARM64: int Main.$compile$noinline$FullDiamond(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<C0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<C4:i\d+>> IntConstant 4 loop:none
@@ -92,7 +92,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleBoolean(boolean[], boolean[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -109,7 +109,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleByte(byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad
//
@@ -124,7 +124,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleUByte(byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad
//
@@ -138,7 +138,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleShort(short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad
//
@@ -153,7 +153,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleChar(char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad
//
@@ -168,7 +168,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleInt(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad
//
@@ -183,7 +183,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleLong(long[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -200,7 +200,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleFloat(float[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -217,7 +217,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleDouble(double[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -238,7 +238,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.$compile$noinline$ByteConv(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad
//
@@ -253,7 +253,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$UByteAndWrongConst(byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -269,7 +269,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$ByteNoHiBits(byte[], byte[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -290,7 +290,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.$compile$noinline$SimpleBelow(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -311,7 +311,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.$compile$noinline$Select(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -329,7 +329,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$Phi(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -350,7 +350,7 @@ public class Main {
// TODO: when Phis are supported, test dotprod and sad idioms.
/// CHECK-START-ARM64: int Main.$compile$noinline$Reduction(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -369,7 +369,7 @@ public class Main {
}
/// CHECK-START-ARM64: int Main.$compile$noinline$ReductionBackEdge(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: VecLoad
//
@@ -395,7 +395,7 @@ public class Main {
public static final int STENCIL_ARRAY_SIZE = 130;
/// CHECK-START-ARM64: void Main.$compile$noinline$stencilAlike(int[], int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -416,7 +416,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$NotDiamondCf(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
@@ -435,7 +435,7 @@ public class Main {
}
/// CHECK-START-ARM64: void Main.$compile$noinline$BrokenInduction(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-NOT: VecLoad
//
diff --git a/test/661-checker-simd-reduc/src/Main.java b/test/661-checker-simd-reduc/src/Main.java
index b480884621..e6a8a0cea6 100644
--- a/test/661-checker-simd-reduc/src/Main.java
+++ b/test/661-checker-simd-reduc/src/Main.java
@@ -73,7 +73,7 @@ public class Main {
/// CHECK-DAG: <<Extr:i\d+>> VecExtractScalar [<<Red>>] loop:none
/// CHECK-START-ARM64: int Main.reductionInt(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<TrueC:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [{{i\d+}},{{j\d+}}] loop:none
@@ -102,7 +102,7 @@ public class Main {
// Check that full 128-bit Q-Register are saved across SuspendCheck slow path.
/// CHECK-START-ARM64: int Main.reductionInt(int[]) disassembly (after)
/// CHECK: SuspendCheckSlowPathARM64
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK: str z<<RegNo:\d+>>,
/// CHECK: ldr z<<RegNo>>,
@@ -157,7 +157,7 @@ public class Main {
/// CHECK-EVAL: "<<Loop1>>" != "<<Loop2>>"
//
/// CHECK-START-ARM64: int Main.reductionIntChain() loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set1:d\d+>> VecSetScalars [{{i\d+}},{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi1:d\d+>> Phi [<<Set1>>,{{d\d+}}] loop:<<Loop1:B\d+>> outer_loop:none
@@ -234,7 +234,7 @@ public class Main {
/// CHECK-DAG: <<Extr:i\d+>> VecExtractScalar [<<Red>>] loop:none
//
/// CHECK-START-ARM64: int Main.reductionIntToLoop(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [{{i\d+}},{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:d\d+>> Phi [<<Set>>,{{d\d+}}] loop:<<Loop1:B\d+>> outer_loop:none
@@ -280,7 +280,7 @@ public class Main {
/// CHECK-DAG: Return [<<Phi2>>] loop:none
//
/// CHECK-START-ARM64: long Main.reductionLong(long[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Cons2:i\d+>> IntConstant loop:none
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [{{j\d+}},{{j\d+}}] loop:none
@@ -358,7 +358,7 @@ public class Main {
/// CHECK-DAG: <<Extr:i\d+>> VecExtractScalar [<<Red>>] loop:none
//
/// CHECK-START-ARM64: int Main.reductionIntM1(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [{{i\d+}},{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:d\d+>> Phi [<<Set>>,{{d\d+}}] loop:<<Loop:B\d+>> outer_loop:none
@@ -401,7 +401,7 @@ public class Main {
/// CHECK-DAG: Return [<<Phi2>>] loop:none
//
/// CHECK-START-ARM64: long Main.reductionLongM1(long[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [{{j\d+}},{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:d\d+>> Phi [<<Set>>,{{d\d+}}] loop:<<Loop:B\d+>> outer_loop:none
@@ -477,7 +477,7 @@ public class Main {
/// CHECK-DAG: <<Extr:i\d+>> VecExtractScalar [<<Red>>] loop:none
//
/// CHECK-START-ARM64: int Main.reductionMinusInt(int[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [{{i\d+}},{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:d\d+>> Phi [<<Set>>,{{d\d+}}] loop:<<Loop:B\d+>> outer_loop:none
@@ -520,7 +520,7 @@ public class Main {
/// CHECK-DAG: Return [<<Phi2>>] loop:none
//
/// CHECK-START-ARM64: long Main.reductionMinusLong(long[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [{{j\d+}},{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:d\d+>> Phi [<<Set>>,{{d\d+}}] loop:<<Loop:B\d+>> outer_loop:none
diff --git a/test/665-checker-simd-zero/src/Main.java b/test/665-checker-simd-zero/src/Main.java
index 3960c40bcc..ed9935d6f6 100644
--- a/test/665-checker-simd-zero/src/Main.java
+++ b/test/665-checker-simd-zero/src/Main.java
@@ -26,7 +26,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zeroz(boolean[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
@@ -52,7 +52,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zerob(byte[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
@@ -78,7 +78,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zeroc(char[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
@@ -104,7 +104,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zeros(short[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
@@ -130,7 +130,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zeroi(int[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
@@ -156,7 +156,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zerol(long[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:j\d+>> LongConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
@@ -182,7 +182,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zerof(float[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:f\d+>> FloatConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
@@ -208,7 +208,7 @@ public class Main {
//
/// CHECK-START-ARM64: void Main.zerod(double[]) loop_optimization (after)
/// CHECK-DAG: <<Zero:d\d+>> DoubleConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none
diff --git a/test/669-checker-break/src/Main.java b/test/669-checker-break/src/Main.java
index 9f7b24ebbb..9117e1448a 100644
--- a/test/669-checker-break/src/Main.java
+++ b/test/669-checker-break/src/Main.java
@@ -51,7 +51,7 @@ public class Main {
/// CHECK-DAG: <<Par:l\d+>> ParameterValue loop:none
/// CHECK-DAG: <<One:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Nil:l\d+>> NullCheck [<<Par>>] loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Rep:d\d+>> VecReplicateScalar [<<One>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile loop:<<Loop:B\d+>> outer_loop:none
@@ -152,7 +152,7 @@ public class Main {
/// CHECK-DAG: <<Par:l\d+>> ParameterValue loop:none
/// CHECK-DAG: <<One:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Three:i\d+>> IntConstant 3 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Rep:d\d+>> VecReplicateScalar [<<Three>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile loop:<<Loop:B\d+>> outer_loop:none
@@ -284,7 +284,7 @@ public class Main {
/// CHECK-START-ARM64: int Main.breakLoopReduction(int[]) loop_optimization (after)
/// CHECK-DAG: <<Par:l\d+>> ParameterValue loop:none
/// CHECK-DAG: <<Zero:i\d+>> IntConstant 0 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Exp:d\d+>> VecSetScalars [<<Zero>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<LoopP:j\d+>> VecPredWhile loop:<<Loop:B\d+>> outer_loop:none
diff --git a/test/684-checker-simd-dotprod/src/other/TestByte.java b/test/684-checker-simd-dotprod/src/other/TestByte.java
index a67b3e94ba..a3222c62df 100644
--- a/test/684-checker-simd-dotprod/src/other/TestByte.java
+++ b/test/684-checker-simd-dotprod/src/other/TestByte.java
@@ -37,7 +37,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdSimple(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi1:i\d+>> Phi [<<Const0>>,{{i\d+}}] loop:<<Loop:B\d+>> outer_loop:none
@@ -70,7 +70,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdSimple(byte[], byte[]) disassembly (after)
/// CHECK: VecDotProd
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
/// CHECK: sdot z{{\d+}}.s, z{{\d+}}.b, z{{\d+}}.b
/// CHECK-ELIF: hasIsaFeature("dotprod")
/// CHECK-NEXT: sdot v{{\d+}}.4s, v{{\d+}}.16b, v{{\d+}}.16b
@@ -105,7 +105,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdComplex(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
@@ -163,7 +163,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdSimpleUnsigned(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi1:i\d+>> Phi [<<Const0>>,{{i\d+}}] loop:<<Loop:B\d+>> outer_loop:none
@@ -195,7 +195,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdSimpleUnsigned(byte[], byte[]) disassembly (after)
/// CHECK: VecDotProd
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
/// CHECK: udot z{{\d+}}.s, z{{\d+}}.b, z{{\d+}}.b
/// CHECK-ELIF: hasIsaFeature("dotprod")
/// CHECK-NEXT: udot v{{\d+}}.4s, v{{\d+}}.16b, v{{\d+}}.16b
@@ -230,7 +230,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdComplexUnsigned(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
@@ -292,7 +292,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdComplexUnsignedCastToSigned(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
@@ -354,7 +354,7 @@ public class TestByte {
/// CHECK-START-ARM64: int other.TestByte.testDotProdComplexSignedCastToUnsigned(byte[], byte[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
diff --git a/test/684-checker-simd-dotprod/src/other/TestCharShort.java b/test/684-checker-simd-dotprod/src/other/TestCharShort.java
index cd076496c1..803365d63c 100644
--- a/test/684-checker-simd-dotprod/src/other/TestCharShort.java
+++ b/test/684-checker-simd-dotprod/src/other/TestCharShort.java
@@ -37,7 +37,7 @@ public class TestCharShort {
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdSimple(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -84,7 +84,7 @@ public class TestCharShort {
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdComplex(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -130,7 +130,7 @@ public class TestCharShort {
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdSimpleUnsigned(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -177,7 +177,7 @@ public class TestCharShort {
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdComplexUnsigned(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -227,7 +227,7 @@ public class TestCharShort {
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdComplexUnsignedCastToSigned(char[], char[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -277,7 +277,7 @@ public class TestCharShort {
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdComplexSignedCastToUnsigned(short[], short[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -310,7 +310,7 @@ public class TestCharShort {
}
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdSignedToInt(short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -330,7 +330,7 @@ public class TestCharShort {
}
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdParamSigned(int, short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -350,7 +350,7 @@ public class TestCharShort {
}
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdParamUnsigned(int, char[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
@@ -381,7 +381,7 @@ public class TestCharShort {
}
/// CHECK-START-{ARM64}: int other.TestCharShort.testDotProdSignedToChar(short[], short[]) loop_optimization (after)
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd
diff --git a/test/684-checker-simd-dotprod/src/other/TestVarious.java b/test/684-checker-simd-dotprod/src/other/TestVarious.java
index ef03da1fbd..631e2c3800 100644
--- a/test/684-checker-simd-dotprod/src/other/TestVarious.java
+++ b/test/684-checker-simd-dotprod/src/other/TestVarious.java
@@ -36,7 +36,7 @@ public class TestVarious {
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Const89:i\d+>> IntConstant 89 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const89>>,{{j\d+}}] loop:none
@@ -89,7 +89,7 @@ public class TestVarious {
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Const89:i\d+>> IntConstant 89 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const89>>,{{j\d+}}] loop:none
@@ -149,7 +149,7 @@ public class TestVarious {
/// CHECK-DAG: <<ConstL:i\d+>> IntConstant 129 loop:none
/// CHECK-DAG: <<AddP:i\d+>> Add [<<Param>>,<<ConstL>>] loop:none
/// CHECK-DAG: <<TypeCnv:b\d+>> TypeConversion [<<AddP>>] loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<TypeCnv>>,{{j\d+}}] loop:none
@@ -236,7 +236,7 @@ public class TestVarious {
/// CHECK-START-{ARM64}: int other.TestVarious.testDotProdInt32(int[], int[]) loop_optimization (after)
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Phi1:i\d+>> Phi [<<Const0>>,{{i\d+}}] loop:<<Loop:B\d+>> outer_loop:none
@@ -294,7 +294,7 @@ public class TestVarious {
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Const2:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set1:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set2:d\d+>> VecSetScalars [<<Const2>>,{{j\d+}}] loop:none
@@ -359,7 +359,7 @@ public class TestVarious {
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Const2:i\d+>> IntConstant 2 loop:none
/// CHECK-DAG: <<Const42:i\d+>> IntConstant 42 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Repl:d\d+>> VecReplicateScalar [<<Const42>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set1:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
@@ -425,7 +425,7 @@ public class TestVarious {
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Const2:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
/// CHECK-DAG: <<Set1:d\d+>> VecSetScalars [<<Const1>>,{{j\d+}}] loop:none
/// CHECK-DAG: <<Set2:d\d+>> VecSetScalars [<<Const2>>,{{j\d+}}] loop:none
@@ -491,7 +491,7 @@ public class TestVarious {
/// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none
/// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none
/// CHECK-DAG: <<Const2:i\d+>> IntConstant 2 loop:none
- /// CHECK-IF: hasIsaFeature("sve")
+ /// CHECK-IF: hasIsaFeature("sve") and os.environ.get('ART_FORCE_TRY_PREDICATED_SIMD') == 'true'
//
// 16-bit DotProd is not supported for SVE.
/// CHECK-NOT: VecDotProd