summaryrefslogtreecommitdiffstats
path: root/test/640-checker-char-simd
diff options
context:
space:
mode:
authorAart Bik <ajcbik@google.com>2017-05-18 14:45:27 -0700
committerAart Bik <ajcbik@google.com>2017-05-18 17:18:24 -0700
commit636e870d55c1739e2318c2180fac349683dbfa97 (patch)
tree6c726b0b918e26aba5b5f9ec1bc900045ef2c3e3 /test/640-checker-char-simd
parentde31d084f7d64c94911aef927798559d39759f95 (diff)
downloadandroid_art-636e870d55c1739e2318c2180fac349683dbfa97.tar.gz
android_art-636e870d55c1739e2318c2180fac349683dbfa97.tar.bz2
android_art-636e870d55c1739e2318c2180fac349683dbfa97.zip
Support for narrow operands in "dangerous" operations.
Rationale: Under strict conditions, even operations that are sensitive to higher order bits can vectorize by inspecting the operands carefully. This enables more vectorization, as demonstrated by the removal of quite a few TODOs. Test: test-art-target, test-art-host Change-Id: I2b0fda6a182da9aed9ce1708a53eaf0b7e1c9146
Diffstat (limited to 'test/640-checker-char-simd')
-rw-r--r--test/640-checker-char-simd/src/Main.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/test/640-checker-char-simd/src/Main.java b/test/640-checker-char-simd/src/Main.java
index 0628b36003..89d4b6b84e 100644
--- a/test/640-checker-char-simd/src/Main.java
+++ b/test/640-checker-char-simd/src/Main.java
@@ -134,9 +134,9 @@ public class Main {
/// CHECK-DAG: ArrayGet loop:<<Loop>> outer_loop:none
/// CHECK-DAG: ArraySet loop:<<Loop>> outer_loop:none
//
- /// CHECK-START-ARM64: void Main.sar2() loop_optimization (after)
- //
- // TODO: fill in when supported
+ // TODO: would need signess flip.
+ /// CHECK-START: void Main.sar2() loop_optimization (after)
+ /// CHECK-NOT: VecShr
static void sar2() {
for (int i = 0; i < 128; i++)
a[i] >>= 2;
@@ -148,8 +148,10 @@ public class Main {
/// CHECK-DAG: ArraySet loop:<<Loop>> outer_loop:none
//
/// CHECK-START-ARM64: void Main.shr2() loop_optimization (after)
- //
- // TODO: fill in when supported
+ /// CHECK-DAG: Phi loop:<<Loop:B\d+>> outer_loop:none
+ /// CHECK-DAG: VecLoad loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: VecUShr loop:<<Loop>> outer_loop:none
+ /// CHECK-DAG: VecStore loop:<<Loop>> outer_loop:none
static void shr2() {
for (int i = 0; i < 128; i++)
a[i] >>>= 2;