public class org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules extends org.graalvm.compiler.core.gen.NodeMatchRules
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules
  super_class: org.graalvm.compiler.core.gen.NodeMatchRules
{
  private static final jdk.internal.vm.compiler.collections.EconomicMap<java.lang.Class<? extends org.graalvm.compiler.nodes.calc.BinaryNode>, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp> binaryOpMap;
    descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/calc/BinaryNode;>;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;>;

  private static final jdk.internal.vm.compiler.collections.EconomicMap<java.lang.Class<? extends org.graalvm.compiler.nodes.calc.BinaryNode>, org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode> bitFieldOpMap;
    descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/calc/BinaryNode;>;Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;>;

  private static final jdk.internal.vm.compiler.collections.EconomicMap<java.lang.Class<? extends org.graalvm.compiler.nodes.calc.BinaryNode>, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType> shiftTypeMap;
    descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/calc/BinaryNode;>;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 71
            ldc Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
         3: .line 77
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            bipush 9
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
         4: .line 78
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/AddNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ADD:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 79
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/SubNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SUB:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 80
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/MulNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.MUL:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 81
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/AndNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.AND:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 82
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/OrNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.OR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 83
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/XorNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.XOR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 84
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SHL:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 85
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/RightShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ASHR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 86
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/UnsignedRightShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.LSHR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 88
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            iconst_2
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
        14: .line 89
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/UnsignedRightShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode.UBFX:Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 90
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode.UBFIZ:Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 92
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            iconst_3
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;I)Ljdk/internal/vm/compiler/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
        17: .line 93
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType.LSL:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 94
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/RightShiftNode;
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType.ASR:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 95
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/UnsignedRightShiftNode;
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType.LSR:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 96
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.graalvm.compiler.lir.gen.LIRGeneratorTool);
    descriptor: (Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
         0: .line 99
            aload 0 /* this */
            aload 1 /* gen */
            invokespecial org.graalvm.compiler.core.gen.NodeMatchRules.<init>:(Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;)V
         1: .line 100
            return
        end local 1 // org.graalvm.compiler.lir.gen.LIRGeneratorTool gen
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    2     1   gen  Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    MethodParameters:
      Name  Flags
      gen   

  protected org.graalvm.compiler.lir.LIRFrameState getState(org.graalvm.compiler.nodes.memory.Access);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/Access;)Lorg/graalvm/compiler/lir/LIRFrameState;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.memory.Access access
         0: .line 103
            aload 1 /* access */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 2
         1: .line 104
            aload 0 /* this */
            aload 1 /* access */
            checkcast org.graalvm.compiler.nodes.DeoptimizingNode
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.state:(Lorg/graalvm/compiler/nodes/DeoptimizingNode;)Lorg/graalvm/compiler/lir/LIRFrameState;
            areturn
         2: .line 106
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.nodes.memory.Access access
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    3     1  access  Lorg/graalvm/compiler/nodes/memory/Access;
    MethodParameters:
        Name  Flags
      access  

  protected jdk.vm.ci.aarch64.AArch64Kind getMemoryKind(org.graalvm.compiler.nodes.memory.Access);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/Access;)Ljdk/vm/ci/aarch64/AArch64Kind;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.memory.Access access
         0: .line 110
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 1 /* access */
            invokeinterface org.graalvm.compiler.nodes.memory.Access.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getLIRKind:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual org.graalvm.compiler.core.common.LIRKind.getPlatformKind:()Ljdk/vm/ci/meta/PlatformKind;
            checkcast jdk.vm.ci.aarch64.AArch64Kind
            areturn
        end local 1 // org.graalvm.compiler.nodes.memory.Access access
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     1  access  Lorg/graalvm/compiler/nodes/memory/Access;
    MethodParameters:
        Name  Flags
      access  

  private jdk.vm.ci.meta.AllocatableValue moveSp(jdk.vm.ci.meta.AllocatableValue);
    descriptor: (Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // jdk.vm.ci.meta.AllocatableValue value
         0: .line 114
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
            aload 1 /* value */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64LIRGenerator.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            areturn
        end local 1 // jdk.vm.ci.meta.AllocatableValue value
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     1  value  Ljdk/vm/ci/meta/AllocatableValue;
    MethodParameters:
       Name  Flags
      value  

  private org.graalvm.compiler.core.match.ComplexMatchResult emitBitField(org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode, org.graalvm.compiler.nodes.ValueNode, int, int);
    descriptor: (Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;Lorg/graalvm/compiler/nodes/ValueNode;II)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
        start local 3 // int lsb
        start local 4 // int width
         0: .line 118
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* op */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 119
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            aload 1 /* op */
            iload 3 /* lsb */
            iload 4 /* width */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;II)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$0(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;IILorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // int width
        end local 3 // int lsb
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    3     1     op  Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            0    3     2  value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     3    lsb  I
            0    3     4  width  I
    MethodParameters:
       Name  Flags
      op     
      value  
      lsb    
      width  

  private org.graalvm.compiler.core.match.ComplexMatchResult emitBinaryShift(org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode, boolean);
    descriptor: (Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        start local 4 // boolean isShiftNot
         0: .line 132
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 3 /* shift */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType
            astore 5 /* shiftType */
        start local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType shiftType
         1: .line 133
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 5 /* shiftType */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 134
      StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 3
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 135
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 4
            aload 3 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 136
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 5
            aload 3 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            aload 3 /* shift */
            aload 1 /* op */
            aload 5 /* shiftType */
            iload 4 /* isShiftNot */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$1(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;ZLorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType shiftType
        end local 4 // boolean isShiftNot
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    6     1          op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            0    6     2       value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     3       shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    6     4  isShiftNot  Z
            1    6     5   shiftType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
    MethodParameters:
            Name  Flags
      op          
      value       
      shift       
      isShiftNot  

  private org.graalvm.compiler.core.match.ComplexMatchResult emitBitTestAndBranch(org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.ValueNode, double, int);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/ValueNode;DI)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.FixedNode trueSuccessor
        start local 2 // org.graalvm.compiler.nodes.FixedNode falseSuccessor
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
        start local 4 // double trueProbability
        start local 6 // int nbits
         0: .line 152
            aload 0 /* this */
            aload 1 /* trueSuccessor */
            aload 2 /* falseSuccessor */
            aload 3 /* value */
            dload 4 /* trueProbability */
            iload 6 /* nbits */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/ValueNode;DI)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$2(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/ValueNode;DILorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 6 // int nbits
        end local 4 // double trueProbability
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // org.graalvm.compiler.nodes.FixedNode falseSuccessor
        end local 1 // org.graalvm.compiler.nodes.FixedNode trueSuccessor
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     1    trueSuccessor  Lorg/graalvm/compiler/nodes/FixedNode;
            0    1     2   falseSuccessor  Lorg/graalvm/compiler/nodes/FixedNode;
            0    1     3            value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     4  trueProbability  D
            0    1     6            nbits  I
    MethodParameters:
                 Name  Flags
      trueSuccessor    
      falseSuccessor   
      value            
      trueProbability  
      nbits            

  private static boolean isNarrowingLongToInt(org.graalvm.compiler.nodes.calc.NarrowNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/NarrowNode;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.calc.NarrowNode narrow
         0: .line 163
            aload 0 /* narrow */
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.getInputBits:()I
            bipush 64
            if_icmpne 1
            aload 0 /* narrow */
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.getResultBits:()I
            bipush 32
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.nodes.calc.NarrowNode narrow
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  narrow  Lorg/graalvm/compiler/nodes/calc/NarrowNode;
    MethodParameters:
        Name  Flags
      narrow  

  public org.graalvm.compiler.core.match.ComplexMatchResult unsignedBitField(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.ConstantNode b
        start local 4 // org.graalvm.compiler.nodes.ConstantNode c
         0: .line 169
            aload 2 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* srcKind */
        start local 5 // jdk.vm.ci.meta.JavaKind srcKind
         1: .line 170
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 5 /* srcKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 171
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* shift */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode
            astore 6 /* op */
        start local 6 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
         3: .line 172
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 4
            aload 6 /* op */
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 173
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode
      StackMap stack:
            aload 3 /* b */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 7 /* distance */
        start local 7 // int distance
         5: .line 174
            aload 4 /* c */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 8 /* mask */
        start local 8 // long mask
         6: .line 179
            iload 7 /* distance */
            aload 5 /* srcKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 7
            bipush 31
            goto 8
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ConstantNode org.graalvm.compiler.nodes.ConstantNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode int long
      StackMap stack: int
         7: bipush 63
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ConstantNode org.graalvm.compiler.nodes.ConstantNode jdk.vm.ci.meta.JavaKind org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode int long
      StackMap stack: int int
         8: iand
            istore 7 /* distance */
         9: .line 182
            lload 8 /* mask */
            lconst_1
            ladd
            invokestatic jdk.vm.ci.code.CodeUtil.isPowerOf2:(J)Z
            ifne 11
        10: .line 183
            aconst_null
            areturn
        11: .line 185
      StackMap locals:
      StackMap stack:
            lload 8 /* mask */
            lconst_1
            ladd
            invokestatic jdk.vm.ci.code.CodeUtil.log2:(J)I
            istore 10 /* width */
        start local 10 // int width
        12: .line 186
            aload 5 /* srcKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            istore 11 /* srcBits */
        start local 11 // int srcBits
        13: .line 189
            iload 10 /* width */
            iload 11 /* srcBits */
            iconst_1
            isub
            if_icmplt 15
        14: .line 190
            aconst_null
            areturn
        15: .line 194
      StackMap locals: int int
      StackMap stack:
            iload 10 /* width */
            iload 7 /* distance */
            iadd
            iload 11 /* srcBits */
            if_icmple 17
        16: .line 195
            aconst_null
            areturn
        17: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* op */
            aload 2 /* a */
            iload 7 /* distance */
            iload 10 /* width */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBitField:(Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;Lorg/graalvm/compiler/nodes/ValueNode;II)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 11 // int srcBits
        end local 10 // int width
        end local 8 // long mask
        end local 7 // int distance
        end local 6 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        end local 5 // jdk.vm.ci.meta.JavaKind srcKind
        end local 4 // org.graalvm.compiler.nodes.ConstantNode c
        end local 3 // org.graalvm.compiler.nodes.ConstantNode b
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   18     1     shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0   18     2         a  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     3         b  Lorg/graalvm/compiler/nodes/ConstantNode;
            0   18     4         c  Lorg/graalvm/compiler/nodes/ConstantNode;
            1   18     5   srcKind  Ljdk/vm/ci/meta/JavaKind;
            3   18     6        op  Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            5   18     7  distance  I
            6   18     8      mask  J
           12   18    10     width  I
           13   18    11   srcBits  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(And (UnsignedRightShift=shift a Constant=b) Constant=c)"), org.graalvm.compiler.core.match.MatchRule(value = "(LeftShift=shift (And a Constant=c) Constant=b)")})
    MethodParameters:
       Name  Flags
      shift  
      a      
      b      
      c      

  public org.graalvm.compiler.core.match.ComplexMatchResult addSubShift(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
         0: .line 207
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
            astore 4 /* op */
        start local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
         1: .line 208
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 4 /* op */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 209
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
      StackMap stack:
            aload 0 /* this */
            aload 4 /* op */
            aload 2 /* a */
            aload 3 /* shift */
            iconst_0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBinaryShift:(Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    3     1  binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    3     2       a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     3   shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            1    3     4      op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary a (UnsignedRightShift=shift b Constant))")})
    MethodParameters:
        Name  Flags
      binary  
      a       
      shift   

  public org.graalvm.compiler.core.match.ComplexMatchResult logicShift(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
         0: .line 231
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
            astore 4 /* op */
        start local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
         1: .line 232
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 4 /* op */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 233
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
      StackMap stack:
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* a */
            if_acmpne 3
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         4: astore 5 /* operand */
        start local 5 // org.graalvm.compiler.nodes.ValueNode operand
         5: .line 234
            aload 5 /* operand */
            instanceof org.graalvm.compiler.nodes.calc.NotNode
            istore 6 /* isShiftNot */
        start local 6 // boolean isShiftNot
         6: .line 235
            aload 0 /* this */
            aload 4 /* op */
            aload 2 /* a */
            aload 3 /* shift */
            iload 6 /* isShiftNot */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBinaryShift:(Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Z)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 6 // boolean isShiftNot
        end local 5 // org.graalvm.compiler.nodes.ValueNode operand
        end local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    7     1      binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    7     2           a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     3       shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            1    7     4          op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            5    7     5     operand  Lorg/graalvm/compiler/nodes/ValueNode;
            6    7     6  isShiftNot  Z
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (LeftShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (RightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (UnsignedRightShift=shift b Constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (Not (LeftShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (Not (RightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (Not (UnsignedRightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (Not (LeftShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (Not (RightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (Not (UnsignedRightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (Not (LeftShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (Not (RightShift=shift b Constant)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (Not (UnsignedRightShift=shift b Constant)))")})
    MethodParameters:
        Name  Flags
      binary  
      a       
      shift   

  public org.graalvm.compiler.core.match.ComplexMatchResult signedMultiplyAddSubLong(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.ValueNode b
        start local 4 // org.graalvm.compiler.nodes.ValueNode c
         0: .line 241
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 2 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            aload 3 /* b */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            aload 4 /* c */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Long:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 242
      StackMap locals:
      StackMap stack:
            aload 1 /* binary */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 4
         3: .line 243
            aload 0 /* this */
            aload 2 /* a */
            aload 3 /* b */
            aload 4 /* c */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$3(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
         4: .line 245
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* a */
            aload 3 /* b */
            aload 4 /* c */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$4(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.nodes.ValueNode c
        end local 3 // org.graalvm.compiler.nodes.ValueNode b
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    5     1  binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    5     2       a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     3       b  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     4       c  Lorg/graalvm/compiler/nodes/ValueNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary (Mul (SignExtend a) (SignExtend b)) c)"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary c (Mul (SignExtend a) (SignExtend b)))")})
    MethodParameters:
        Name  Flags
      binary  
      a       
      b       
      c       

  public org.graalvm.compiler.core.match.ComplexMatchResult signedMultiplyNegLong(org.graalvm.compiler.nodes.calc.MulNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/MulNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.MulNode mul
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.ValueNode b
         0: .line 251
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 2 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            aload 3 /* b */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            aload 1 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 4 /* resultKind */
        start local 4 // org.graalvm.compiler.core.common.LIRKind resultKind
         3: .line 253
            aload 0 /* this */
            aload 4 /* resultKind */
            aload 2 /* a */
            aload 3 /* b */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$5(Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.common.LIRKind resultKind
        end local 3 // org.graalvm.compiler.nodes.ValueNode b
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.MulNode mul
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    4     1         mul  Lorg/graalvm/compiler/nodes/calc/MulNode;
            0    4     2           a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3           b  Lorg/graalvm/compiler/nodes/ValueNode;
            3    4     4  resultKind  Lorg/graalvm/compiler/core/common/LIRKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Negate (Mul=mul (SignExtend a) (SignExtend b)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Mul=mul (Negate (SignExtend a)) (SignExtend b))")})
    MethodParameters:
      Name  Flags
      mul   
      a     
      b     

  public org.graalvm.compiler.core.match.ComplexMatchResult signedMultiplyLong(org.graalvm.compiler.nodes.calc.MulNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/MulNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.MulNode mul
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.ValueNode b
         0: .line 259
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 2 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 1
            aload 3 /* b */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 260
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            aload 1 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 4 /* resultKind */
        start local 4 // org.graalvm.compiler.core.common.LIRKind resultKind
         3: .line 261
            aload 0 /* this */
            aload 4 /* resultKind */
            aload 2 /* a */
            aload 3 /* b */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$6(Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.common.LIRKind resultKind
        end local 3 // org.graalvm.compiler.nodes.ValueNode b
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.MulNode mul
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    4     1         mul  Lorg/graalvm/compiler/nodes/calc/MulNode;
            0    4     2           a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3           b  Lorg/graalvm/compiler/nodes/ValueNode;
            3    4     4  resultKind  Lorg/graalvm/compiler/core/common/LIRKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRule(value = "(Mul=mul (SignExtend a) (SignExtend b))")
    MethodParameters:
      Name  Flags
      mul   
      a     
      b     

  public org.graalvm.compiler.core.match.ComplexMatchResult elideL2IForBinary(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.calc.NarrowNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/calc/NarrowNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.calc.NarrowNode narrow
         0: .line 288
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 290
      StackMap locals:
      StackMap stack:
            aload 2 /* narrow */
            astore 3 /* a */
        start local 3 // org.graalvm.compiler.nodes.ValueNode a
         2: .line 291
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* narrow */
            if_acmpne 3
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 4
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
         3: aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         4: astore 4 /* b */
        start local 4 // org.graalvm.compiler.nodes.ValueNode b
         5: .line 292
            aload 3 /* a */
            checkcast org.graalvm.compiler.nodes.calc.NarrowNode
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.isNarrowingLongToInt:(Lorg/graalvm/compiler/nodes/calc/NarrowNode;)Z
            istore 5 /* isL2Ia */
        start local 5 // boolean isL2Ia
         6: .line 293
            aload 4 /* b */
            instanceof org.graalvm.compiler.nodes.calc.NarrowNode
            ifeq 7
            aload 4 /* b */
            checkcast org.graalvm.compiler.nodes.calc.NarrowNode
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.isNarrowingLongToInt:(Lorg/graalvm/compiler/nodes/calc/NarrowNode;)Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 6 /* isL2Ib */
        start local 6 // boolean isL2Ib
         9: .line 294
            iload 5 /* isL2Ia */
            ifne 11
            iload 6 /* isL2Ib */
            ifne 11
        10: .line 295
            aconst_null
            areturn
        11: .line 298
      StackMap locals: int
      StackMap stack:
            iload 5 /* isL2Ia */
            ifeq 12
            aload 3 /* a */
            checkcast org.graalvm.compiler.nodes.calc.NarrowNode
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 3 /* a */
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
        13: astore 7 /* src1 */
        start local 7 // org.graalvm.compiler.nodes.ValueNode src1
        14: .line 299
            iload 6 /* isL2Ib */
            ifeq 15
            aload 4 /* b */
            checkcast org.graalvm.compiler.nodes.calc.NarrowNode
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 16
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
        15: aload 4 /* b */
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
        16: astore 8 /* src2 */
        start local 8 // org.graalvm.compiler.nodes.ValueNode src2
        17: .line 301
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
            astore 9 /* op */
        start local 9 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        18: .line 302
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 19
            aload 9 /* op */
            ifnonnull 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 303
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
      StackMap stack:
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getNodeClass:()Lorg/graalvm/compiler/graph/NodeClass;
            invokevirtual org.graalvm.compiler.graph.NodeClass.isCommutative:()Z
            istore 10 /* commutative */
        start local 10 // boolean commutative
        20: .line 304
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 11 /* resultKind */
        start local 11 // org.graalvm.compiler.core.common.LIRKind resultKind
        21: .line 307
            aload 3 /* a */
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 23
        22: .line 308
            aload 0 /* this */
            aload 11 /* resultKind */
            aload 9 /* op */
            iload 10 /* commutative */
            aload 7 /* src1 */
            aload 8 /* src2 */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$7(Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        23: .line 311
      StackMap locals: int org.graalvm.compiler.core.common.LIRKind
      StackMap stack:
            aload 0 /* this */
            aload 11 /* resultKind */
            aload 9 /* op */
            iload 10 /* commutative */
            aload 8 /* src2 */
            aload 7 /* src1 */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$8(Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 11 // org.graalvm.compiler.core.common.LIRKind resultKind
        end local 10 // boolean commutative
        end local 9 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 8 // org.graalvm.compiler.nodes.ValueNode src2
        end local 7 // org.graalvm.compiler.nodes.ValueNode src1
        end local 6 // boolean isL2Ib
        end local 5 // boolean isL2Ia
        end local 4 // org.graalvm.compiler.nodes.ValueNode b
        end local 3 // org.graalvm.compiler.nodes.ValueNode a
        end local 2 // org.graalvm.compiler.nodes.calc.NarrowNode narrow
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   24     1       binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0   24     2       narrow  Lorg/graalvm/compiler/nodes/calc/NarrowNode;
            2   24     3            a  Lorg/graalvm/compiler/nodes/ValueNode;
            5   24     4            b  Lorg/graalvm/compiler/nodes/ValueNode;
            6   24     5       isL2Ia  Z
            9   24     6       isL2Ib  Z
           14   24     7         src1  Lorg/graalvm/compiler/nodes/ValueNode;
           17   24     8         src2  Lorg/graalvm/compiler/nodes/ValueNode;
           18   24     9           op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
           20   24    10  commutative  Z
           21   24    11   resultKind  Lorg/graalvm/compiler/core/common/LIRKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Mul=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(LeftShift=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(RightShift=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(UnsignedRightShift=binary (Narrow=narrow a) (Narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Mul=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(And=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(LeftShift=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(RightShift=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(UnsignedRightShift=binary a (Narrow=narrow b))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary (Narrow=narrow a) b)"), org.graalvm.compiler.core.match.MatchRule(value = "(LeftShift=binary (Narrow=narrow a) b)"), org.graalvm.compiler.core.match.MatchRule(value = "(RightShift=binary (Narrow=narrow a) b)"), org.graalvm.compiler.core.match.MatchRule(value = "(UnsignedRightShift=binary (Narrow=narrow a) b)")})
    MethodParameters:
        Name  Flags
      binary  
      narrow  

  public org.graalvm.compiler.core.match.ComplexMatchResult elideL2IForUnary(org.graalvm.compiler.nodes.calc.UnaryNode, org.graalvm.compiler.nodes.calc.NarrowNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/UnaryNode;Lorg/graalvm/compiler/nodes/calc/NarrowNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.UnaryNode unary
        start local 2 // org.graalvm.compiler.nodes.calc.NarrowNode narrow
         0: .line 318
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* unary */
            invokevirtual org.graalvm.compiler.nodes.calc.UnaryNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 319
      StackMap locals:
      StackMap stack:
            aload 2 /* narrow */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.isNarrowingLongToInt:(Lorg/graalvm/compiler/nodes/calc/NarrowNode;)Z
            ifne 3
         2: .line 320
            aconst_null
            areturn
         3: .line 323
      StackMap locals:
      StackMap stack:
            aload 1 /* unary */
            instanceof org.graalvm.compiler.nodes.calc.NegateNode
            ifeq 4
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.NEG:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            goto 5
         4: .line 324
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.NOT:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
         5: .line 323
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
            astore 3 /* op */
        start local 3 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
         6: .line 325
            aload 0 /* this */
            aload 2 /* narrow */
            aload 1 /* unary */
            aload 3 /* op */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/calc/NarrowNode;Lorg/graalvm/compiler/nodes/calc/UnaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$9(Lorg/graalvm/compiler/nodes/calc/NarrowNode;Lorg/graalvm/compiler/nodes/calc/UnaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 3 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 2 // org.graalvm.compiler.nodes.calc.NarrowNode narrow
        end local 1 // org.graalvm.compiler.nodes.calc.UnaryNode unary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    7     1   unary  Lorg/graalvm/compiler/nodes/calc/UnaryNode;
            0    7     2  narrow  Lorg/graalvm/compiler/nodes/calc/NarrowNode;
            6    7     3      op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Negate=unary (Narrow=narrow value))"), org.graalvm.compiler.core.match.MatchRule(value = "(Not=unary (Narrow=narrow value))")})
    MethodParameters:
        Name  Flags
      unary   
      narrow  

  public org.graalvm.compiler.core.match.ComplexMatchResult multiplyNegate(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.ValueNode a
        start local 2 // org.graalvm.compiler.nodes.ValueNode b
         0: .line 337
            aload 1 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 2
            aload 2 /* b */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 2
         1: .line 338
            aload 0 /* this */
            aload 1 /* a */
            aload 2 /* b */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$10(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
         2: .line 340
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode b
        end local 1 // org.graalvm.compiler.nodes.ValueNode a
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    3     1     a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     2     b  Lorg/graalvm/compiler/nodes/ValueNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Mul (Negate a) b)"), org.graalvm.compiler.core.match.MatchRule(value = "(Negate (Mul a b))")})
    MethodParameters:
      Name  Flags
      a     
      b     

  public org.graalvm.compiler.core.match.ComplexMatchResult multiplyAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 2 // org.graalvm.compiler.nodes.ValueNode a
        start local 3 // org.graalvm.compiler.nodes.ValueNode b
        start local 4 // org.graalvm.compiler.nodes.ValueNode c
         0: .line 346
            aload 2 /* a */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kindA */
        start local 5 // jdk.vm.ci.meta.JavaKind kindA
         1: .line 347
            aload 3 /* b */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 6 /* kindB */
        start local 6 // jdk.vm.ci.meta.JavaKind kindB
         2: .line 348
            aload 4 /* c */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 7 /* kindC */
        start local 7 // jdk.vm.ci.meta.JavaKind kindC
         3: .line 349
            aload 5 /* kindA */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 4
            aload 6 /* kindB */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 4
            aload 7 /* kindC */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 5
         4: .line 350
      StackMap locals: jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aconst_null
            areturn
         5: .line 353
      StackMap locals:
      StackMap stack:
            aload 1 /* binary */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 7
         6: .line 354
            aload 0 /* this */
            aload 2 /* a */
            aload 3 /* b */
            aload 4 /* c */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$11(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
         7: .line 356
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* a */
            aload 3 /* b */
            aload 4 /* c */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
              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:
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
                  org/graalvm/compiler/core/aarch64/AArch64NodeMatchRules.lambda$12(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 7 // jdk.vm.ci.meta.JavaKind kindC
        end local 6 // jdk.vm.ci.meta.JavaKind kindB
        end local 5 // jdk.vm.ci.meta.JavaKind kindA
        end local 4 // org.graalvm.compiler.nodes.ValueNode c
        end local 3 // org.graalvm.compiler.nodes.ValueNode b
        end local 2 // org.graalvm.compiler.nodes.ValueNode a
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    8     1  binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    8     2       a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     3       b  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     4       c  Lorg/graalvm/compiler/nodes/ValueNode;
            1    8     5   kindA  Ljdk/vm/ci/meta/JavaKind;
            2    8     6   kindB  Ljdk/vm/ci/meta/JavaKind;
            3    8     7   kindC  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=binary (Mul a b) c)"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=binary c (Mul a b))")})
    MethodParameters:
        Name  Flags
      binary  
      a       
      b       
      c       

  public org.graalvm.compiler.core.match.ComplexMatchResult testBitAndBranch(org.graalvm.compiler.nodes.IfNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.IfNode root
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
        start local 3 // org.graalvm.compiler.nodes.ConstantNode a
         0: .line 364
            aload 2 /* value */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifeq 6
         1: .line 365
            aload 3 /* a */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 4 /* constant */
        start local 4 // long constant
         2: .line 366
            lload 4 /* constant */
            invokestatic java.lang.Long.bitCount:(J)I
            iconst_1
            if_icmpne 6
         3: .line 367
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            aload 1 /* root */
            invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            aload 2 /* value */
         4: .line 368
            aload 1 /* root */
            invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
            lload 4 /* constant */
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
         5: .line 367
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBitTestAndBranch:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/ValueNode;DI)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 4 // long constant
         6: .line 371
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.graalvm.compiler.nodes.ConstantNode a
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // org.graalvm.compiler.nodes.IfNode root
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    7     1      root  Lorg/graalvm/compiler/nodes/IfNode;
            0    7     2     value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     3         a  Lorg/graalvm/compiler/nodes/ConstantNode;
            2    6     4  constant  J
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRule(value = "(If (IntegerTest value Constant=a))")
    MethodParameters:
       Name  Flags
      root   
      value  
      a      

  public org.graalvm.compiler.core.match.ComplexMatchResult checkNegativeAndBranch(org.graalvm.compiler.nodes.IfNode, org.graalvm.compiler.nodes.calc.IntegerLessThanNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Lorg/graalvm/compiler/nodes/IfNode;Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.IfNode root
        start local 2 // org.graalvm.compiler.nodes.calc.IntegerLessThanNode lessNode
        start local 3 // org.graalvm.compiler.nodes.ValueNode x
        start local 4 // org.graalvm.compiler.nodes.ConstantNode y
         0: .line 379
            aload 3 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* xKind */
        start local 5 // jdk.vm.ci.meta.JavaKind xKind
         1: .line 380
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 5 /* xKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 381
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 4 /* y */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.isJavaConstant:()Z
            ifeq 6
            lconst_0
            aload 4 /* y */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lcmp
            ifne 6
            aload 2 /* lessNode */
            invokevirtual org.graalvm.compiler.nodes.calc.IntegerLessThanNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
            getstatic org.graalvm.compiler.core.common.calc.CanonicalCondition.LT:Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
            invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.equals:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 382
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            aload 1 /* root */
            invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            aload 3 /* x */
         4: .line 383
            dconst_1
            aload 1 /* root */
            invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
            dsub
            aload 5 /* xKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            iconst_1
            isub
         5: .line 382
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBitTestAndBranch:(Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/ValueNode;DI)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
         6: .line 385
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // jdk.vm.ci.meta.JavaKind xKind
        end local 4 // org.graalvm.compiler.nodes.ConstantNode y
        end local 3 // org.graalvm.compiler.nodes.ValueNode x
        end local 2 // org.graalvm.compiler.nodes.calc.IntegerLessThanNode lessNode
        end local 1 // org.graalvm.compiler.nodes.IfNode root
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    7     1      root  Lorg/graalvm/compiler/nodes/IfNode;
            0    7     2  lessNode  Lorg/graalvm/compiler/nodes/calc/IntegerLessThanNode;
            0    7     3         x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     4         y  Lorg/graalvm/compiler/nodes/ConstantNode;
            1    7     5     xKind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRule(value = "(If (IntegerLessThan=lessNode x Constant=y))")
    MethodParameters:
          Name  Flags
      root      
      lessNode  
      x         
      y         

  public org.graalvm.compiler.core.aarch64.AArch64LIRGenerator getLIRGeneratorTool();
    descriptor: ()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
         0: .line 390
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            checkcast org.graalvm.compiler.core.aarch64.AArch64LIRGenerator
            areturn
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;

  protected org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator getArithmeticLIRGenerator();
    descriptor: ()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
         0: .line 394
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64LIRGenerator.getArithmetic:()Lorg/graalvm/compiler/lir/gen/ArithmeticLIRGeneratorTool;
            checkcast org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator
            areturn
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;

  public org.graalvm.compiler.lir.gen.LIRGeneratorTool getLIRGeneratorTool();
    descriptor: ()Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRGeneratorTool:()Lorg/graalvm/compiler/core/aarch64/AArch64LIRGenerator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private jdk.vm.ci.meta.Value lambda$0(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode, int, int, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;IILorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=8, locals=9, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 5 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 122
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 6 /* a */
        start local 6 // jdk.vm.ci.meta.Value a
         1: .line 123
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            iconst_1
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 6 /* a */
            aastore
            invokestatic org.graalvm.compiler.core.common.LIRKind.combine:([Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 7 /* result */
        start local 7 // org.graalvm.compiler.lir.Variable result
         2: .line 124
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 6 /* a */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.asAllocatable:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 8 /* src */
        start local 8 // jdk.vm.ci.meta.AllocatableValue src
         3: .line 125
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            new org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp
            dup
            aload 2
            aload 7 /* result */
            aload 8 /* src */
            iload 3
            iload 4
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp.<init>:(Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;II)V
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         4: .line 126
            aload 7 /* result */
            areturn
        end local 8 // jdk.vm.ci.meta.AllocatableValue src
        end local 7 // org.graalvm.compiler.lir.Variable result
        end local 6 // jdk.vm.ci.meta.Value a
        end local 5 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    5     5  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    5     6        a  Ljdk/vm/ci/meta/Value;
            2    5     7   result  Lorg/graalvm/compiler/lir/Variable;
            3    5     8      src  Ljdk/vm/ci/meta/AllocatableValue;

  private jdk.vm.ci.meta.Value lambda$1(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType, boolean, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;ZLorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=10, locals=13, args_size=7
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 139
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 7 /* a */
        start local 7 // jdk.vm.ci.meta.Value a
         1: .line 140
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 8 /* b */
        start local 8 // jdk.vm.ci.meta.Value b
         2: .line 141
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            iconst_2
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 7 /* a */
            aastore
            dup
            iconst_1
            aload 8 /* b */
            aastore
            invokestatic org.graalvm.compiler.core.common.LIRKind.combine:([Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 9 /* result */
        start local 9 // org.graalvm.compiler.lir.Variable result
         3: .line 142
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 7 /* a */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.asAllocatable:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 10 /* x */
        start local 10 // jdk.vm.ci.meta.AllocatableValue x
         4: .line 143
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 8 /* b */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.asAllocatable:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 11 /* y */
        start local 11 // jdk.vm.ci.meta.AllocatableValue y
         5: .line 144
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 12 /* shiftAmount */
        start local 12 // int shiftAmount
         6: .line 145
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            new org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$BinaryShiftOp
            dup
            aload 3
            aload 9 /* result */
            aload 10 /* x */
            aload 11 /* y */
            aload 4
            iload 12 /* shiftAmount */
            iload 5
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$BinaryShiftOp.<init>:(Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;IZ)V
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         7: .line 146
            aload 9 /* result */
            areturn
        end local 12 // int shiftAmount
        end local 11 // jdk.vm.ci.meta.AllocatableValue y
        end local 10 // jdk.vm.ci.meta.AllocatableValue x
        end local 9 // org.graalvm.compiler.lir.Variable result
        end local 8 // jdk.vm.ci.meta.Value b
        end local 7 // jdk.vm.ci.meta.Value a
        end local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    8     6      builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    8     7            a  Ljdk/vm/ci/meta/Value;
            2    8     8            b  Ljdk/vm/ci/meta/Value;
            3    8     9       result  Lorg/graalvm/compiler/lir/Variable;
            4    8    10            x  Ljdk/vm/ci/meta/AllocatableValue;
            5    8    11            y  Ljdk/vm/ci/meta/AllocatableValue;
            6    8    12  shiftAmount  I

  private jdk.vm.ci.meta.Value lambda$2(org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.FixedNode, org.graalvm.compiler.nodes.ValueNode, double, int, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/FixedNode;Lorg/graalvm/compiler/nodes/ValueNode;DILorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=11, args_size=7
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 7 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 153
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRBlock:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/lir/LabelRef;
            astore 8 /* trueDestination */
        start local 8 // org.graalvm.compiler.lir.LabelRef trueDestination
         1: .line 154
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getLIRBlock:(Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/lir/LabelRef;
            astore 9 /* falseDestination */
        start local 9 // org.graalvm.compiler.lir.LabelRef falseDestination
         2: .line 155
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.asAllocatable:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 10 /* src */
        start local 10 // jdk.vm.ci.meta.AllocatableValue src
         3: .line 156
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            new org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$BitTestAndBranchOp
            dup
            aload 8 /* trueDestination */
            aload 9 /* falseDestination */
            aload 10 /* src */
         4: .line 157
            dload 4
            iload 6
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$BitTestAndBranchOp.<init>:(Lorg/graalvm/compiler/lir/LabelRef;Lorg/graalvm/compiler/lir/LabelRef;Ljdk/vm/ci/meta/AllocatableValue;DI)V
         5: .line 156
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         6: .line 158
            aconst_null
            areturn
        end local 10 // jdk.vm.ci.meta.AllocatableValue src
        end local 9 // org.graalvm.compiler.lir.LabelRef falseDestination
        end local 8 // org.graalvm.compiler.lir.LabelRef trueDestination
        end local 7 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    7     7           builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    7     8   trueDestination  Lorg/graalvm/compiler/lir/LabelRef;
            2    7     9  falseDestination  Lorg/graalvm/compiler/lir/LabelRef;
            3    7    10               src  Ljdk/vm/ci/meta/AllocatableValue;

  private jdk.vm.ci.meta.Value lambda$3(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 243
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitIntegerMAdd:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Z)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$4(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 245
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            iconst_1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitIntegerMSub:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Z)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$5(org.graalvm.compiler.core.common.LIRKind, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 253
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 254
            aload 1
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SMNEGL:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            iconst_1
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
         2: .line 253
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitBinary:(Ljdk/vm/ci/meta/ValueKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLjdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
         3: .line 254
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    4     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$6(org.graalvm.compiler.core.common.LIRKind, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 261
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 262
            aload 1
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SMULL:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            iconst_1
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
         2: .line 261
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitBinary:(Ljdk/vm/ci/meta/ValueKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLjdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
         3: .line 262
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    4     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$7(org.graalvm.compiler.core.common.LIRKind, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, boolean, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 308
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 309
            aload 1
            aload 2
            iload 3
            aload 0 /* this */
            aload 4
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 5
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
         2: .line 308
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitBinary:(Ljdk/vm/ci/meta/ValueKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLjdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
         3: .line 309
            areturn
        end local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    4     6  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$8(org.graalvm.compiler.core.common.LIRKind, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, boolean, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/core/common/LIRKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 311
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 312
            aload 1
            aload 2
            iload 3
            aload 0 /* this */
            aload 4
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 5
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
         2: .line 311
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitBinary:(Ljdk/vm/ci/meta/ValueKind;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;ZLjdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
         3: .line 312
            areturn
        end local 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    4     6  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$9(org.graalvm.compiler.nodes.calc.NarrowNode, org.graalvm.compiler.nodes.calc.UnaryNode, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/NarrowNode;Lorg/graalvm/compiler/nodes/calc/UnaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 326
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.nodes.calc.NarrowNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.asAllocatable:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 5 /* input */
        start local 5 // jdk.vm.ci.meta.AllocatableValue input
         1: .line 327
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.UnaryNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.fromJavaKind:(Ljdk/vm/ci/code/Architecture;Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 6 /* resultKind */
        start local 6 // org.graalvm.compiler.core.common.LIRKind resultKind
         2: .line 328
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 6 /* resultKind */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 7 /* result */
        start local 7 // org.graalvm.compiler.lir.Variable result
         3: .line 329
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            new org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$UnaryOp
            dup
            aload 3
            aload 7 /* result */
            aload 0 /* this */
            aload 5 /* input */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$UnaryOp.<init>:(Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)V
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         4: .line 330
            aload 7 /* result */
            areturn
        end local 7 // org.graalvm.compiler.lir.Variable result
        end local 6 // org.graalvm.compiler.core.common.LIRKind resultKind
        end local 5 // jdk.vm.ci.meta.AllocatableValue input
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    5     4     builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    5     5       input  Ljdk/vm/ci/meta/AllocatableValue;
            2    5     6  resultKind  Lorg/graalvm/compiler/core/common/LIRKind;
            3    5     7      result  Lorg/graalvm/compiler/lir/Variable;

  private jdk.vm.ci.meta.Value lambda$10(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 3 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 338
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitMNeg:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 3 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     3  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$11(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 354
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            iconst_0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitIntegerMAdd:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Z)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$12(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 356
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aload 0 /* this */
            aload 3
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            iconst_0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitIntegerMSub:(Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Z)Ljdk/vm/ci/meta/Value;
            areturn
        end local 4 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    1     4  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
}
SourceFile: "AArch64NodeMatchRules.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final ShiftType = org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType of org.graalvm.compiler.asm.aarch64.AArch64Assembler
  public BinaryShiftOp = org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$BinaryShiftOp of org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
  public UnaryOp = org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$UnaryOp of org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
  public final BitFieldOpCode = org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode of org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp
  public BitTestAndBranchOp = org.graalvm.compiler.lir.aarch64.AArch64ControlFlow$BitTestAndBranchOp of org.graalvm.compiler.lir.aarch64.AArch64ControlFlow