public class org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest extends org.graalvm.compiler.core.aarch64.test.AArch64MatchRuleTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest
  super_class: org.graalvm.compiler.core.aarch64.test.AArch64MatchRuleTest
{
  private static final java.util.function.Predicate<org.graalvm.compiler.lir.LIRInstruction> predicate;
    descriptor: Ljava/util/function/Predicate;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/function/Predicate<Lorg/graalvm/compiler/lir/LIRInstruction;>;

  private static final org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame[] frameCache;
    descriptor: [Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest$Frame;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static java.util.Set<java.lang.Long> allBarcodes;
    descriptor: Ljava/util/Set;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/Set<Ljava/lang/Long;>;

  static java.util.Set<java.lang.Long> localBarcodes;
    descriptor: Ljava/util/Set;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/Set<Ljava/lang/Long;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 39
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest.lambda$0(Lorg/graalvm/compiler/lir/LIRInstruction;)Z (6)
                  (Lorg/graalvm/compiler/lir/LIRInstruction;)Z
            putstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
         1: .line 191
            sipush 256
            anewarray org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame
            putstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.frameCache:[Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest$Frame;
         2: .line 210
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.allBarcodes:Ljava/util/Set;
         3: .line 211
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.localBarcodes:Ljava/util/Set;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 38
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.aarch64.test.AArch64MatchRuleTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;

  public static byte loadByte(byte[], int);
    descriptor: ([BI)B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // byte[] arr
        start local 1 // int n
         0: .line 42
            aload 0 /* arr */
            iload 1 /* n */
            baload
            ireturn
        end local 1 // int n
        end local 0 // byte[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [B
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadByte();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 47
            bipush 6
            newarray 8
            dup
            iconst_0
            iconst_3
            bastore
            dup
            iconst_1
            iconst_4
            bastore
            dup
            iconst_2
            iconst_5
            bastore
            dup
            iconst_3
            bipush 6
            bastore
            dup
            iconst_4
            bipush 7
            bastore
            dup
            iconst_5
            bipush 8
            bastore
            astore 1 /* arr */
        start local 1 // byte[] arr
         1: .line 48
            aload 0 /* this */
            ldc "loadByte"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 49
            aload 0 /* this */
            ldc "loadByte"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;II)V
         3: .line 50
            return
        end local 1 // byte[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [B
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static char loadChar(char[], int);
    descriptor: ([CI)C
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // char[] arr
        start local 1 // int n
         0: .line 53
            aload 0 /* arr */
            iload 1 /* n */
            caload
            ireturn
        end local 1 // int n
        end local 0 // char[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [C
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadChar();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 58
            bipush 7
            newarray 5
            dup
            iconst_0
            bipush 97
            castore
            dup
            iconst_1
            bipush 98
            castore
            dup
            iconst_2
            bipush 99
            castore
            dup
            iconst_3
            bipush 100
            castore
            dup
            iconst_4
            bipush 101
            castore
            dup
            iconst_5
            bipush 102
            castore
            dup
            bipush 6
            bipush 103
            castore
            astore 1 /* arr */
        start local 1 // char[] arr
         1: .line 59
            aload 0 /* this */
            ldc "loadChar"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 60
            aload 0 /* this */
            ldc "loadChar"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;II)V
         3: .line 61
            return
        end local 1 // char[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [C
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static short loadShort(short[], int);
    descriptor: ([SI)S
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // short[] arr
        start local 1 // int n
         0: .line 64
            aload 0 /* arr */
            iload 1 /* n */
            saload
            ireturn
        end local 1 // int n
        end local 0 // short[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [S
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadShort();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 69
            bipush 6
            newarray 9
            dup
            iconst_0
            iconst_3
            sastore
            dup
            iconst_1
            iconst_4
            sastore
            dup
            iconst_2
            iconst_5
            sastore
            dup
            iconst_3
            bipush 6
            sastore
            dup
            iconst_4
            bipush 7
            sastore
            dup
            iconst_5
            bipush 8
            sastore
            astore 1 /* arr */
        start local 1 // short[] arr
         1: .line 70
            aload 0 /* this */
            ldc "loadShort"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 71
            aload 0 /* this */
            ldc "loadShort"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;II)V
         3: .line 72
            return
        end local 1 // short[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [S
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int loadInt(int[], int);
    descriptor: ([II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int[] arr
        start local 1 // int n
         0: .line 75
            aload 0 /* arr */
            iload 1 /* n */
            iaload
            ireturn
        end local 1 // int n
        end local 0 // int[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [I
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadInt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 80
            bipush 6
            newarray 10
            dup
            iconst_0
            iconst_3
            iastore
            dup
            iconst_1
            iconst_4
            iastore
            dup
            iconst_2
            iconst_5
            iastore
            dup
            iconst_3
            bipush 6
            iastore
            dup
            iconst_4
            bipush 7
            iastore
            dup
            iconst_5
            bipush 8
            iastore
            astore 1 /* arr */
        start local 1 // int[] arr
         1: .line 81
            aload 0 /* this */
            ldc "loadInt"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 82
            aload 0 /* this */
            ldc "loadInt"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;II)V
         3: .line 83
            return
        end local 1 // int[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static long loadLong(long[], int);
    descriptor: ([JI)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // long[] arr
        start local 1 // int n
         0: .line 86
            aload 0 /* arr */
            iload 1 /* n */
            laload
            lreturn
        end local 1 // int n
        end local 0 // long[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [J
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadLong();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 91
            bipush 6
            newarray 11
            dup
            iconst_0
            ldc 3
            lastore
            dup
            iconst_1
            ldc 4
            lastore
            dup
            iconst_2
            ldc 5
            lastore
            dup
            iconst_3
            ldc 6
            lastore
            dup
            iconst_4
            ldc 7
            lastore
            dup
            iconst_5
            ldc 8
            lastore
            astore 1 /* arr */
        start local 1 // long[] arr
         1: .line 92
            aload 0 /* this */
            ldc "loadLong"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 93
            aload 0 /* this */
            ldc "loadLong"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;II)V
         3: .line 94
            return
        end local 1 // long[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [J
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static float loadFloat(float[], int);
    descriptor: ([FI)F
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // float[] arr
        start local 1 // int n
         0: .line 97
            aload 0 /* arr */
            iload 1 /* n */
            faload
            freturn
        end local 1 // int n
        end local 0 // float[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [F
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadFloat();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 102
            bipush 6
            newarray 6
            dup
            iconst_0
            ldc 3.0
            fastore
            dup
            iconst_1
            ldc 4.0
            fastore
            dup
            iconst_2
            ldc 5.0
            fastore
            dup
            iconst_3
            ldc 6.0
            fastore
            dup
            iconst_4
            ldc 7.0
            fastore
            dup
            iconst_5
            ldc 8.0
            fastore
            astore 1 /* arr */
        start local 1 // float[] arr
         1: .line 103
            aload 0 /* this */
            ldc "loadFloat"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 104
            aload 0 /* this */
            ldc "loadFloat"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;II)V
         3: .line 105
            return
        end local 1 // float[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [F
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static double loadDouble(double[], int);
    descriptor: ([DI)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // double[] arr
        start local 1 // int n
         0: .line 108
            aload 0 /* arr */
            iload 1 /* n */
            daload
            dreturn
        end local 1 // int n
        end local 0 // double[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [D
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadDouble();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 113
            bipush 6
            newarray 7
            dup
            iconst_0
            ldc 3.0
            dastore
            dup
            iconst_1
            ldc 4.0
            dastore
            dup
            iconst_2
            ldc 5.0
            dastore
            dup
            iconst_3
            ldc 6.0
            dastore
            dup
            iconst_4
            ldc 7.0
            dastore
            dup
            iconst_5
            ldc 8.0
            dastore
            astore 1 /* arr */
        start local 1 // double[] arr
         1: .line 114
            aload 0 /* this */
            ldc "loadDouble"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 115
            aload 0 /* this */
            ldc "loadDouble"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;II)V
         3: .line 116
            return
        end local 1 // double[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [D
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static java.lang.String loadObject(java.lang.String[], int);
    descriptor: ([Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String[] arr
        start local 1 // int n
         0: .line 119
            aload 0 /* arr */
            iload 1 /* n */
            aaload
            areturn
        end local 1 // int n
        end local 0 // java.lang.String[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [Ljava/lang/String;
            0    1     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testLoadObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 124
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
            ldc "ac"
            aastore
            dup
            iconst_1
            ldc "ad"
            aastore
            dup
            iconst_2
            ldc "ew"
            aastore
            dup
            iconst_3
            ldc "asf"
            aastore
            dup
            iconst_4
            ldc "sdad"
            aastore
            dup
            iconst_5
            ldc "aff"
            aastore
            astore 1 /* arr */
        start local 1 // java.lang.String[] arr
         1: .line 125
            aload 0 /* this */
            ldc "loadObject"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 126
            aload 0 /* this */
            ldc "loadObject"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIRforAll:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         3: .line 127
            return
        end local 1 // java.lang.String[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int storeInt(int[], int);
    descriptor: ([II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int[] arr
        start local 1 // int n
         0: .line 130
            aload 0 /* arr */
            iload 1 /* n */
            iload 1 /* n */
            iload 1 /* n */
            imul
            iastore
         1: .line 131
            aload 0 /* arr */
            iload 1 /* n */
            iaload
            ireturn
        end local 1 // int n
        end local 0 // int[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   arr  [I
            0    2     1     n  I
    MethodParameters:
      Name  Flags
      arr   
      n     

  public void testStoreInt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 136
            bipush 6
            newarray 10
            dup
            iconst_0
            iconst_3
            iastore
            dup
            iconst_1
            iconst_4
            iastore
            dup
            iconst_2
            iconst_5
            iastore
            dup
            iconst_3
            bipush 6
            iastore
            dup
            iconst_4
            bipush 7
            iastore
            dup
            iconst_5
            bipush 8
            iastore
            astore 1 /* arr */
        start local 1 // int[] arr
         1: .line 137
            aload 0 /* this */
            ldc "storeInt"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 138
            aload 0 /* this */
            ldc "storeInt"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIRforAll:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         3: .line 139
            return
        end local 1 // int[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static java.lang.Integer loadAndStoreObject(java.lang.Integer[], int);
    descriptor: ([Ljava/lang/Integer;I)Ljava/lang/Integer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Integer[] arr
        start local 1 // int i
         0: .line 142
            aload 0 /* arr */
            iload 1 /* i */
            aaload
            invokevirtual java.lang.Integer.intValue:()I
            ifle 2
         1: .line 143
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         2: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* arr */
            iload 1 /* i */
            dup2
            aaload
            invokevirtual java.lang.Integer.intValue:()I
            iconst_3
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         3: .line 146
            aload 0 /* arr */
            iload 1 /* i */
            aaload
            areturn
        end local 1 // int i
        end local 0 // java.lang.Integer[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   arr  [Ljava/lang/Integer;
            0    4     1     i  I
    MethodParameters:
      Name  Flags
      arr   
      i     

  public void testLoadAndStoreObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 151
            bipush 10
            anewarray java.lang.Integer
            dup
            iconst_0
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_5
            bipush 6
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
            bipush 7
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 7
            bipush 8
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 8
            bipush 9
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 9
            bipush 10
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            astore 1 /* arr */
        start local 1 // java.lang.Integer[] arr
         1: .line 152
            aload 0 /* this */
            ldc "loadAndStoreObject"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            dup
            iconst_1
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 153
            aload 0 /* this */
            ldc "loadAndStoreObject"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_2
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIRforAll:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         3: .line 154
            return
        end local 1 // java.lang.Integer[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [Ljava/lang/Integer;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int useArrayInLoop(int[]);
    descriptor: ([I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // int[] arr
         0: .line 157
            iconst_0
            istore 1 /* ret */
        start local 1 // int ret
         1: .line 158
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 159
      StackMap locals: int int
      StackMap stack:
            iload 1 /* ret */
            aload 0 /* arr */
            iload 2 /* i */
            iaload
            invokestatic org.graalvm.compiler.api.directives.GraalDirectives.opaque:(I)I
            iadd
            istore 1 /* ret */
         4: .line 158
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* arr */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 161
            iload 1 /* ret */
            ireturn
        end local 1 // int ret
        end local 0 // int[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   arr  [I
            1    7     1   ret  I
            2    6     2     i  I
    MethodParameters:
      Name  Flags
      arr   

  public void testUseArrayInLoop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 166
            bipush 8
            newarray 10
            dup
            iconst_0
            iconst_1
            iastore
            dup
            iconst_1
            iconst_2
            iastore
            dup
            iconst_2
            iconst_3
            iastore
            dup
            iconst_3
            iconst_4
            iastore
            dup
            iconst_4
            iconst_5
            iastore
            dup
            iconst_5
            bipush 6
            iastore
            dup
            bipush 6
            bipush 7
            iastore
            dup
            bipush 7
            bipush 8
            iastore
            astore 1 /* arr */
        start local 1 // int[] arr
         1: .line 167
            aload 0 /* this */
            ldc "useArrayInLoop"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 168
            aload 0 /* this */
            ldc "useArrayInLoop"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIRforAll:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         3: .line 169
            return
        end local 1 // int[] arr
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    4     1   arr  [I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int useArrayDeque(java.util.ArrayDeque<java.lang.Integer>);
    descriptor: (Ljava/util/ArrayDeque;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.ArrayDeque ad
         0: .line 172
            aload 0 /* ad */
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayDeque.addFirst:(Ljava/lang/Object;)V
         1: .line 173
            aload 0 /* ad */
            invokevirtual java.util.ArrayDeque.removeFirst:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 0 // java.util.ArrayDeque ad
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    ad  Ljava/util/ArrayDeque<Ljava/lang/Integer;>;
    Signature: (Ljava/util/ArrayDeque<Ljava/lang/Integer;>;)I
    MethodParameters:
      Name  Flags
      ad    

  public void testUseArrayDeque();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 178
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 1 /* ad */
        start local 1 // java.util.ArrayDeque ad
         1: .line 179
            aload 0 /* this */
            ldc "useArrayDeque"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ad */
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 180
            return
        end local 1 // java.util.ArrayDeque ad
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    3     1    ad  Ljava/util/ArrayDeque<Ljava/lang/Integer;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame newFrame(byte);
    descriptor: (B)Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest$Frame;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // byte data
         0: .line 194
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.frameCache:[Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest$Frame;
            iload 0 /* data */
            sipush 255
            iand
            aaload
            areturn
        end local 0 // byte data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  data  B
    MethodParameters:
      Name  Flags
      data  

  public static int getFrameIndex(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int n
         0: .line 198
            iload 0 /* n */
            i2b
            invokestatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.newFrame:(B)Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest$Frame;
            getfield org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame.index:I
            ireturn
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  I
    MethodParameters:
      Name  Flags
      n     

  public void testGetFrameIndex();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 203
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 204
      StackMap locals: int
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.frameCache:[Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest$Frame;
            iload 1 /* i */
            new org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame
            dup
            iload 1 /* i */
            iload 1 /* i */
            imul
            invokespecial org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame.<init>:(I)V
            aastore
         3: .line 203
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            sipush 256
            if_icmplt 2
        end local 1 // int i
         5: .line 206
            aload 0 /* this */
            ldc "getFrameIndex"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            sipush 258
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         6: .line 207
            aload 0 /* this */
            ldc "getFrameIndex"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.checkLIRforAll:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         7: .line 208
            return
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            1    5     1     i  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static long useConstReferenceAsBase(long);
    descriptor: (J)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // long l
         0: .line 214
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.localBarcodes:Ljava/util/Set;
            lload 0 /* l */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 215
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.allBarcodes:Ljava/util/Set;
            lload 0 /* l */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 216
            lload 0 /* l */
            lreturn
        end local 0 // long l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     l  J
    MethodParameters:
      Name  Flags
      l     

  public void testUseConstReferenceAsBase();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
         0: .line 221
            aload 0 /* this */
            ldc "useConstReferenceAsBase"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 222
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.localBarcodes:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.allBarcodes:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iadd
            istore 1 /* l */
        start local 1 // int l
         2: .line 223
            aload 0 /* this */
            ldc "useConstReferenceAsBase"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 1 /* l */
            i2l
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         3: .line 224
            return
        end local 1 // int l
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64ArrayAddressTest;
            2    4     1     l  I
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static boolean lambda$0(org.graalvm.compiler.lir.LIRInstruction);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstruction;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.lir.LIRInstruction op
         0: .line 39
            aload 0 /* op */
            instanceof org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$ExtendedAddSubShiftOp
            ireturn
        end local 0 // org.graalvm.compiler.lir.LIRInstruction op
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    op  Lorg/graalvm/compiler/lir/LIRInstruction;
}
SourceFile: "AArch64ArrayAddressTest.java"
NestMembers:
  org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private Frame = org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest$Frame of org.graalvm.compiler.core.aarch64.test.AArch64ArrayAddressTest
  public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
  public ExtendedAddSubShiftOp = org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$ExtendedAddSubShiftOp of org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp