summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tamas Kenez <tamaskenez@google.com> 2018-06-08 07:35:26 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-06-08 07:35:26 +0000
commitf69a5111fef6d0922b67c0493c7b78cbe451890a (patch)
tree95295df45bbb0ea2b436275932e25d32aeb909a3
parent803a8d73f1c8b3f331e2bbf2aba037f6c93d18dc (diff)
parent4459baee5d3042310cd2de94b7801f90ccf2504b (diff)
Merge "ART-tests: Remove DX-dependency from 551-checker-shifter-operand"
-rw-r--r--test/551-checker-shifter-operand/build20
-rw-r--r--test/551-checker-shifter-operand/src/Main.java136
2 files changed, 92 insertions, 64 deletions
diff --git a/test/551-checker-shifter-operand/build b/test/551-checker-shifter-operand/build
deleted file mode 100644
index d85147f17b..0000000000
--- a/test/551-checker-shifter-operand/build
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# See b/65168732
-export USE_D8=false
-
-./default-build "$@"
diff --git a/test/551-checker-shifter-operand/src/Main.java b/test/551-checker-shifter-operand/src/Main.java
index b3e4a60e9a..8311b60df7 100644
--- a/test/551-checker-shifter-operand/src/Main.java
+++ b/test/551-checker-shifter-operand/src/Main.java
@@ -896,7 +896,7 @@ public class Main {
}
// Each test line below should see one merge.
- /// CHECK-START-ARM: void Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm (after)
+ /// CHECK-START-ARM: long[] Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm (after)
/// CHECK: DataProcWithShifterOp
/// CHECK: DataProcWithShifterOp
/// CHECK: DataProcWithShifterOp
@@ -933,7 +933,7 @@ public class Main {
/// CHECK-NOT: DataProcWithShifterOp
// On ARM shifts by 1 are not merged.
- /// CHECK-START-ARM: void Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm (after)
+ /// CHECK-START-ARM: long[] Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm (after)
/// CHECK: Shl
/// CHECK-NOT: Shl
/// CHECK: Shr
@@ -941,7 +941,7 @@ public class Main {
/// CHECK: UShr
/// CHECK-NOT: UShr
- /// CHECK-START-ARM64: void Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm64 (after)
+ /// CHECK-START-ARM64: long[] Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm64 (after)
/// CHECK: DataProcWithShifterOp
/// CHECK: DataProcWithShifterOp
/// CHECK: DataProcWithShifterOp
@@ -980,50 +980,98 @@ public class Main {
/// CHECK: DataProcWithShifterOp
/// CHECK-NOT: DataProcWithShifterOp
- /// CHECK-START-ARM64: void Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm64 (after)
+ /// CHECK-START-ARM64: long[] Main.$opt$validateShiftLong(long, long) instruction_simplifier_arm64 (after)
/// CHECK-NOT: Shl
/// CHECK-NOT: Shr
/// CHECK-NOT: UShr
- public static void $opt$validateShiftLong(long a, long b) {
- assertLongEquals(a + $noinline$LongShl(b, 1), a + (b << 1));
- assertLongEquals(a + $noinline$LongShl(b, 6), a + (b << 6));
- assertLongEquals(a + $noinline$LongShl(b, 7), a + (b << 7));
- assertLongEquals(a + $noinline$LongShl(b, 8), a + (b << 8));
- assertLongEquals(a + $noinline$LongShl(b, 14), a + (b << 14));
- assertLongEquals(a + $noinline$LongShl(b, 15), a + (b << 15));
- assertLongEquals(a + $noinline$LongShl(b, 16), a + (b << 16));
- assertLongEquals(a + $noinline$LongShl(b, 30), a + (b << 30));
- assertLongEquals(a + $noinline$LongShl(b, 31), a + (b << 31));
- assertLongEquals(a + $noinline$LongShl(b, 32), a + (b << 32));
- assertLongEquals(a + $noinline$LongShl(b, 62), a + (b << 62));
- assertLongEquals(a + $noinline$LongShl(b, 63), a + (b << 63));
-
- assertLongEquals(a - $noinline$LongShr(b, 1), a - (b >> 1));
- assertLongEquals(a - $noinline$LongShr(b, 6), a - (b >> 6));
- assertLongEquals(a - $noinline$LongShr(b, 7), a - (b >> 7));
- assertLongEquals(a - $noinline$LongShr(b, 8), a - (b >> 8));
- assertLongEquals(a - $noinline$LongShr(b, 14), a - (b >> 14));
- assertLongEquals(a - $noinline$LongShr(b, 15), a - (b >> 15));
- assertLongEquals(a - $noinline$LongShr(b, 16), a - (b >> 16));
- assertLongEquals(a - $noinline$LongShr(b, 30), a - (b >> 30));
- assertLongEquals(a - $noinline$LongShr(b, 31), a - (b >> 31));
- assertLongEquals(a - $noinline$LongShr(b, 32), a - (b >> 32));
- assertLongEquals(a - $noinline$LongShr(b, 62), a - (b >> 62));
- assertLongEquals(a - $noinline$LongShr(b, 63), a - (b >> 63));
-
- assertLongEquals(a ^ $noinline$LongUshr(b, 1), a ^ (b >>> 1));
- assertLongEquals(a ^ $noinline$LongUshr(b, 6), a ^ (b >>> 6));
- assertLongEquals(a ^ $noinline$LongUshr(b, 7), a ^ (b >>> 7));
- assertLongEquals(a ^ $noinline$LongUshr(b, 8), a ^ (b >>> 8));
- assertLongEquals(a ^ $noinline$LongUshr(b, 14), a ^ (b >>> 14));
- assertLongEquals(a ^ $noinline$LongUshr(b, 15), a ^ (b >>> 15));
- assertLongEquals(a ^ $noinline$LongUshr(b, 16), a ^ (b >>> 16));
- assertLongEquals(a ^ $noinline$LongUshr(b, 30), a ^ (b >>> 30));
- assertLongEquals(a ^ $noinline$LongUshr(b, 31), a ^ (b >>> 31));
- assertLongEquals(a ^ $noinline$LongUshr(b, 32), a ^ (b >>> 32));
- assertLongEquals(a ^ $noinline$LongUshr(b, 62), a ^ (b >>> 62));
- assertLongEquals(a ^ $noinline$LongUshr(b, 63), a ^ (b >>> 63));
+ public static long[] $opt$validateShiftLong(long a, long b) {
+ long[] results = new long[36];
+
+ results[0] = a + (b << 1);
+ results[1] = a + (b << 6);
+ results[2] = a + (b << 7);
+ results[3] = a + (b << 8);
+ results[4] = a + (b << 14);
+ results[5] = a + (b << 15);
+ results[6] = a + (b << 16);
+ results[7] = a + (b << 30);
+ results[8] = a + (b << 31);
+ results[9] = a + (b << 32);
+ results[10] = a + (b << 62);
+ results[11] = a + (b << 63);
+
+ results[12] = a - (b >> 1);
+ results[13] = a - (b >> 6);
+ results[14] = a - (b >> 7);
+ results[15] = a - (b >> 8);
+ results[16] = a - (b >> 14);
+ results[17] = a - (b >> 15);
+ results[18] = a - (b >> 16);
+ results[19] = a - (b >> 30);
+ results[20] = a - (b >> 31);
+ results[21] = a - (b >> 32);
+ results[22] = a - (b >> 62);
+ results[23] = a - (b >> 63);
+
+ results[24] = a ^ (b >>> 1);
+ results[25] = a ^ (b >>> 6);
+ results[26] = a ^ (b >>> 7);
+ results[27] = a ^ (b >>> 8);
+ results[28] = a ^ (b >>> 14);
+ results[29] = a ^ (b >>> 15);
+ results[30] = a ^ (b >>> 16);
+ results[31] = a ^ (b >>> 30);
+ results[32] = a ^ (b >>> 31);
+ results[33] = a ^ (b >>> 32);
+ results[34] = a ^ (b >>> 62);
+ results[35] = a ^ (b >>> 63);
+
+ return results;
+ }
+
+ public static void $opt$validateShiftLongAsserts(long a, long b) {
+ long[] results = $opt$validateShiftLong(a, b);
+ assertIntEquals(3 * 12, results.length);
+
+ assertLongEquals(a + $noinline$LongShl(b, 1), results[0]);
+ assertLongEquals(a + $noinline$LongShl(b, 6), results[1]);
+ assertLongEquals(a + $noinline$LongShl(b, 7), results[2]);
+ assertLongEquals(a + $noinline$LongShl(b, 8), results[3]);
+ assertLongEquals(a + $noinline$LongShl(b, 14), results[4]);
+ assertLongEquals(a + $noinline$LongShl(b, 15), results[5]);
+ assertLongEquals(a + $noinline$LongShl(b, 16), results[6]);
+ assertLongEquals(a + $noinline$LongShl(b, 30), results[7]);
+ assertLongEquals(a + $noinline$LongShl(b, 31), results[8]);
+ assertLongEquals(a + $noinline$LongShl(b, 32), results[9]);
+ assertLongEquals(a + $noinline$LongShl(b, 62), results[10]);
+ assertLongEquals(a + $noinline$LongShl(b, 63), results[11]);
+
+ assertLongEquals(a - $noinline$LongShr(b, 1), results[12]);
+ assertLongEquals(a - $noinline$LongShr(b, 6), results[13]);
+ assertLongEquals(a - $noinline$LongShr(b, 7), results[14]);
+ assertLongEquals(a - $noinline$LongShr(b, 8), results[15]);
+ assertLongEquals(a - $noinline$LongShr(b, 14), results[16]);
+ assertLongEquals(a - $noinline$LongShr(b, 15), results[17]);
+ assertLongEquals(a - $noinline$LongShr(b, 16), results[18]);
+ assertLongEquals(a - $noinline$LongShr(b, 30), results[19]);
+ assertLongEquals(a - $noinline$LongShr(b, 31), results[20]);
+ assertLongEquals(a - $noinline$LongShr(b, 32), results[21]);
+ assertLongEquals(a - $noinline$LongShr(b, 62), results[22]);
+ assertLongEquals(a - $noinline$LongShr(b, 63), results[23]);
+
+ assertLongEquals(a ^ $noinline$LongUshr(b, 1), results[24]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 6), results[25]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 7), results[26]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 8), results[27]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 14), results[28]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 15), results[29]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 16), results[30]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 30), results[31]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 31), results[32]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 32), results[33]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 62), results[34]);
+ assertLongEquals(a ^ $noinline$LongUshr(b, 63), results[35]);
}
@@ -1072,7 +1120,7 @@ public class Main {
$opt$validateExtendLong(inputs[i], inputs[j]);
$opt$validateShiftInt((int)inputs[i], (int)inputs[j]);
- $opt$validateShiftLong(inputs[i], inputs[j]);
+ $opt$validateShiftLongAsserts(inputs[i], inputs[j]);
}
}