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 org.graalvm.collections.EconomicMap<java.lang.Class<? extends org.graalvm.compiler.nodes.calc.BinaryNode>, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp> binaryOpMap;
    descriptor: Lorg/graalvm/collections/EconomicMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/collections/EconomicMap<Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/calc/BinaryNode;>;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;>;

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

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

  private static final org.graalvm.collections.EconomicMap<java.lang.Class<? extends org.graalvm.compiler.nodes.calc.BinaryNode>, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp> logicalNotOpMap;
    descriptor: Lorg/graalvm/collections/EconomicMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/collections/EconomicMap<Ljava/lang/Class<+Lorg/graalvm/compiler/nodes/calc/BinaryNode;>;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;>;

  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 82
            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 89
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            bipush 9
            invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;I)Lorg/graalvm/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
         4: .line 90
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/AddNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ADD:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 91
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/SubNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SUB:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 92
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/MulNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.MUL:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 93
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/AndNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.AND:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 94
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/OrNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.OR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 95
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/XorNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.XOR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 96
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SHL:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 97
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/RightShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ASHR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 98
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/UnsignedRightShiftNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.LSHR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 100
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            iconst_2
            invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;I)Lorg/graalvm/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Lorg/graalvm/collections/EconomicMap;
        14: .line 101
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Lorg/graalvm/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 org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 102
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Lorg/graalvm/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 org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 104
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            iconst_3
            invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;I)Lorg/graalvm/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.logicalNotOpMap:Lorg/graalvm/collections/EconomicMap;
        17: .line 105
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.logicalNotOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/AndNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.BIC:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 106
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.logicalNotOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/OrNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ORN:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 107
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.logicalNotOpMap:Lorg/graalvm/collections/EconomicMap;
            ldc Lorg/graalvm/compiler/nodes/calc/XorNode;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.EON:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            invokeinterface org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 109
            getstatic org.graalvm.collections.Equivalence.IDENTITY:Lorg/graalvm/collections/Equivalence;
            iconst_3
            invokestatic org.graalvm.collections.EconomicMap.create:(Lorg/graalvm/collections/Equivalence;I)Lorg/graalvm/collections/EconomicMap;
            putstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Lorg/graalvm/collections/EconomicMap;
        21: .line 110
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Lorg/graalvm/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 org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 111
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Lorg/graalvm/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 org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 112
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Lorg/graalvm/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 org.graalvm.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 113
            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 116
            aload 0 /* this */
            aload 1 /* gen */
            invokespecial org.graalvm.compiler.core.gen.NodeMatchRules.<init>:(Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;)V
         1: .line 117
            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.MemoryAccess);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryAccess;)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.MemoryAccess access
         0: .line 120
            aload 1 /* access */
            instanceof org.graalvm.compiler.nodes.DeoptimizingNode
            ifeq 2
         1: .line 121
            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 123
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.nodes.memory.MemoryAccess 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/MemoryAccess;
    MethodParameters:
        Name  Flags
      access  

  protected jdk.vm.ci.aarch64.AArch64Kind getMemoryKind(org.graalvm.compiler.nodes.memory.MemoryAccess);
    descriptor: (Lorg/graalvm/compiler/nodes/memory/MemoryAccess;)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.MemoryAccess access
         0: .line 127
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 1 /* access */
            checkcast org.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.MemoryAccess 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/MemoryAccess;
    MethodParameters:
        Name  Flags
      access  

  private static org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType getZeroExtendType(int);
    descriptor: (I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int fromBits
         0: .line 131
            iload 0 /* fromBits */
            lookupswitch { // 4
                    8: 1
                   16: 2
                   32: 3
                   64: 4
              default: 5
          }
         1: .line 133
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.UXTB:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         2: .line 135
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.UXTH:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         3: .line 137
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.UXTW:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         4: .line 139
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.UXTX:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         5: .line 141
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "extended from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* fromBits */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "bits is not supported!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         6: .line 142
            aconst_null
            areturn
        end local 0 // int fromBits
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  fromBits  I
    MethodParameters:
          Name  Flags
      fromBits  

  private static org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType getSignExtendType(int);
    descriptor: (I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int fromBits
         0: .line 147
            iload 0 /* fromBits */
            lookupswitch { // 4
                    8: 1
                   16: 2
                   32: 3
                   64: 4
              default: 5
          }
         1: .line 149
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.SXTB:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         2: .line 151
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.SXTH:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         3: .line 153
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.SXTW:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         4: .line 155
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType.SXTX:Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            areturn
         5: .line 157
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "extended from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* fromBits */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "bits is not supported!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
         6: .line 158
            aconst_null
            areturn
        end local 0 // int fromBits
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  fromBits  I
    MethodParameters:
          Name  Flags
      fromBits  

  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 163
            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 emitBinaryShift(org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.BinaryNode);
    descriptor: (Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        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
         0: .line 167
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.shiftTypeMap:Lorg/graalvm/collections/EconomicMap;
            aload 3 /* shift */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType
            astore 4 /* shiftType */
        start local 4 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType shiftType
         1: .line 168
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 4 /* shiftType */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 169
      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 170
      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 171
      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 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* value */
            aload 3 /* shift */
            aload 1 /* op */
            aload 4 /* shiftType */
            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;)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/nodes/calc/BinaryNode;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;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.asm.aarch64.AArch64Assembler$ShiftType shiftType
        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;
            1    6     4  shiftType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ShiftType;
    MethodParameters:
       Name  Flags
      op     
      value  
      shift  

  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 187
            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$1(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 org.graalvm.compiler.core.match.ComplexMatchResult emitBitField(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode, org.graalvm.compiler.nodes.ValueNode, int, int);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;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=6, locals=6, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
        start local 4 // int lsb
        start local 5 // int width
         0: .line 198
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 2 /* op */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 199
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 3 /* 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 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* value */
            aload 1 /* kind */
            aload 2 /* op */
            iload 4 /* lsb */
            iload 5 /* width */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;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$2(Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;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 5 // int width
        end local 4 // int lsb
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        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   kind  Ljdk/vm/ci/meta/JavaKind;
            0    3     2     op  Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            0    3     3  value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     4    lsb  I
            0    3     5  width  I
    MethodParameters:
       Name  Flags
      kind   
      op     
      value  
      lsb    
      width  

  private org.graalvm.compiler.core.match.ComplexMatchResult emitUnsignedBitField(jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Ljdk/vm/ci/meta/JavaKind;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: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=14, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // jdk.vm.ci.meta.JavaKind kind
        start local 2 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
        start local 4 // org.graalvm.compiler.nodes.ConstantNode scale
        start local 5 // org.graalvm.compiler.nodes.ConstantNode mask
         0: .line 212
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 213
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.bitFieldOpMap:Lorg/graalvm/collections/EconomicMap;
            aload 2 /* shift */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.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
         2: .line 214
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 3
            aload 6 /* op */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 215
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode
      StackMap stack:
            aload 2 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 7 /* srcKind */
        start local 7 // jdk.vm.ci.meta.JavaKind srcKind
         4: .line 219
            aload 4 /* scale */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 8 /* distance */
        start local 8 // int distance
         5: .line 220
            iload 8 /* distance */
            aload 7 /* srcKind */
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 6
            bipush 31
            goto 7
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ConstantNode org.graalvm.compiler.nodes.ConstantNode org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode jdk.vm.ci.meta.JavaKind int
      StackMap stack: int
         6: bipush 63
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules jdk.vm.ci.meta.JavaKind org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ConstantNode org.graalvm.compiler.nodes.ConstantNode org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode jdk.vm.ci.meta.JavaKind int
      StackMap stack: int int
         7: iand
            istore 9 /* lsb */
        start local 9 // int lsb
         8: .line 222
            aload 5 /* mask */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 10 /* maskValue */
        start local 10 // long maskValue
         9: .line 224
            lload 10 /* maskValue */
            lconst_1
            ladd
            invokestatic jdk.vm.ci.code.CodeUtil.isPowerOf2:(J)Z
            ifne 11
        10: .line 225
            aconst_null
            areturn
        11: .line 227
      StackMap locals: int long
      StackMap stack:
            lload 10 /* maskValue */
            lconst_1
            ladd
            invokestatic jdk.vm.ci.code.CodeUtil.log2:(J)I
            istore 12 /* width */
        start local 12 // int width
        12: .line 228
            aload 7 /* srcKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            istore 13 /* srcBits */
        start local 13 // int srcBits
        13: .line 231
            iload 12 /* width */
            iload 13 /* srcBits */
            iconst_1
            isub
            if_icmplt 15
        14: .line 232
            aconst_null
            areturn
        15: .line 236
      StackMap locals: int int
      StackMap stack:
            iload 12 /* width */
            iload 8 /* distance */
            iadd
            iload 13 /* srcBits */
            if_icmple 17
        16: .line 237
            aconst_null
            areturn
        17: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* kind */
            aload 6 /* op */
            aload 3 /* value */
            iload 9 /* lsb */
            iload 12 /* width */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBitField:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;Lorg/graalvm/compiler/nodes/ValueNode;II)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 13 // int srcBits
        end local 12 // int width
        end local 10 // long maskValue
        end local 9 // int lsb
        end local 8 // int distance
        end local 7 // jdk.vm.ci.meta.JavaKind srcKind
        end local 6 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        end local 5 // org.graalvm.compiler.nodes.ConstantNode mask
        end local 4 // org.graalvm.compiler.nodes.ConstantNode scale
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 1 // jdk.vm.ci.meta.JavaKind kind
        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       kind  Ljdk/vm/ci/meta/JavaKind;
            0   18     2      shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0   18     3      value  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     4      scale  Lorg/graalvm/compiler/nodes/ConstantNode;
            0   18     5       mask  Lorg/graalvm/compiler/nodes/ConstantNode;
            2   18     6         op  Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            4   18     7    srcKind  Ljdk/vm/ci/meta/JavaKind;
            5   18     8   distance  I
            8   18     9        lsb  I
            9   18    10  maskValue  J
           12   18    12      width  I
           13   18    13    srcBits  I
    MethodParameters:
       Name  Flags
      kind   
      shift  
      value  
      scale  
      mask   

  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 243
            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  

  private org.graalvm.compiler.core.match.ComplexMatchResult emitExtendedAddSubShift(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType, int);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode x
        start local 3 // org.graalvm.compiler.nodes.ValueNode y
        start local 4 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
        start local 5 // int shiftAmt
         0: .line 247
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifne 1
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* x */
            aload 3 /* y */
            aload 1 /* op */
            aload 4 /* extType */
            iload 5 /* shiftAmt */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)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/calc/BinaryNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;ILorg/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 // int shiftAmt
        end local 4 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
        end local 3 // org.graalvm.compiler.nodes.ValueNode y
        end local 2 // org.graalvm.compiler.nodes.ValueNode x
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        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        op  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    2     2         x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     3         y  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4   extType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            0    2     5  shiftAmt  I
    MethodParameters:
          Name  Flags
      op        
      x         
      y         
      extType   
      shiftAmt  

  public org.graalvm.compiler.core.match.ComplexMatchResult mergeSignExtendByShiftIntoAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.calc.UnaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/calc/UnaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        start local 2 // org.graalvm.compiler.nodes.calc.UnaryNode ext
        start local 3 // org.graalvm.compiler.nodes.ValueNode x
        start local 4 // org.graalvm.compiler.nodes.ValueNode y
        start local 5 // org.graalvm.compiler.nodes.ConstantNode lshift
         0: .line 263
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 5 /* lshift */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.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 264
      StackMap locals:
      StackMap stack:
            aload 5 /* lshift */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 6 /* shiftAmt */
        start local 6 // int shiftAmt
         2: .line 265
            iload 6 /* shiftAmt */
            iconst_4
            if_icmpgt 3
            iload 6 /* shiftAmt */
            ifge 4
         3: .line 266
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
         4: .line 269
      StackMap locals:
      StackMap stack:
            aload 2 /* ext */
            instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
            ifeq 7
         5: .line 270
            aload 2 /* ext */
            checkcast org.graalvm.compiler.nodes.calc.SignExtendNode
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.getInputBits:()I
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getSignExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            astore 7 /* extType */
        start local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         6: .line 271
            goto 8
        end local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         7: .line 272
      StackMap locals:
      StackMap stack:
            aload 2 /* ext */
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getInputBits:()I
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getZeroExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            astore 7 /* extType */
        start local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         8: .line 274
      StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType
      StackMap stack:
            aload 0 /* this */
            aload 1 /* op */
            aload 3 /* x */
            aload 4 /* y */
            aload 7 /* extType */
            iload 6 /* shiftAmt */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitExtendedAddSubShift:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
        end local 6 // int shiftAmt
        end local 5 // org.graalvm.compiler.nodes.ConstantNode lshift
        end local 4 // org.graalvm.compiler.nodes.ValueNode y
        end local 3 // org.graalvm.compiler.nodes.ValueNode x
        end local 2 // org.graalvm.compiler.nodes.calc.UnaryNode ext
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    9     1        op  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    9     2       ext  Lorg/graalvm/compiler/nodes/calc/UnaryNode;
            0    9     3         x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    9     4         y  Lorg/graalvm/compiler/nodes/ValueNode;
            0    9     5    lshift  Lorg/graalvm/compiler/nodes/ConstantNode;
            2    9     6  shiftAmt  I
            6    7     7   extType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            8    9     7   extType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (LeftShift (SignExtend=ext y) Constant=lshift))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (LeftShift (SignExtend=ext y) Constant=lshift))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (LeftShift (ZeroExtend=ext y) Constant=lshift))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (LeftShift (ZeroExtend=ext y) Constant=lshift))")})
    MethodParameters:
        Name  Flags
      op      
      ext     
      x       
      y       
      lshift  

  public org.graalvm.compiler.core.match.ComplexMatchResult mergeShiftDowncastIntoAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, 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/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode x
        start local 3 // org.graalvm.compiler.nodes.ValueNode y
        start local 4 // org.graalvm.compiler.nodes.ConstantNode constant
        start local 5 // org.graalvm.compiler.nodes.ConstantNode lshift
         0: .line 280
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 5 /* lshift */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.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 281
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 4 /* constant */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.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 282
      StackMap locals:
      StackMap stack:
            aload 5 /* lshift */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 6 /* shiftAmt */
        start local 6 // int shiftAmt
         3: .line 283
            aload 4 /* constant */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 7 /* mask */
        start local 7 // long mask
         4: .line 284
            iload 6 /* shiftAmt */
            iconst_4
            if_icmpgt 5
            iload 6 /* shiftAmt */
            ifge 6
         5: .line 285
      StackMap locals: int long
      StackMap stack:
            aconst_null
            areturn
         6: .line 287
      StackMap locals:
      StackMap stack:
            lload 7 /* mask */
            ldc 255
            lcmp
            ifeq 8
            lload 7 /* mask */
            ldc 65535
            lcmp
            ifeq 8
            lload 7 /* mask */
            ldc 4294967295
            lcmp
            ifeq 8
         7: .line 288
            aconst_null
            areturn
         8: .line 290
      StackMap locals:
      StackMap stack:
            lload 7 /* mask */
            invokestatic java.lang.Long.toBinaryString:(J)Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getZeroExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            astore 9 /* extType */
        start local 9 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         9: .line 291
            aload 0 /* this */
            aload 1 /* op */
            aload 2 /* x */
            aload 3 /* y */
            aload 9 /* extType */
            iload 6 /* shiftAmt */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitExtendedAddSubShift:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 9 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
        end local 7 // long mask
        end local 6 // int shiftAmt
        end local 5 // org.graalvm.compiler.nodes.ConstantNode lshift
        end local 4 // org.graalvm.compiler.nodes.ConstantNode constant
        end local 3 // org.graalvm.compiler.nodes.ValueNode y
        end local 2 // org.graalvm.compiler.nodes.ValueNode x
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   10     1        op  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0   10     2         x  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     3         y  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     4  constant  Lorg/graalvm/compiler/nodes/ConstantNode;
            0   10     5    lshift  Lorg/graalvm/compiler/nodes/ConstantNode;
            3   10     6  shiftAmt  I
            4   10     7      mask  J
            9   10     9   extType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (LeftShift (And y Constant=constant) Constant=lshift))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (LeftShift (And y Constant=constant) Constant=lshift))")})
    MethodParameters:
          Name  Flags
      op        
      x         
      y         
      constant  
      lshift    

  public org.graalvm.compiler.core.match.ComplexMatchResult mergePairShiftIntoAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode x
        start local 3 // org.graalvm.compiler.nodes.ValueNode y
        start local 4 // org.graalvm.compiler.nodes.ConstantNode shiftConst
         0: .line 297
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 4 /* shiftConst */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.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 298
      StackMap locals:
      StackMap stack:
            aload 4 /* shiftConst */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 5 /* shift */
        start local 5 // int shift
         2: .line 299
            iload 5 /* shift */
            bipush 16
            if_icmpeq 4
            iload 5 /* shift */
            bipush 24
            if_icmpeq 4
            iload 5 /* shift */
            bipush 32
            if_icmpeq 4
            iload 5 /* shift */
            bipush 48
            if_icmpeq 4
            iload 5 /* shift */
            bipush 56
            if_icmpeq 4
         3: .line 300
            aconst_null
            areturn
         4: .line 302
      StackMap locals: int
      StackMap stack:
            iload 5 /* shift */
            bipush 32
            if_icmplt 5
            bipush 64
            iload 5 /* shift */
            isub
            goto 6
      StackMap locals:
      StackMap stack:
         5: bipush 32
            iload 5 /* shift */
            isub
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* extractBits */
        start local 6 // int extractBits
         7: .line 303
            aload 0 /* this */
            aload 1 /* op */
            aload 2 /* x */
            aload 3 /* y */
            iload 6 /* extractBits */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getSignExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            iconst_0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitExtendedAddSubShift:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 6 // int extractBits
        end local 5 // int shift
        end local 4 // org.graalvm.compiler.nodes.ConstantNode shiftConst
        end local 3 // org.graalvm.compiler.nodes.ValueNode y
        end local 2 // org.graalvm.compiler.nodes.ValueNode x
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        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           op  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    8     2            x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     3            y  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     4   shiftConst  Lorg/graalvm/compiler/nodes/ConstantNode;
            2    8     5        shift  I
            7    8     6  extractBits  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (RightShift (LeftShift y Constant=shiftConst) Constant=shiftConst))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (RightShift (LeftShift y Constant=shiftConst) Constant=shiftConst))")})
    MethodParameters:
            Name  Flags
      op          
      x           
      y           
      shiftConst  

  public org.graalvm.compiler.core.match.ComplexMatchResult mergeShiftedPairShiftIntoAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, 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/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode x
        start local 3 // org.graalvm.compiler.nodes.ValueNode y
        start local 4 // org.graalvm.compiler.nodes.ConstantNode shiftConst
        start local 5 // org.graalvm.compiler.nodes.ConstantNode lshift
         0: .line 309
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 4 /* shiftConst */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.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 310
      StackMap locals:
      StackMap stack:
            aload 4 /* shiftConst */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 6 /* shift */
        start local 6 // int shift
         2: .line 311
            aload 5 /* lshift */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 7 /* shiftAmt */
        start local 7 // int shiftAmt
         3: .line 312
            iload 7 /* shiftAmt */
            iconst_4
            if_icmpgt 4
            iload 7 /* shiftAmt */
            ifge 5
         4: .line 313
      StackMap locals: int int
      StackMap stack:
            aconst_null
            areturn
         5: .line 315
      StackMap locals:
      StackMap stack:
            iload 6 /* shift */
            bipush 16
            if_icmpeq 7
            iload 6 /* shift */
            bipush 24
            if_icmpeq 7
            iload 6 /* shift */
            bipush 32
            if_icmpeq 7
            iload 6 /* shift */
            bipush 48
            if_icmpeq 7
            iload 6 /* shift */
            bipush 56
            if_icmpeq 7
         6: .line 316
            aconst_null
            areturn
         7: .line 318
      StackMap locals:
      StackMap stack:
            iload 6 /* shift */
            bipush 32
            if_icmplt 8
            bipush 64
            iload 6 /* shift */
            isub
            goto 9
      StackMap locals:
      StackMap stack:
         8: bipush 32
            iload 6 /* shift */
            isub
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* extractBits */
        start local 8 // int extractBits
        10: .line 319
            aload 0 /* this */
            aload 1 /* op */
            aload 2 /* x */
            aload 3 /* y */
            iload 8 /* extractBits */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getSignExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            iload 7 /* shiftAmt */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitExtendedAddSubShift:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 8 // int extractBits
        end local 7 // int shiftAmt
        end local 6 // int shift
        end local 5 // org.graalvm.compiler.nodes.ConstantNode lshift
        end local 4 // org.graalvm.compiler.nodes.ConstantNode shiftConst
        end local 3 // org.graalvm.compiler.nodes.ValueNode y
        end local 2 // org.graalvm.compiler.nodes.ValueNode x
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   11     1           op  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0   11     2            x  Lorg/graalvm/compiler/nodes/ValueNode;
            0   11     3            y  Lorg/graalvm/compiler/nodes/ValueNode;
            0   11     4   shiftConst  Lorg/graalvm/compiler/nodes/ConstantNode;
            0   11     5       lshift  Lorg/graalvm/compiler/nodes/ConstantNode;
            2   11     6        shift  I
            3   11     7     shiftAmt  I
           10   11     8  extractBits  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (LeftShift (RightShift (LeftShift y Constant=shiftConst) Constant=shiftConst) Constant=lshift))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (LeftShift (RightShift (LeftShift y Constant=shiftConst) Constant=shiftConst) Constant=lshift))")})
    MethodParameters:
            Name  Flags
      op          
      x           
      y           
      shiftConst  
      lshift      

  public org.graalvm.compiler.core.match.ComplexMatchResult extendedPointerAddShift(org.graalvm.compiler.core.aarch64.AArch64PointerAddNode);
    descriptor: (Lorg/graalvm/compiler/core/aarch64/AArch64PointerAddNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.core.aarch64.AArch64PointerAddNode addP
         0: .line 325
            aload 1 /* addP */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64PointerAddNode.getOffset:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 2 /* offset */
        start local 2 // org.graalvm.compiler.nodes.ValueNode offset
         1: .line 328
            aload 2 /* offset */
            instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
            ifeq 5
         2: .line 329
            aload 2 /* offset */
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            astore 3 /* zeroExtend */
        start local 3 // org.graalvm.compiler.nodes.calc.ZeroExtendNode zeroExtend
         3: .line 330
            iconst_0
            istore 4 /* shiftNum */
        start local 4 // int shiftNum
         4: .line 331
            goto 8
        end local 4 // int shiftNum
        end local 3 // org.graalvm.compiler.nodes.calc.ZeroExtendNode zeroExtend
         5: .line 332
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* offset */
            checkcast org.graalvm.compiler.nodes.calc.LeftShiftNode
            astore 5 /* shift */
        start local 5 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
         6: .line 333
            aload 5 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            astore 3 /* zeroExtend */
        start local 3 // org.graalvm.compiler.nodes.calc.ZeroExtendNode zeroExtend
         7: .line 334
            aload 5 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.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 4 /* shiftNum */
        end local 5 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
        start local 4 // int shiftNum
         8: .line 337
      StackMap locals: org.graalvm.compiler.nodes.calc.ZeroExtendNode int
      StackMap stack:
            aload 3 /* zeroExtend */
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getInputBits:()I
            istore 5 /* fromBits */
        start local 5 // int fromBits
         9: .line 338
            aload 3 /* zeroExtend */
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getResultBits:()I
            istore 6 /* toBits */
        start local 6 // int toBits
        10: .line 339
            iload 6 /* toBits */
            bipush 64
            if_icmpeq 12
        11: .line 340
            aconst_null
            areturn
        12: .line 342
      StackMap locals: int int
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 13
            iload 5 /* fromBits */
            iload 6 /* toBits */
            if_icmple 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 343
      StackMap locals:
      StackMap stack:
            iload 5 /* fromBits */
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getZeroExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            astore 7 /* extendType */
        start local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extendType
        14: .line 345
            iload 4 /* shiftNum */
            iflt 17
            iload 4 /* shiftNum */
            iconst_4
            if_icmpgt 17
        15: .line 346
            aload 1 /* addP */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64PointerAddNode.getBase:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* base */
        start local 8 // org.graalvm.compiler.nodes.ValueNode base
        16: .line 347
            aload 0 /* this */
            aload 8 /* base */
            aload 3 /* zeroExtend */
            aload 1 /* addP */
            aload 7 /* extendType */
            iload 4 /* shiftNum */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;Lorg/graalvm/compiler/core/aarch64/AArch64PointerAddNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)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/calc/ZeroExtendNode;Lorg/graalvm/compiler/core/aarch64/AArch64PointerAddNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;ILorg/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 8 // org.graalvm.compiler.nodes.ValueNode base
        17: .line 359
      StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType
      StackMap stack:
            aconst_null
            areturn
        end local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extendType
        end local 6 // int toBits
        end local 5 // int fromBits
        end local 4 // int shiftNum
        end local 3 // org.graalvm.compiler.nodes.calc.ZeroExtendNode zeroExtend
        end local 2 // org.graalvm.compiler.nodes.ValueNode offset
        end local 1 // org.graalvm.compiler.core.aarch64.AArch64PointerAddNode addP
        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        addP  Lorg/graalvm/compiler/core/aarch64/AArch64PointerAddNode;
            1   18     2      offset  Lorg/graalvm/compiler/nodes/ValueNode;
            3    5     3  zeroExtend  Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;
            7   18     3  zeroExtend  Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;
            4    5     4    shiftNum  I
            8   18     4    shiftNum  I
            6    8     5       shift  Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            9   18     5    fromBits  I
           10   18     6      toBits  I
           14   18     7  extendType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
           16   17     8        base  Lorg/graalvm/compiler/nodes/ValueNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(AArch64PointerAdd=addP base ZeroExtend)"), org.graalvm.compiler.core.match.MatchRule(value = "(AArch64PointerAdd=addP base (LeftShift ZeroExtend Constant))")})
    MethodParameters:
      Name  Flags
      addP  

  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=6, locals=6, 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 value
        start local 3 // org.graalvm.compiler.nodes.ConstantNode a
        start local 4 // org.graalvm.compiler.nodes.ConstantNode b
         0: .line 365
            aload 1 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 5 /* kind */
        start local 5 // jdk.vm.ci.meta.JavaKind kind
         1: .line 366
            aload 0 /* this */
            aload 5 /* kind */
            aload 1 /* shift */
            aload 2 /* value */
            aload 3 /* a */
            aload 4 /* b */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitUnsignedBitField:(Ljdk/vm/ci/meta/JavaKind;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;
            areturn
        end local 5 // jdk.vm.ci.meta.JavaKind kind
        end local 4 // org.graalvm.compiler.nodes.ConstantNode b
        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.calc.BinaryNode shift
        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  shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    2     2  value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     3      a  Lorg/graalvm/compiler/nodes/ConstantNode;
            0    2     4      b  Lorg/graalvm/compiler/nodes/ConstantNode;
            1    2     5   kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(And (UnsignedRightShift=shift value Constant=a) Constant=b)"), org.graalvm.compiler.core.match.MatchRule(value = "(LeftShift=shift (And value Constant=b) Constant=a)")})
    MethodParameters:
       Name  Flags
      shift  
      value  
      a      
      b      

  public org.graalvm.compiler.core.match.ComplexMatchResult unsignedExtBitField(org.graalvm.compiler.nodes.calc.ZeroExtendNode, 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/ZeroExtendNode;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=6, locals=7, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.ZeroExtendNode extend
        start local 2 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        start local 3 // org.graalvm.compiler.nodes.ValueNode value
        start local 4 // org.graalvm.compiler.nodes.ConstantNode a
        start local 5 // org.graalvm.compiler.nodes.ConstantNode b
         0: .line 373
            aload 1 /* extend */
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 6 /* kind */
        start local 6 // jdk.vm.ci.meta.JavaKind kind
         1: .line 374
            aload 0 /* this */
            aload 6 /* kind */
            aload 2 /* shift */
            aload 3 /* value */
            aload 4 /* a */
            aload 5 /* b */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitUnsignedBitField:(Ljdk/vm/ci/meta/JavaKind;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;
            areturn
        end local 6 // jdk.vm.ci.meta.JavaKind kind
        end local 5 // org.graalvm.compiler.nodes.ConstantNode b
        end local 4 // org.graalvm.compiler.nodes.ConstantNode a
        end local 3 // org.graalvm.compiler.nodes.ValueNode value
        end local 2 // org.graalvm.compiler.nodes.calc.BinaryNode shift
        end local 1 // org.graalvm.compiler.nodes.calc.ZeroExtendNode extend
        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  extend  Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;
            0    2     2   shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    2     3   value  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4       a  Lorg/graalvm/compiler/nodes/ConstantNode;
            0    2     5       b  Lorg/graalvm/compiler/nodes/ConstantNode;
            1    2     6    kind  Ljdk/vm/ci/meta/JavaKind;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(LeftShift=shift (ZeroExtend=extend (And value Constant=b)) Constant=a)"), org.graalvm.compiler.core.match.MatchRule(value = "(ZeroExtend=extend (And (UnsignedRightShift=shift value Constant=a) Constant=b))"), org.graalvm.compiler.core.match.MatchRule(value = "(ZeroExtend=extend (LeftShift=shift (And value Constant=b) Constant=a))")})
    MethodParameters:
        Name  Flags
      extend  
      shift   
      value   
      a       
      b       

  public org.graalvm.compiler.core.match.ComplexMatchResult signedBitField(org.graalvm.compiler.nodes.calc.LeftShiftNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
         0: .line 379
            aload 1 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 2 /* kind */
        start local 2 // jdk.vm.ci.meta.JavaKind kind
         1: .line 380
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 2 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 382
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 1 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.SignExtendNode
            astore 3 /* extend */
        start local 3 // org.graalvm.compiler.nodes.calc.SignExtendNode extend
         3: .line 383
            aload 3 /* extend */
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.getInputBits:()I
            istore 4 /* srcBits */
        start local 4 // int srcBits
         4: .line 384
            aload 3 /* extend */
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.getResultBits:()I
            istore 5 /* resultBits */
        start local 5 // int resultBits
         5: .line 385
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 6
            aload 2 /* kind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            iload 5 /* resultBits */
            if_icmpeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 387
      StackMap locals: org.graalvm.compiler.nodes.calc.SignExtendNode int int
      StackMap stack:
            aload 1 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.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
            iload 5 /* resultBits */
            iconst_1
            isub
            iand
            istore 6 /* lsb */
        start local 6 // int lsb
         7: .line 389
            iload 4 /* srcBits */
            iload 5 /* resultBits */
            iload 6 /* lsb */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 7 /* width */
        start local 7 // int width
         8: .line 390
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 10
            iload 7 /* width */
            iconst_1
            if_icmplt 9
            iload 7 /* width */
            iload 5 /* resultBits */
            iload 6 /* lsb */
            isub
            if_icmple 10
      StackMap locals: int int
      StackMap stack:
         9: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 392
      StackMap locals:
      StackMap stack:
            aload 3 /* extend */
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* value */
        start local 8 // org.graalvm.compiler.nodes.ValueNode value
        11: .line 393
            aload 0 /* this */
            aload 2 /* kind */
            getstatic org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode.SBFIZ:Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            aload 8 /* value */
            iload 6 /* lsb */
            iload 7 /* width */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBitField:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;Lorg/graalvm/compiler/nodes/ValueNode;II)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 8 // org.graalvm.compiler.nodes.ValueNode value
        end local 7 // int width
        end local 6 // int lsb
        end local 5 // int resultBits
        end local 4 // int srcBits
        end local 3 // org.graalvm.compiler.nodes.calc.SignExtendNode extend
        end local 2 // jdk.vm.ci.meta.JavaKind kind
        end local 1 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   12     1       shift  Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            1   12     2        kind  Ljdk/vm/ci/meta/JavaKind;
            3   12     3      extend  Lorg/graalvm/compiler/nodes/calc/SignExtendNode;
            4   12     4     srcBits  I
            5   12     5  resultBits  I
            7   12     6         lsb  I
            8   12     7       width  I
           11   12     8       value  Lorg/graalvm/compiler/nodes/ValueNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRule(value = "(LeftShift=shift (SignExtend value) Constant)")
    MethodParameters:
       Name  Flags
      shift  

  public org.graalvm.compiler.core.match.ComplexMatchResult bitFieldMove(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.calc.LeftShiftNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode rshift
        start local 2 // org.graalvm.compiler.nodes.calc.LeftShiftNode lshift
         0: .line 399
            aload 1 /* rshift */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            astore 3 /* srcKind */
        start local 3 // jdk.vm.ci.meta.JavaKind srcKind
         1: .line 400
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 3 /* 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 401
      StackMap locals: jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aload 3 /* srcKind */
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            istore 4 /* srcBits */
        start local 4 // int srcBits
         3: .line 402
            aload 2 /* lshift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.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
            iload 4 /* srcBits */
            iconst_1
            isub
            iand
            istore 5 /* lshiftNum */
        start local 5 // int lshiftNum
         4: .line 403
            aload 1 /* rshift */
            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
            iload 4 /* srcBits */
            iconst_1
            isub
            iand
            istore 6 /* rshiftNum */
        start local 6 // int rshiftNum
         5: .line 404
            iload 5 /* lshiftNum */
            iload 6 /* rshiftNum */
            isub
            invokestatic java.lang.Math.abs:(I)I
            istore 7 /* lsb */
        start local 7 // int lsb
         6: .line 405
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 8
            iload 7 /* lsb */
            iflt 7
            iload 7 /* lsb */
            iload 4 /* srcBits */
            iconst_1
            isub
            if_icmple 8
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.LeftShiftNode jdk.vm.ci.meta.JavaKind int int int int
      StackMap stack:
         7: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 408
      StackMap locals:
      StackMap stack:
            iload 4 /* srcBits */
            iload 5 /* lshiftNum */
            iload 6 /* rshiftNum */
            invokestatic java.lang.Math.max:(II)I
            isub
            istore 8 /* width */
        start local 8 // int width
         9: .line 409
            iload 8 /* width */
            iload 4 /* srcBits */
            iload 7 /* lsb */
            isub
            if_icmpgt 10
            iload 8 /* width */
            iconst_1
            if_icmpge 11
        10: .line 410
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
        11: .line 415
      StackMap locals:
      StackMap stack:
            iload 5 /* lshiftNum */
            iload 6 /* rshiftNum */
            if_icmple 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 9 /* bitFieldInsert */
        start local 9 // boolean bitFieldInsert
        14: .line 417
            aload 1 /* rshift */
            instanceof org.graalvm.compiler.nodes.calc.RightShiftNode
            ifeq 19
        15: .line 418
            iload 9 /* bitFieldInsert */
            ifeq 16
            getstatic org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode.SBFIZ:Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            goto 17
      StackMap locals: int
      StackMap stack:
        16: getstatic org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode.SBFX:Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode
        17: astore 10 /* op */
        start local 10 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        18: .line 419
            goto 23
        end local 10 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        19: .line 420
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 20
            aload 1 /* rshift */
            instanceof org.graalvm.compiler.nodes.calc.UnsignedRightShiftNode
            ifne 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 421
      StackMap locals:
      StackMap stack:
            iload 9 /* bitFieldInsert */
            ifeq 21
            getstatic org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode.UBFIZ:Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
            goto 22
      StackMap locals:
      StackMap stack:
        21: getstatic org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode.UBFX:Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode
        22: astore 10 /* op */
        start local 10 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        23: .line 423
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode
      StackMap stack:
            aload 0 /* this */
            aload 3 /* srcKind */
            aload 10 /* op */
            aload 2 /* lshift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            iload 7 /* lsb */
            iload 8 /* width */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitBitField:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;Lorg/graalvm/compiler/nodes/ValueNode;II)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 10 // org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode op
        end local 9 // boolean bitFieldInsert
        end local 8 // int width
        end local 7 // int lsb
        end local 6 // int rshiftNum
        end local 5 // int lshiftNum
        end local 4 // int srcBits
        end local 3 // jdk.vm.ci.meta.JavaKind srcKind
        end local 2 // org.graalvm.compiler.nodes.calc.LeftShiftNode lshift
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode rshift
        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          rshift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0   24     2          lshift  Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
            1   24     3         srcKind  Ljdk/vm/ci/meta/JavaKind;
            3   24     4         srcBits  I
            4   24     5       lshiftNum  I
            5   24     6       rshiftNum  I
            6   24     7             lsb  I
            9   24     8           width  I
           14   24     9  bitFieldInsert  Z
           18   19    10              op  Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
           23   24    10              op  Lorg/graalvm/compiler/lir/aarch64/AArch64BitFieldOp$BitFieldOpCode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(RightShift=rshift (LeftShift=lshift value Constant) Constant)"), org.graalvm.compiler.core.match.MatchRule(value = "(UnsignedRightShift=rshift (LeftShift=lshift value Constant) Constant)")})
    MethodParameters:
        Name  Flags
      rshift  
      lshift  

  public org.graalvm.compiler.core.match.ComplexMatchResult rotationConstant(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;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=8, args_size=6
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.ValueNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode x
        start local 3 // org.graalvm.compiler.nodes.ValueNode src
        start local 4 // org.graalvm.compiler.nodes.ConstantNode shiftAmt1
        start local 5 // org.graalvm.compiler.nodes.ConstantNode shiftAmt2
         0: .line 431
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 3 /* src */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.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 432
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 4 /* shiftAmt1 */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            bipush 32
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 433
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 3
            aload 5 /* shiftAmt2 */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            bipush 32
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 435
      StackMap locals:
      StackMap stack:
            aload 4 /* shiftAmt1 */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 6 /* shift1 */
        start local 6 // int shift1
         4: .line 436
            aload 5 /* shiftAmt2 */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            istore 7 /* shift2 */
        start local 7 // int shift2
         5: .line 437
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 7
            iload 6 /* shift1 */
            ifeq 6
            iload 7 /* shift2 */
            ifne 7
         6: .line 438
      StackMap locals: int int
      StackMap stack:
            aconst_null
            areturn
         7: .line 440
      StackMap locals:
      StackMap stack:
            iload 6 /* shift1 */
            iload 7 /* shift2 */
            iadd
            ifeq 8
            aload 3 /* src */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            iload 6 /* shift1 */
            iload 7 /* shift2 */
            iadd
            if_icmpne 9
         8: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* src */
            aload 2 /* x */
            aload 5 /* shiftAmt2 */
            aload 4 /* shiftAmt1 */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/nodes/ConstantNode;)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/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value; (7)
                  (Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
            areturn
         9: .line 449
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 7 // int shift2
        end local 6 // int shift1
        end local 5 // org.graalvm.compiler.nodes.ConstantNode shiftAmt2
        end local 4 // org.graalvm.compiler.nodes.ConstantNode shiftAmt1
        end local 3 // org.graalvm.compiler.nodes.ValueNode src
        end local 2 // org.graalvm.compiler.nodes.ValueNode x
        end local 1 // org.graalvm.compiler.nodes.ValueNode op
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   10     1         op  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     2          x  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     3        src  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     4  shiftAmt1  Lorg/graalvm/compiler/nodes/ConstantNode;
            0   10     5  shiftAmt2  Lorg/graalvm/compiler/nodes/ConstantNode;
            4   10     6     shift1  I
            5   10     7     shift2  I
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Or=op (LeftShift=x src Constant=shiftAmt1) (UnsignedRightShift src Constant=shiftAmt2))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=op (UnsignedRightShift=x src Constant=shiftAmt1) (LeftShift src Constant=shiftAmt2))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=op (LeftShift=x src Constant=shiftAmt1) (UnsignedRightShift src Constant=shiftAmt2))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=op (UnsignedRightShift=x src Constant=shiftAmt1) (LeftShift src Constant=shiftAmt2))")})
    MethodParameters:
           Name  Flags
      op         
      x          
      src        
      shiftAmt1  
      shiftAmt2  

  public org.graalvm.compiler.core.match.ComplexMatchResult rotationExpander(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;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=5, locals=7, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.ValueNode src
        start local 2 // org.graalvm.compiler.nodes.ValueNode shiftAmount
        start local 3 // org.graalvm.compiler.nodes.ValueNode x
        start local 4 // org.graalvm.compiler.nodes.ValueNode y
         0: .line 459
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* src */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.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 460
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 2
            aload 2 /* shiftAmount */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            bipush 32
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 462
      StackMap locals:
      StackMap stack:
            aload 4 /* y */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifne 3
            aload 4 /* y */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 9
         3: .line 463
      StackMap locals:
      StackMap stack:
            aload 4 /* y */
            checkcast org.graalvm.compiler.nodes.calc.BinaryNode
            astore 5 /* binary */
        start local 5 // org.graalvm.compiler.nodes.calc.BinaryNode binary
         4: .line 464
            aload 5 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifeq 5
            aload 5 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 6
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryNode
      StackMap stack:
         5: aload 5 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         6: checkcast org.graalvm.compiler.nodes.ConstantNode
            astore 6 /* delta */
        start local 6 // org.graalvm.compiler.nodes.ConstantNode delta
         7: .line 465
            aload 6 /* delta */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            aload 1 /* src */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getBitCount:()I
            if_icmpeq 9
         8: .line 466
            aconst_null
            areturn
        end local 6 // org.graalvm.compiler.nodes.ConstantNode delta
        end local 5 // org.graalvm.compiler.nodes.calc.BinaryNode binary
         9: .line 470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* src */
            aload 4 /* y */
            aload 3 /* x */
            aload 2 /* shiftAmount */
            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/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/nodes/ValueNode;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 y
        end local 3 // org.graalvm.compiler.nodes.ValueNode x
        end local 2 // org.graalvm.compiler.nodes.ValueNode shiftAmount
        end local 1 // org.graalvm.compiler.nodes.ValueNode src
        end local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   10     1          src  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     2  shiftAmount  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     3            x  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     4            y  Lorg/graalvm/compiler/nodes/ValueNode;
            4    9     5       binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            7    9     6        delta  Lorg/graalvm/compiler/nodes/ConstantNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Or (LeftShift=x src shiftAmount) (UnsignedRightShift src (Sub=y Constant shiftAmount)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or (UnsignedRightShift=x src shiftAmount) (LeftShift src (Sub=y Constant shiftAmount)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or (LeftShift=x src (Negate shiftAmount)) (UnsignedRightShift src (Add=y Constant shiftAmount)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or (UnsignedRightShift=x src (Negate shiftAmount)) (LeftShift src (Add=y Constant shiftAmount)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or (LeftShift=x src shiftAmount) (UnsignedRightShift src (Negate=y shiftAmount)))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or (UnsignedRightShift=x src shiftAmount) (LeftShift src (Negate=y shiftAmount)))")})
    MethodParameters:
             Name  Flags
      src          
      shiftAmount  
      x            
      y            

  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=4, 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 489
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.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 490
            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 491
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
      StackMap stack:
            aload 0 /* this */
            aload 4 /* op */
            aload 2 /* a */
            aload 3 /* shift */
            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;)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=4, locals=6, 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 514
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* a */
            if_acmpne 1
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 2
      StackMap locals:
      StackMap stack:
         1: 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
         2: astore 5 /* operand */
        start local 5 // org.graalvm.compiler.nodes.ValueNode operand
         3: .line 515
            aload 5 /* operand */
            instanceof org.graalvm.compiler.nodes.calc.NotNode
            ifeq 6
         4: .line 516
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.logicalNotOpMap:Lorg/graalvm/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.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
         5: .line 517
            goto 7
        end local 4 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
         6: .line 518
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.BinaryNode top org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.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
         7: .line 520
      StackMap locals: org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 8
            aload 4 /* op */
            ifnonnull 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* op */
            aload 2 /* a */
            aload 3 /* shift */
            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;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        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    9     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    9     1   binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    9     2        a  Lorg/graalvm/compiler/nodes/ValueNode;
            0    9     3    shift  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            5    6     4       op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            7    9     4       op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            3    9     5  operand  Lorg/graalvm/compiler/nodes/ValueNode;
    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 bitwiseLogicNot(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.calc.NotNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/calc/NotNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode logic
        start local 2 // org.graalvm.compiler.nodes.calc.NotNode not
         0: .line 528
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* logic */
            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 529
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.logicalNotOpMap:Lorg/graalvm/collections/EconomicMap;
            aload 1 /* logic */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
            astore 3 /* op */
        start local 3 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
         2: .line 530
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 3
            aload 3 /* op */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 531
      StackMap locals: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
      StackMap stack:
            aload 1 /* logic */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* not */
            if_acmpne 4
            aload 1 /* logic */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* logic */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.ValueNode
         5: astore 4 /* src1 */
        start local 4 // org.graalvm.compiler.nodes.ValueNode src1
         6: .line 532
            aload 2 /* not */
            invokevirtual org.graalvm.compiler.nodes.calc.NotNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* src2 */
        start local 5 // org.graalvm.compiler.nodes.ValueNode src2
         7: .line 533
            aload 0 /* this */
            aload 4 /* src1 */
            aload 5 /* src2 */
            aload 3 /* op */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;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$7(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;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 5 // org.graalvm.compiler.nodes.ValueNode src2
        end local 4 // org.graalvm.compiler.nodes.ValueNode src1
        end local 3 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp op
        end local 2 // org.graalvm.compiler.nodes.calc.NotNode not
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode logic
        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  logic  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    8     2    not  Lorg/graalvm/compiler/nodes/calc/NotNode;
            2    8     3     op  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            6    8     4   src1  Lorg/graalvm/compiler/nodes/ValueNode;
            7    8     5   src2  Lorg/graalvm/compiler/nodes/ValueNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(And=logic value1 (Not=not value2))"), org.graalvm.compiler.core.match.MatchRule(value = "(Or=logic value1 (Not=not value2))"), org.graalvm.compiler.core.match.MatchRule(value = "(Xor=logic value1 (Not=not value2))")})
    MethodParameters:
       Name  Flags
      logic  
      not    

  public org.graalvm.compiler.core.match.ComplexMatchResult bitwiseNotXor(org.graalvm.compiler.nodes.calc.NotNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/NotNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    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.nodes.calc.NotNode not
         0: .line 543
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 1 /* not */
            invokevirtual org.graalvm.compiler.nodes.calc.NotNode.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 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* not */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/calc/NotNode;)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/nodes/calc/NotNode;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 1 // org.graalvm.compiler.nodes.calc.NotNode not
        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   not  Lorg/graalvm/compiler/nodes/calc/NotNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRule(value = "(Not=not (Xor value1 value2))")
    MethodParameters:
      Name  Flags
      not   

  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 556
            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 557
      StackMap locals:
      StackMap stack:
            aload 1 /* binary */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 4
         3: .line 558
            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$9(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 560
      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$10(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 566
            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 567
      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 568
            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$11(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 574
            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 575
      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 576
            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$12(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 603
            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 605
      StackMap locals:
      StackMap stack:
            aload 2 /* narrow */
            astore 3 /* a */
        start local 3 // org.graalvm.compiler.nodes.ValueNode a
         2: .line 606
            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 607
            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 608
            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 609
            iload 5 /* isL2Ia */
            ifne 11
            iload 6 /* isL2Ib */
            ifne 11
        10: .line 610
            aconst_null
            areturn
        11: .line 613
      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 614
            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 616
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.binaryOpMap:Lorg/graalvm/collections/EconomicMap;
            aload 1 /* binary */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.graalvm.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 617
            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 618
      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 619
            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 622
            aload 3 /* a */
            aload 1 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 23
        22: .line 623
            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$13(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 626
      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$14(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 mergeDowncastIntoAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode x
        start local 3 // org.graalvm.compiler.nodes.ValueNode y
        start local 4 // org.graalvm.compiler.nodes.ConstantNode constant
         0: .line 633
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 1
            aload 4 /* constant */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.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 634
      StackMap locals:
      StackMap stack:
            aload 4 /* constant */
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lstore 5 /* mask */
        start local 5 // long mask
         2: .line 635
            lload 5 /* mask */
            ldc 255
            lcmp
            ifeq 4
            lload 5 /* mask */
            ldc 65535
            lcmp
            ifeq 4
            lload 5 /* mask */
            ldc 4294967295
            lcmp
            ifeq 4
         3: .line 636
            aconst_null
            areturn
         4: .line 638
      StackMap locals: long
      StackMap stack:
            lload 5 /* mask */
            invokestatic java.lang.Long.toBinaryString:(J)Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getZeroExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            astore 7 /* extType */
        start local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         5: .line 639
            aload 0 /* this */
            aload 1 /* op */
            aload 2 /* x */
            aload 3 /* y */
            aload 7 /* extType */
            iconst_0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitExtendedAddSubShift:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 7 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
        end local 5 // long mask
        end local 4 // org.graalvm.compiler.nodes.ConstantNode constant
        end local 3 // org.graalvm.compiler.nodes.ValueNode y
        end local 2 // org.graalvm.compiler.nodes.ValueNode x
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode 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/nodes/calc/BinaryNode;
            0    6     2         x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     3         y  Lorg/graalvm/compiler/nodes/ValueNode;
            0    6     4  constant  Lorg/graalvm/compiler/nodes/ConstantNode;
            2    6     5      mask  J
            5    6     7   extType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (And y Constant=constant))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (And y Constant=constant))")})
    MethodParameters:
          Name  Flags
      op        
      x         
      y         
      constant  

  public org.graalvm.compiler.core.match.ComplexMatchResult mergeSignExtendIntoAddSub(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.nodes.calc.UnaryNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/calc/UnaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        start local 2 // org.graalvm.compiler.nodes.calc.UnaryNode ext
        start local 3 // org.graalvm.compiler.nodes.ValueNode x
        start local 4 // org.graalvm.compiler.nodes.ValueNode y
         0: .line 648
            aload 2 /* ext */
            instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
            ifeq 3
         1: .line 649
            aload 2 /* ext */
            checkcast org.graalvm.compiler.nodes.calc.SignExtendNode
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.getInputBits:()I
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getSignExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            astore 5 /* extType */
        start local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         2: .line 650
            goto 4
        end local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         3: .line 651
      StackMap locals:
      StackMap stack:
            aload 2 /* ext */
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getInputBits:()I
            invokestatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getZeroExtendType:(I)Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            astore 5 /* extType */
        start local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
         4: .line 653
      StackMap locals: org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType
      StackMap stack:
            aload 0 /* this */
            aload 1 /* op */
            aload 3 /* x */
            aload 4 /* y */
            aload 5 /* extType */
            iconst_0
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.emitExtendedAddSubShift:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;I)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
            areturn
        end local 5 // org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType extType
        end local 4 // org.graalvm.compiler.nodes.ValueNode y
        end local 3 // org.graalvm.compiler.nodes.ValueNode x
        end local 2 // org.graalvm.compiler.nodes.calc.UnaryNode ext
        end local 1 // org.graalvm.compiler.nodes.calc.BinaryNode op
        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       op  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    5     2      ext  Lorg/graalvm/compiler/nodes/calc/UnaryNode;
            0    5     3        x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     4        y  Lorg/graalvm/compiler/nodes/ValueNode;
            2    3     5  extType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
            4    5     5  extType  Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (SignExtend=ext y))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (SignExtend=ext y))"), org.graalvm.compiler.core.match.MatchRule(value = "(Add=op x (ZeroExtend=ext y))"), org.graalvm.compiler.core.match.MatchRule(value = "(Sub=op x (ZeroExtend=ext y))")})
    MethodParameters:
      Name  Flags
      op    
      ext   
      x     
      y     

  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 659
            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 660
      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 661
            aconst_null
            areturn
         3: .line 664
      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 665
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.NOT:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
         5: .line 664
      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 666
            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$15(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 678
            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 679
            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$16(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 681
      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 687
            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 688
            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 689
            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 690
            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 691
      StackMap locals: jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind
      StackMap stack:
            aconst_null
            areturn
         5: .line 694
      StackMap locals:
      StackMap stack:
            aload 1 /* binary */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 7
         6: .line 695
            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$17(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 697
      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$18(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 705
            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 706
            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 707
            lload 4 /* constant */
            invokestatic java.lang.Long.bitCount:(J)I
            iconst_1
            if_icmpne 6
         3: .line 708
            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 709
            aload 1 /* root */
            invokevirtual org.graalvm.compiler.nodes.IfNode.getTrueSuccessorProbability:()D
            lload 4 /* constant */
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
         5: .line 708
            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 712
      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 720
            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 721
            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 722
      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 723
            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 724
            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 723
            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 726
      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.match.ComplexMatchResult floatSqrt(org.graalvm.compiler.nodes.calc.FloatConvertNode, org.graalvm.compiler.nodes.calc.FloatConvertNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/FloatConvertNode;Lorg/graalvm/compiler/nodes/calc/FloatConvertNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.FloatConvertNode a
        start local 2 // org.graalvm.compiler.nodes.calc.FloatConvertNode b
        start local 3 // org.graalvm.compiler.nodes.ValueNode c
         0: .line 731
            aload 3 /* c */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
            ifeq 3
            aload 1 /* a */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatConvertNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
            ifeq 3
         1: .line 732
            aload 1 /* a */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatConvertNode.getFloatConvert:()Lorg/graalvm/compiler/core/common/calc/FloatConvert;
            getstatic org.graalvm.compiler.core.common.calc.FloatConvert.D2F:Lorg/graalvm/compiler/core/common/calc/FloatConvert;
            if_acmpne 3
            aload 2 /* b */
            invokevirtual org.graalvm.compiler.nodes.calc.FloatConvertNode.getFloatConvert:()Lorg/graalvm/compiler/core/common/calc/FloatConvert;
            getstatic org.graalvm.compiler.core.common.calc.FloatConvert.F2D:Lorg/graalvm/compiler/core/common/calc/FloatConvert;
            if_acmpne 3
         2: .line 733
            aload 0 /* this */
            aload 3 /* c */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;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$19(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
         3: .line 736
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.graalvm.compiler.nodes.ValueNode c
        end local 2 // org.graalvm.compiler.nodes.calc.FloatConvertNode b
        end local 1 // org.graalvm.compiler.nodes.calc.FloatConvertNode a
        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     a  Lorg/graalvm/compiler/nodes/calc/FloatConvertNode;
            0    4     2     b  Lorg/graalvm/compiler/nodes/calc/FloatConvertNode;
            0    4     3     c  Lorg/graalvm/compiler/nodes/ValueNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRule(value = "(FloatConvert=a (Sqrt (FloatConvert=b c)))")
    MethodParameters:
      Name  Flags
      a     
      b     
      c     

  public org.graalvm.compiler.core.match.ComplexMatchResult mergeNarrowExtend(org.graalvm.compiler.nodes.calc.UnaryNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/UnaryNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/match/ComplexMatchResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 1 // org.graalvm.compiler.nodes.calc.UnaryNode extend
        start local 2 // org.graalvm.compiler.nodes.ValueNode value
         0: .line 742
            aload 1 /* extend */
            instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
            ifeq 3
         1: .line 743
            aload 1 /* extend */
            checkcast org.graalvm.compiler.nodes.calc.SignExtendNode
            astore 3 /* sxt */
        start local 3 // org.graalvm.compiler.nodes.calc.SignExtendNode sxt
         2: .line 744
            aload 0 /* this */
            aload 2 /* value */
            aload 3 /* sxt */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/SignExtendNode;)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$20(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/SignExtendNode;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.nodes.calc.SignExtendNode sxt
         3: .line 746
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.$assertionsDisabled:Z
            ifne 4
            aload 1 /* extend */
            instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 747
      StackMap locals:
      StackMap stack:
            aload 1 /* extend */
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            astore 3 /* zxt */
        start local 3 // org.graalvm.compiler.nodes.calc.ZeroExtendNode zxt
         5: .line 748
            aload 0 /* this */
            aload 2 /* value */
            aload 3 /* zxt */
            invokedynamic evaluate(Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;)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$21(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;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.nodes.calc.ZeroExtendNode zxt
        end local 2 // org.graalvm.compiler.nodes.ValueNode value
        end local 1 // org.graalvm.compiler.nodes.calc.UnaryNode extend
        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  extend  Lorg/graalvm/compiler/nodes/calc/UnaryNode;
            0    6     2   value  Lorg/graalvm/compiler/nodes/ValueNode;
            2    3     3     sxt  Lorg/graalvm/compiler/nodes/calc/SignExtendNode;
            5    6     3     zxt  Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchRules(value = {org.graalvm.compiler.core.match.MatchRule(value = "(SignExtend=extend (Narrow value))"), org.graalvm.compiler.core.match.MatchRule(value = "(ZeroExtend=extend (Narrow value))")})
    MethodParameters:
        Name  Flags
      extend  
      value   

  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 753
            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 757
            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.nodes.calc.BinaryNode, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ShiftType, 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;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=12, 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 174
            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 175
            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 7 /* b */
        start local 7 // jdk.vm.ci.meta.Value b
         2: .line 176
            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 6 /* a */
            aastore
            dup
            iconst_1
            aload 7 /* 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 8 /* result */
        start local 8 // org.graalvm.compiler.lir.Variable result
         3: .line 177
            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 9 /* x */
        start local 9 // jdk.vm.ci.meta.AllocatableValue x
         4: .line 178
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 7 /* 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 10 /* y */
        start local 10 // jdk.vm.ci.meta.AllocatableValue y
         5: .line 179
            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 11 /* shiftAmount */
        start local 11 // int shiftAmount
         6: .line 180
            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 8 /* result */
            aload 9 /* x */
            aload 10 /* y */
            aload 4
            iload 11 /* shiftAmount */
            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;I)V
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         7: .line 181
            aload 8 /* result */
            areturn
        end local 11 // int shiftAmount
        end local 10 // jdk.vm.ci.meta.AllocatableValue y
        end local 9 // jdk.vm.ci.meta.AllocatableValue x
        end local 8 // org.graalvm.compiler.lir.Variable result
        end local 7 // jdk.vm.ci.meta.Value b
        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    8     0         this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    8     5      builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    8     6            a  Ljdk/vm/ci/meta/Value;
            2    8     7            b  Ljdk/vm/ci/meta/Value;
            3    8     8       result  Lorg/graalvm/compiler/lir/Variable;
            4    8     9            x  Ljdk/vm/ci/meta/AllocatableValue;
            5    8    10            y  Ljdk/vm/ci/meta/AllocatableValue;
            6    8    11  shiftAmount  I

  private jdk.vm.ci.meta.Value lambda$1(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 188
            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 189
            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 190
            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 191
            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 192
            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 191
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         6: .line 193
            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$2(org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.JavaKind, org.graalvm.compiler.lir.aarch64.AArch64BitFieldOp$BitFieldOpCode, int, int, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/JavaKind;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=11, 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 202
            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 203
            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
            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 8 /* resultKind */
        start local 8 // org.graalvm.compiler.core.common.LIRKind resultKind
         2: .line 204
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 8 /* resultKind */
            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 205
            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 /* src */
        start local 10 // jdk.vm.ci.meta.AllocatableValue src
         4: .line 206
            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 3
            aload 9 /* result */
            aload 10 /* src */
            iload 4
            iload 5
            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
         5: .line 207
            aload 9 /* result */
            areturn
        end local 10 // jdk.vm.ci.meta.AllocatableValue src
        end local 9 // org.graalvm.compiler.lir.Variable result
        end local 8 // org.graalvm.compiler.core.common.LIRKind resultKind
        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    6     0        this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    6     6     builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    6     7           a  Ljdk/vm/ci/meta/Value;
            2    6     8  resultKind  Lorg/graalvm/compiler/core/common/LIRKind;
            3    6     9      result  Lorg/graalvm/compiler/lir/Variable;
            4    6    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.calc.BinaryNode, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType, int, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;ILorg/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 6 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 249
            aload 0 /* this */
            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.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 7 /* src1 */
        start local 7 // jdk.vm.ci.meta.AllocatableValue src1
         1: .line 250
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 0 /* this */
            aload 2
            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 8 /* src2 */
        start local 8 // jdk.vm.ci.meta.AllocatableValue src2
         2: .line 251
            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 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            aastore
            dup
            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;
            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 252
            aload 3
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 4
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ADD:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            goto 5
      StackMap locals: jdk.vm.ci.meta.AllocatableValue jdk.vm.ci.meta.AllocatableValue org.graalvm.compiler.lir.Variable
      StackMap stack:
         4: getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.SUB:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
      StackMap locals:
      StackMap stack: org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp
         5: astore 10 /* arithmeticOp */
        start local 10 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp arithmeticOp
         6: .line 253
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            new org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$ExtendedAddSubShiftOp
            dup
            aload 10 /* arithmeticOp */
            aload 9 /* result */
            aload 7 /* src1 */
            aload 8 /* src2 */
            aload 4
            iload 5
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$ExtendedAddSubShiftOp.<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$ExtendType;I)V
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         7: .line 254
            aload 9 /* result */
            areturn
        end local 10 // org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp arithmeticOp
        end local 9 // org.graalvm.compiler.lir.Variable result
        end local 8 // jdk.vm.ci.meta.AllocatableValue src2
        end local 7 // jdk.vm.ci.meta.AllocatableValue src1
        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          src1  Ljdk/vm/ci/meta/AllocatableValue;
            2    8     8          src2  Ljdk/vm/ci/meta/AllocatableValue;
            3    8     9        result  Lorg/graalvm/compiler/lir/Variable;
            6    8    10  arithmeticOp  Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;

  private jdk.vm.ci.meta.Value lambda$4(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.ZeroExtendNode, org.graalvm.compiler.core.aarch64.AArch64PointerAddNode, org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType, int, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;Lorg/graalvm/compiler/core/aarch64/AArch64PointerAddNode;Lorg/graalvm/compiler/asm/aarch64/AArch64Assembler$ExtendType;ILorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=12, 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 348
            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.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 7 /* x */
        start local 7 // jdk.vm.ci.meta.AllocatableValue x
         1: .line 349
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.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 8 /* y */
        start local 8 // jdk.vm.ci.meta.AllocatableValue y
         2: .line 350
            aload 7 /* x */
            invokestatic org.graalvm.compiler.core.common.LIRKind.derivedBaseFromValue:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
            astore 9 /* baseReference */
        start local 9 // jdk.vm.ci.meta.AllocatableValue baseReference
         3: .line 351
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 3
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64PointerAddNode.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;
         4: .line 352
            aload 9 /* baseReference */
            aconst_null
         5: .line 351
            invokestatic org.graalvm.compiler.core.common.LIRKind.combineDerived:(Lorg/graalvm/compiler/core/common/LIRKind;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/AllocatableValue;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 10 /* kind */
        start local 10 // org.graalvm.compiler.core.common.LIRKind kind
         6: .line 353
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            aload 10 /* kind */
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 11 /* result */
        start local 11 // org.graalvm.compiler.lir.Variable result
         7: .line 354
            aload 0 /* this */
            getfield org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.gen:Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
            new org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$ExtendedAddSubShiftOp
            dup
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ADD:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            aload 11 /* result */
            aload 7 /* x */
            aload 0 /* this */
            aload 8 /* y */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.moveSp:(Ljdk/vm/ci/meta/AllocatableValue;)Ljdk/vm/ci/meta/AllocatableValue;
         8: .line 355
            aload 4
            iload 5
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$ExtendedAddSubShiftOp.<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$ExtendType;I)V
         9: .line 354
            invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
        10: .line 356
            aload 11 /* result */
            areturn
        end local 11 // org.graalvm.compiler.lir.Variable result
        end local 10 // org.graalvm.compiler.core.common.LIRKind kind
        end local 9 // jdk.vm.ci.meta.AllocatableValue baseReference
        end local 8 // jdk.vm.ci.meta.AllocatableValue y
        end local 7 // jdk.vm.ci.meta.AllocatableValue x
        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   11     0           this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   11     6        builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1   11     7              x  Ljdk/vm/ci/meta/AllocatableValue;
            2   11     8              y  Ljdk/vm/ci/meta/AllocatableValue;
            3   11     9  baseReference  Ljdk/vm/ci/meta/AllocatableValue;
            6   11    10           kind  Lorg/graalvm/compiler/core/common/LIRKind;
            7   11    11         result  Lorg/graalvm/compiler/lir/Variable;

  private jdk.vm.ci.meta.Value lambda$5(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ConstantNode, org.graalvm.compiler.nodes.ConstantNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/nodes/ConstantNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, 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 442
            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.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 6 /* a */
        start local 6 // jdk.vm.ci.meta.AllocatableValue a
         1: .line 443
            aload 2
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 2
            aload 3
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            goto 3
      StackMap locals: jdk.vm.ci.meta.AllocatableValue
      StackMap stack:
         2: aload 4
            invokevirtual org.graalvm.compiler.nodes.ConstantNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.JavaConstant
         3: astore 7 /* b */
        start local 7 // jdk.vm.ci.meta.JavaConstant b
         4: .line 444
            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 8 /* result */
        start local 8 // org.graalvm.compiler.lir.Variable result
         5: .line 445
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 8 /* result */
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.ROR:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            aload 6 /* a */
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitBinaryConst:(Lorg/graalvm/compiler/lir/Variable;Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/JavaConstant;)V
         6: .line 446
            aload 8 /* result */
            areturn
        end local 8 // org.graalvm.compiler.lir.Variable result
        end local 7 // jdk.vm.ci.meta.JavaConstant b
        end local 6 // jdk.vm.ci.meta.AllocatableValue 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    7     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0    7     5  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    7     6        a  Ljdk/vm/ci/meta/AllocatableValue;
            4    7     7        b  Ljdk/vm/ci/meta/JavaConstant;
            5    7     8   result  Lorg/graalvm/compiler/lir/Variable;

  private jdk.vm.ci.meta.Value lambda$6(org.graalvm.compiler.nodes.ValueNode, 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/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=8, 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 471
            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 473
            aload 2
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 6
         2: .line 474
            aload 3
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 3
            aload 0 /* this */
            aload 4
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            goto 4
      StackMap locals: jdk.vm.ci.meta.Value
      StackMap stack:
         3: aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 4
            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.emitNegate:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.Value
         4: astore 7 /* b */
        start local 7 // jdk.vm.ci.meta.Value b
         5: .line 475
            goto 9
        end local 7 // jdk.vm.ci.meta.Value b
         6: .line 476
      StackMap locals:
      StackMap stack:
            aload 3
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 7
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 0 /* this */
            aload 4
            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.emitNegate:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            aload 4
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.Value
         8: astore 7 /* b */
        start local 7 // jdk.vm.ci.meta.Value b
         9: .line 478
      StackMap locals: jdk.vm.ci.meta.Value
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            iconst_2
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 6 /* a */
            aastore
            dup
            iconst_1
            aload 7 /* b */
            aastore
            invokestatic org.graalvm.compiler.core.common.LIRKind.combine:([Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/core/common/LIRKind;
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.RORV:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            iconst_0
            aload 6 /* a */
            aload 7 /* b */
            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;
            areturn
        end local 7 // jdk.vm.ci.meta.Value b
        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   10     0     this  Lorg/graalvm/compiler/core/aarch64/AArch64NodeMatchRules;
            0   10     5  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1   10     6        a  Ljdk/vm/ci/meta/Value;
            5    6     7        b  Ljdk/vm/ci/meta/Value;
            9   10     7        b  Ljdk/vm/ci/meta/Value;

  private jdk.vm.ci.meta.Value lambda$7(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;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=6, 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 534
            aload 0 /* this */
            aload 1
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 5 /* a */
        start local 5 // jdk.vm.ci.meta.Value a
         1: .line 535
            aload 0 /* this */
            aload 2
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 6 /* b */
        start local 6 // jdk.vm.ci.meta.Value b
         2: .line 536
            iconst_2
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 5 /* a */
            aastore
            dup
            iconst_1
            aload 6 /* b */
            aastore
            invokestatic org.graalvm.compiler.core.common.LIRKind.combine:([Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 7 /* resultKind */
        start local 7 // org.graalvm.compiler.core.common.LIRKind resultKind
         3: .line 537
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 7 /* resultKind */
            aload 3
            iconst_0
            aload 5 /* a */
            aload 6 /* b */
            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;
            areturn
        end local 7 // org.graalvm.compiler.core.common.LIRKind resultKind
        end local 6 // jdk.vm.ci.meta.Value b
        end local 5 // jdk.vm.ci.meta.Value a
        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;
            1    4     5           a  Ljdk/vm/ci/meta/Value;
            2    4     6           b  Ljdk/vm/ci/meta/Value;
            3    4     7  resultKind  Lorg/graalvm/compiler/core/common/LIRKind;

  private jdk.vm.ci.meta.Value lambda$8(org.graalvm.compiler.nodes.calc.NotNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/NotNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 2 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 545
            aload 1
            invokevirtual org.graalvm.compiler.nodes.calc.NotNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            checkcast org.graalvm.compiler.nodes.calc.XorNode
            astore 3 /* xor */
        start local 3 // org.graalvm.compiler.nodes.calc.XorNode xor
         1: .line 546
            aload 0 /* this */
            aload 3 /* xor */
            invokevirtual org.graalvm.compiler.nodes.calc.XorNode.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 4 /* a */
        start local 4 // jdk.vm.ci.meta.Value a
         2: .line 547
            aload 0 /* this */
            aload 3 /* xor */
            invokevirtual org.graalvm.compiler.nodes.calc.XorNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.operand:(Lorg/graalvm/compiler/graph/Node;)Ljdk/vm/ci/meta/Value;
            astore 5 /* b */
        start local 5 // jdk.vm.ci.meta.Value b
         3: .line 548
            iconst_2
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 4 /* a */
            aastore
            dup
            iconst_1
            aload 5 /* b */
            aastore
            invokestatic org.graalvm.compiler.core.common.LIRKind.combine:([Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 6 /* resultKind */
        start local 6 // org.graalvm.compiler.core.common.LIRKind resultKind
         4: .line 549
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
            aload 6 /* resultKind */
            getstatic org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp.EON:Lorg/graalvm/compiler/lir/aarch64/AArch64ArithmeticOp;
            iconst_0
            aload 4 /* a */
            aload 5 /* b */
            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;
            areturn
        end local 6 // org.graalvm.compiler.core.common.LIRKind resultKind
        end local 5 // jdk.vm.ci.meta.Value b
        end local 4 // jdk.vm.ci.meta.Value a
        end local 3 // org.graalvm.compiler.nodes.calc.XorNode xor
        end local 2 // 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     2     builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;
            1    5     3         xor  Lorg/graalvm/compiler/nodes/calc/XorNode;
            2    5     4           a  Ljdk/vm/ci/meta/Value;
            3    5     5           b  Ljdk/vm/ci/meta/Value;
            4    5     6  resultKind  Lorg/graalvm/compiler/core/common/LIRKind;

  private jdk.vm.ci.meta.Value lambda$9(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 558
            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$10(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 560
            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$11(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 568
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 569
            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 568
            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 569
            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$12(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 576
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 577
            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 576
            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 577
            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$13(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 623
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 624
            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 623
            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 624
            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$14(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 626
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules.getArithmeticLIRGenerator:()Lorg/graalvm/compiler/core/aarch64/AArch64ArithmeticLIRGenerator;
         1: .line 627
            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 626
            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 627
            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$15(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 667
            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 668
            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 669
            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 670
            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 671
            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$16(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 679
            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$17(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 695
            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$18(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 697
            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;

  private jdk.vm.ci.meta.Value lambda$19(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;)Ljdk/vm/ci/meta/Value;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.core.aarch64.AArch64NodeMatchRules this
        start local 2 // org.graalvm.compiler.core.gen.NodeLIRBuilder builder
         0: .line 733
            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;
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitMathSqrt:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/meta/Value;
            areturn
        end local 2 // 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     2  builder  Lorg/graalvm/compiler/core/gen/NodeLIRBuilder;

  private jdk.vm.ci.meta.Value lambda$20(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.SignExtendNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/SignExtendNode;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 744
            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 2
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.getInputBits:()I
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.SignExtendNode.getResultBits:()I
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitSignExtend:(Ljdk/vm/ci/meta/Value;II)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$21(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.calc.ZeroExtendNode, org.graalvm.compiler.core.gen.NodeLIRBuilder);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;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 748
            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 2
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getInputBits:()I
            aload 2
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getResultBits:()I
            invokevirtual org.graalvm.compiler.core.aarch64.AArch64ArithmeticLIRGenerator.emitZeroExtend:(Ljdk/vm/ci/meta/Value;II)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;
}
SourceFile: "AArch64NodeMatchRules.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final ExtendType = org.graalvm.compiler.asm.aarch64.AArch64Assembler$ExtendType of org.graalvm.compiler.asm.aarch64.AArch64Assembler
  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 ExtendedAddSubShiftOp = org.graalvm.compiler.lir.aarch64.AArch64ArithmeticOp$ExtendedAddSubShiftOp 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
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.core.match.MatchableNode(nodeClass = Lorg/graalvm/compiler/core/aarch64/AArch64PointerAddNode;, inputs = {"base", "offset"})