// java -XX:CompileCommand=compileonly,Test::test -XX:CompileCommand=printcompilation,Test::test -Xbatch -XX:+TraceLoopOpts Test.java

import java.lang.foreign.*;

public class Test {

    public static void main(String[] args) {
        MemorySegment a = MemorySegment.ofArray(new short[100_000]);
        MemorySegment b = MemorySegment.ofArray(new short[100_000]);
        for (int i = 0; i < 100_000; i++) {
            test(a, -50_000, b, -30_000, 0, 1000);
        }
    }

    private static long invar0_853 = 0;
    private static long invar1_853 = 0;
    private static long invar2_853 = 0;

    public static Object test(MemorySegment container_0, long invar0_0, MemorySegment container_1, long invar0_1, long ivLo, long ivHi) {
        for (long i = ivHi-1; i >= ivLo; i-=1) {
            container_0.set(ValueLayout.JAVA_CHAR_UNALIGNED, -47143L + -2L * i + -2L * invar0_0 + -1L * invar0_853 + -1L * invar1_853 + 0L * invar2_853, (char)0x0102030405060708L);
            container_1.set(ValueLayout.JAVA_CHAR_UNALIGNED, 74770L + 2L * i + 2L * invar0_1 + 0L * invar0_853 + 0L * invar1_853 + 0L * invar2_853, (char)0x1112131415161718L);
        }
        return new Object[] { container_0, container_1 };
    }
}
