Fix bug in vectorization of charAt, with regression test
Rationale:
String array get instruction cannot be vectorized
in a straightforward way, since compression has
to be dealt with. So rejected for now.
Test: test-art-target, test-art-host
Bug: 37151445
Change-Id: I16112cb8b1be30babd8ec07af5976db0369f8c28
diff --git a/test/623-checker-loop-regressions/src/Main.java b/test/623-checker-loop-regressions/src/Main.java
index 182c07d..f0b3278 100644
--- a/test/623-checker-loop-regressions/src/Main.java
+++ b/test/623-checker-loop-regressions/src/Main.java
@@ -280,6 +280,14 @@
}
}
+ // If vectorized, string encoding should be dealt with.
+ private static void string2Bytes(char[] a, String b) {
+ int min = Math.min(a.length, b.length());
+ for (int i = 0; i < min; i++) {
+ a[i] = b.charAt(i);
+ }
+ }
+
public static void main(String[] args) {
expectEquals(10, earlyExitFirst(-1));
for (int i = 0; i <= 10; i++) {
@@ -354,6 +362,13 @@
expectEquals(2, yy[i]);
}
+ char[] aa = new char[23];
+ String bb = "hello world how are you";
+ string2Bytes(aa, bb);
+ for (int i = 0; i < aa.length; i++) {
+ expectEquals(aa[i], bb.charAt(i));
+ }
+
System.out.println("passed");
}