public class org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest 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.AArch64MultiplyAddSubTest
  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;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 36
            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/AArch64MultiplyAddSubTest.lambda$0(Lorg/graalvm/compiler/lir/LIRInstruction;)Z (6)
                  (Lorg/graalvm/compiler/lir/LIRInstruction;)Z
            putstatic org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.predicate:Ljava/util/function/Predicate;
            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.AArch64MultiplyAddSubTest this
         0: .line 35
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.aarch64.test.AArch64MatchRuleTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64MultiplyAddSubTest;

  public static int mulAddInt(int, int, int);
    descriptor: (III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // int input0
        start local 1 // int input1
        start local 2 // int input2
         0: .line 42
            iload 2 /* input2 */
            iload 0 /* input0 */
            iload 1 /* input1 */
            imul
            iadd
            ireturn
        end local 2 // int input2
        end local 1 // int input1
        end local 0 // int input0
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  input0  I
            0    1     1  input1  I
            0    1     2  input2  I
    MethodParameters:
        Name  Flags
      input0  
      input1  
      input2  

  public void testMultiplyAddInt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
         0: .line 47
            aload 0 /* this */
            ldc "mulAddInt"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            bipush 46
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            bipush 23
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 48
            aload 0 /* this */
            ldc "mulAddInt"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            bipush -3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            bipush -5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            bipush 6
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 49
            aload 0 /* this */
            ldc "mulAddInt"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc 2147483647
            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_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         3: .line 50
            aload 0 /* this */
            ldc "mulAddInt"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         4: .line 51
            return
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64MultiplyAddSubTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static long mulAddLong(long, long, long);
    descriptor: (JJJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // long input0
        start local 2 // long input1
        start local 4 // long input2
         0: .line 57
            lload 0 /* input0 */
            lload 2 /* input1 */
            lmul
            lload 4 /* input2 */
            ladd
            lreturn
        end local 4 // long input2
        end local 2 // long input1
        end local 0 // long input0
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  input0  J
            0    1     2  input1  J
            0    1     4  input2  J
    MethodParameters:
        Name  Flags
      input0  
      input1  
      input2  

  public void testMultiplyAddLong();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
         0: .line 62
            aload 0 /* this */
            ldc "mulAddLong"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc 43
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            ldc 46442
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc 2341455
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 63
            aload 0 /* this */
            ldc "mulAddLong"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc -3141
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            ldc -542324
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc 65225
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 64
            aload 0 /* this */
            ldc "mulAddLong"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc 9223372036854775807
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc 124454
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         3: .line 65
            aload 0 /* this */
            ldc "mulAddLong"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         4: .line 66
            return
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64MultiplyAddSubTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static int mulSubInt(int, int, int);
    descriptor: (III)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // int input0
        start local 1 // int input1
        start local 2 // int input2
         0: .line 72
            iload 2 /* input2 */
            iload 0 /* input0 */
            iload 1 /* input1 */
            imul
            isub
            ireturn
        end local 2 // int input2
        end local 1 // int input1
        end local 0 // int input0
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  input0  I
            0    1     1  input1  I
            0    1     2  input2  I
    MethodParameters:
        Name  Flags
      input0  
      input1  
      input2  

  public void testMultiplySubInt();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
         0: .line 77
            aload 0 /* this */
            ldc "mulSubInt"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            bipush 46
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            bipush 23
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 78
            aload 0 /* this */
            ldc "mulSubInt"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            bipush -5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            bipush -3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 79
            aload 0 /* this */
            ldc "mulSubInt"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc -2147483648
            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
            ldc 2147483647
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         3: .line 80
            aload 0 /* this */
            ldc "mulSubInt"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         4: .line 81
            return
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64MultiplyAddSubTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public static long mulSubLong(long, long, long);
    descriptor: (JJJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // long input0
        start local 2 // long input1
        start local 4 // long input2
         0: .line 87
            lload 4 /* input2 */
            lload 0 /* input0 */
            lload 2 /* input1 */
            lmul
            lsub
            lreturn
        end local 4 // long input2
        end local 2 // long input1
        end local 0 // long input0
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  input0  J
            0    1     2  input1  J
            0    1     4  input2  J
    MethodParameters:
        Name  Flags
      input0  
      input1  
      input2  

  public void testMultiplySubLong();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
         0: .line 92
            aload 0 /* this */
            ldc "mulSubLong"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc 43
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            ldc 46442
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc 2341455
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 93
            aload 0 /* this */
            ldc "mulSubLong"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc -3141
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            ldc 542324
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc -65225
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         2: .line 94
            aload 0 /* this */
            ldc "mulSubLong"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc -9223372036854775808
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            ldc 2
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc 9223372036854775807
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         3: .line 95
            aload 0 /* this */
            ldc "mulSubLong"
            getstatic org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.predicate:Ljava/util/function/Predicate;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest.checkLIR:(Ljava/lang/String;Ljava/util/function/Predicate;I)V
         4: .line 96
            return
        end local 0 // org.graalvm.compiler.core.aarch64.test.AArch64MultiplyAddSubTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/compiler/core/aarch64/test/AArch64MultiplyAddSubTest;
    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 36
            aload 0 /* op */
            instanceof org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$MultiplyAddSubOp
            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: "AArch64MultiplyAddSubTest.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
  public MultiplyAddSubOp = org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$MultiplyAddSubOp of org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp