diff options
| author | 2018-09-06 09:26:08 +0000 | |
|---|---|---|
| committer | 2018-09-06 09:26:08 +0000 | |
| commit | ab187a909e43e8b3fa2a8df431118dd22d4b6025 (patch) | |
| tree | e40414f54f6cd877551310f699ba525ff3849d44 /test/623-checker-loop-regressions/src/Main.java | |
| parent | 4613c8a3a549213240f3ffc46514b600d872938e (diff) | |
| parent | 805b631cf77ceee2d31edb120ce360d3539c0a6f (diff) | |
Merge "Fix VecLoad/Int16/StringCharAt."
Diffstat (limited to 'test/623-checker-loop-regressions/src/Main.java')
| -rw-r--r-- | test/623-checker-loop-regressions/src/Main.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/623-checker-loop-regressions/src/Main.java b/test/623-checker-loop-regressions/src/Main.java index ff6e335b7f..4097e33564 100644 --- a/test/623-checker-loop-regressions/src/Main.java +++ b/test/623-checker-loop-regressions/src/Main.java @@ -304,6 +304,19 @@ public class Main { } } + /// CHECK-START-ARM: void Main.$noinline$stringToShorts(short[], java.lang.String) loop_optimization (after) + /// CHECK-NOT: VecLoad + + /// CHECK-START-ARM64: void Main.$noinline$stringToShorts(short[], java.lang.String) loop_optimization (after) + /// CHECK-DAG: VecLoad loop:<<Loop:B\d+>> outer_loop:none + /// CHECK-DAG: VecStore loop:<<Loop>> outer_loop:none + private static void $noinline$stringToShorts(short[] dest, String src) { + int min = Math.min(dest.length, src.length()); + for (int i = 0; i < min; ++i) { + dest[i] = (short) src.charAt(i); + } + } + // A strange function that does not inline. private static void $noinline$foo(boolean x, int n) { if (n < 0) @@ -684,6 +697,12 @@ public class Main { expectEquals(aa[i], cc.charAt(i)); } + short[] s2s = new short[12]; + $noinline$stringToShorts(s2s, "abcdefghijkl"); + for (int i = 0; i < s2s.length; ++i) { + expectEquals((short) "abcdefghijkl".charAt(i), s2s[i]); + } + envUsesInCond(); short[] dd = new short[23]; |