public abstract class org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<OP> extends org.graalvm.compiler.nodes.calc.BinaryNode implements org.graalvm.compiler.nodes.ArithmeticOperation, org.graalvm.compiler.nodes.spi.ArithmeticLIRLowerable, org.graalvm.compiler.graph.spi.Canonicalizable$Binary<org.graalvm.compiler.nodes.ValueNode>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
  super_class: org.graalvm.compiler.nodes.calc.BinaryNode
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.calc.BinaryArithmeticNode> TYPE;
    descriptor: Lorg/graalvm/compiler/graph/NodeClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lorg/graalvm/compiler/graph/NodeClass<Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;>;

  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=1, locals=0, args_size=0
         0: .line 54
            ldc Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;
            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.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
         3: .line 56
            ldc Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<OP>>, org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP>, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
        start local 1 // org.graalvm.compiler.graph.NodeClass c
        start local 2 // org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp opForStampComputation
        start local 3 // org.graalvm.compiler.nodes.ValueNode x
        start local 4 // org.graalvm.compiler.nodes.ValueNode y
         0: .line 59
            aload 0 /* this */
            aload 1 /* c */
            aload 2 /* opForStampComputation */
            aload 3 /* x */
            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;
            aload 4 /* y */
            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;
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* x */
            aload 4 /* y */
            invokespecial org.graalvm.compiler.nodes.calc.BinaryNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
         1: .line 60
            return
        end local 4 // org.graalvm.compiler.nodes.ValueNode y
        end local 3 // org.graalvm.compiler.nodes.ValueNode x
        end local 2 // org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp opForStampComputation
        end local 1 // org.graalvm.compiler.graph.NodeClass c
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0    2     1                      c  Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;
            0    2     2  opForStampComputation  Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
            0    2     3                      x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4                      y  Lorg/graalvm/compiler/nodes/ValueNode;
    Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    MethodParameters:
                       Name  Flags
      c                      
      opForStampComputation  
      x                      
      y                      

  protected void <init>(org.graalvm.compiler.graph.NodeClass<? extends org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<OP>>, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
        start local 1 // org.graalvm.compiler.graph.NodeClass c
        start local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 3 // org.graalvm.compiler.nodes.ValueNode x
        start local 4 // org.graalvm.compiler.nodes.ValueNode y
         0: .line 63
            aload 0 /* this */
            aload 1 /* c */
            aload 2 /* stamp */
            aload 3 /* x */
            aload 4 /* y */
            invokespecial org.graalvm.compiler.nodes.calc.BinaryNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
         1: .line 64
            return
        end local 4 // org.graalvm.compiler.nodes.ValueNode y
        end local 3 // org.graalvm.compiler.nodes.ValueNode x
        end local 2 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 1 // org.graalvm.compiler.graph.NodeClass c
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0    2     1      c  Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;
            0    2     2  stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    2     3      x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    2     4      y  Lorg/graalvm/compiler/nodes/ValueNode;
    Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    MethodParameters:
       Name  Flags
      c      
      stamp  
      x      
      y      

  public static org.graalvm.compiler.core.common.type.ArithmeticOpTable getArithmeticOpTable(org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.ValueNode forValue
         0: .line 67
            aload 0 /* forValue */
            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;
            invokestatic org.graalvm.compiler.core.common.type.ArithmeticOpTable.forStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
            areturn
        end local 0 // org.graalvm.compiler.nodes.ValueNode forValue
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  forValue  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
          Name  Flags
      forValue  

  protected abstract org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP> getOp(org.graalvm.compiler.core.common.type.ArithmeticOpTable);
    descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
    MethodParameters:
       Name  Flags
      table  

  protected final org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP> getOp(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/common/type/ArithmeticOpTable$BinaryOp;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
        start local 1 // org.graalvm.compiler.nodes.ValueNode forX
        start local 2 // org.graalvm.compiler.nodes.ValueNode forY
         0: .line 73
            aload 1 /* forX */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOpTable:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
            astore 3 /* table */
        start local 3 // org.graalvm.compiler.core.common.type.ArithmeticOpTable table
         1: .line 74
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 2
            aload 3 /* table */
            aload 2 /* forY */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOpTable:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable.equals:(Ljava/lang/Object;)Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 75
      StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable
      StackMap stack:
            aload 0 /* this */
            aload 3 /* table */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            areturn
        end local 3 // org.graalvm.compiler.core.common.type.ArithmeticOpTable table
        end local 2 // org.graalvm.compiler.nodes.ValueNode forY
        end local 1 // org.graalvm.compiler.nodes.ValueNode forX
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0    3     1   forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     2   forY  Lorg/graalvm/compiler/nodes/ValueNode;
            1    3     3  table  Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable;
    Signature: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
    MethodParameters:
      Name  Flags
      forX  
      forY  

  public final org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP> getArithmeticOp();
    descriptor: ()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
         0: .line 80
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            areturn
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
    Signature: ()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;

  public boolean isAssociative();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
         0: .line 84
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOp:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.isAssociative:()Z
            ireturn
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;

  public org.graalvm.compiler.nodes.ValueNode canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        start local 2 // org.graalvm.compiler.nodes.ValueNode forX
        start local 3 // org.graalvm.compiler.nodes.ValueNode forY
         0: .line 89
            aload 1 /* tool */
            invokestatic org.graalvm.compiler.nodes.NodeView.from:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;)Lorg/graalvm/compiler/nodes/NodeView;
            astore 4 /* view */
        start local 4 // org.graalvm.compiler.nodes.NodeView view
         1: .line 90
            aload 0 /* this */
            aload 2 /* forX */
            aload 3 /* forY */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            aload 2 /* forX */
            aload 3 /* forY */
            aload 0 /* this */
            aload 4 /* view */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.tryConstantFold:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 5 /* result */
        start local 5 // org.graalvm.compiler.nodes.ValueNode result
         2: .line 91
            aload 5 /* result */
            ifnull 4
         3: .line 92
            aload 5 /* result */
            areturn
         4: .line 94
      StackMap locals: org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* forX */
            instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
            ifeq 14
            aload 3 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 14
            aload 2 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.hasExactlyOneUsage:()Z
            ifeq 14
         5: .line 95
            aload 2 /* forX */
            checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
            astore 6 /* conditionalNode */
        start local 6 // org.graalvm.compiler.nodes.calc.ConditionalNode conditionalNode
         6: .line 96
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOp:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            astore 7 /* arithmeticOp */
        start local 7 // org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp arithmeticOp
         7: .line 97
            aload 7 /* arithmeticOp */
            aload 6 /* conditionalNode */
            invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 3 /* forY */
            aload 0 /* this */
            aload 4 /* view */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.tryConstantFold:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 8 /* trueConstant */
        start local 8 // org.graalvm.compiler.nodes.ConstantNode trueConstant
         8: .line 98
            aload 8 /* trueConstant */
            ifnull 14
         9: .line 99
            aload 7 /* arithmeticOp */
            aload 6 /* conditionalNode */
            invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 3 /* forY */
            aload 0 /* this */
            aload 4 /* view */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.tryConstantFold:(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 9 /* falseConstant */
        start local 9 // org.graalvm.compiler.nodes.ConstantNode falseConstant
        10: .line 100
            aload 9 /* falseConstant */
            ifnull 14
        11: .line 109
            aload 6 /* conditionalNode */
            getfield org.graalvm.compiler.nodes.calc.ConditionalNode.condition:Lorg/graalvm/compiler/nodes/LogicNode;
            aload 8 /* trueConstant */
        12: .line 110
            aload 9 /* falseConstant */
            aload 4 /* view */
        13: .line 109
            invokestatic org.graalvm.compiler.nodes.calc.ConditionalNode.create:(Lorg/graalvm/compiler/nodes/LogicNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 9 // org.graalvm.compiler.nodes.ConstantNode falseConstant
        end local 8 // org.graalvm.compiler.nodes.ConstantNode trueConstant
        end local 7 // org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp arithmeticOp
        end local 6 // org.graalvm.compiler.nodes.calc.ConditionalNode conditionalNode
        14: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 5 // org.graalvm.compiler.nodes.ValueNode result
        end local 4 // org.graalvm.compiler.nodes.NodeView view
        end local 3 // org.graalvm.compiler.nodes.ValueNode forY
        end local 2 // org.graalvm.compiler.nodes.ValueNode forX
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0   15     1             tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0   15     2             forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0   15     3             forY  Lorg/graalvm/compiler/nodes/ValueNode;
            1   15     4             view  Lorg/graalvm/compiler/nodes/NodeView;
            2   15     5           result  Lorg/graalvm/compiler/nodes/ValueNode;
            6   14     6  conditionalNode  Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
            7   14     7     arithmeticOp  Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
            8   14     8     trueConstant  Lorg/graalvm/compiler/nodes/ConstantNode;
           10   14     9    falseConstant  Lorg/graalvm/compiler/nodes/ConstantNode;
    MethodParameters:
      Name  Flags
      tool  
      forX  
      forY  

  public static <OP> org.graalvm.compiler.nodes.ConstantNode tryConstantFold(org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp<OP>, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ConstantNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp op
        start local 1 // org.graalvm.compiler.nodes.ValueNode forX
        start local 2 // org.graalvm.compiler.nodes.ValueNode forY
        start local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        start local 4 // org.graalvm.compiler.nodes.NodeView view
         0: .line 119
            aload 1 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 4
            aload 2 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 4
         1: .line 120
            aload 0 /* op */
            aload 1 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            aload 2 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldConstant:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/Constant;
            astore 5 /* ret */
        start local 5 // jdk.vm.ci.meta.Constant ret
         2: .line 121
            aload 5 /* ret */
            ifnull 4
         3: .line 122
            aload 3 /* stamp */
            aload 5 /* ret */
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forPrimitive:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
        end local 5 // jdk.vm.ci.meta.Constant ret
         4: .line 125
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // org.graalvm.compiler.nodes.NodeView view
        end local 3 // org.graalvm.compiler.core.common.type.Stamp stamp
        end local 2 // org.graalvm.compiler.nodes.ValueNode forY
        end local 1 // org.graalvm.compiler.nodes.ValueNode forX
        end local 0 // org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp op
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0     op  Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
            0    5     1   forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     2   forY  Lorg/graalvm/compiler/nodes/ValueNode;
            0    5     3  stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    5     4   view  Lorg/graalvm/compiler/nodes/NodeView;
            2    4     5    ret  Ljdk/vm/ci/meta/Constant;
    Signature: <OP:Ljava/lang/Object;>(Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ConstantNode;
    MethodParameters:
       Name  Flags
      op     
      forX   
      forY   
      stamp  
      view   

  public org.graalvm.compiler.core.common.type.Stamp foldStamp(org.graalvm.compiler.core.common.type.Stamp, org.graalvm.compiler.core.common.type.Stamp);
    descriptor: (Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
        start local 1 // org.graalvm.compiler.core.common.type.Stamp stampX
        start local 2 // org.graalvm.compiler.core.common.type.Stamp stampY
         0: .line 130
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 2
            aload 1 /* stampX */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            ifeq 1
            aload 2 /* stampY */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isCompatible:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            ifne 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getArithmeticOp:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            aload 1 /* stampX */
            aload 2 /* stampY */
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.foldStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            areturn
        end local 2 // org.graalvm.compiler.core.common.type.Stamp stampY
        end local 1 // org.graalvm.compiler.core.common.type.Stamp stampX
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0    3     1  stampX  Lorg/graalvm/compiler/core/common/type/Stamp;
            0    3     2  stampY  Lorg/graalvm/compiler/core/common/type/Stamp;
    MethodParameters:
        Name  Flags
      stampX  
      stampY  

  public static org.graalvm.compiler.nodes.ValueNode add(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 1 // org.graalvm.compiler.nodes.ValueNode v1
        start local 2 // org.graalvm.compiler.nodes.ValueNode v2
        start local 3 // org.graalvm.compiler.nodes.NodeView view
         0: .line 135
            aload 0 /* graph */
            aload 1 /* v1 */
            aload 2 /* v2 */
            aload 3 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.AddNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            areturn
        end local 3 // org.graalvm.compiler.nodes.NodeView view
        end local 2 // org.graalvm.compiler.nodes.ValueNode v2
        end local 1 // org.graalvm.compiler.nodes.ValueNode v1
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    1     1     v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2     v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     3   view  Lorg/graalvm/compiler/nodes/NodeView;
    MethodParameters:
       Name  Flags
      graph  
      v1     
      v2     
      view   

  public static org.graalvm.compiler.nodes.ValueNode add(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
        start local 2 // org.graalvm.compiler.nodes.NodeView view
         0: .line 139
            aload 0 /* v1 */
            aload 1 /* v2 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.AddNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.NodeView view
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2  view  Lorg/graalvm/compiler/nodes/NodeView;
    MethodParameters:
      Name  Flags
      v1    
      v2    
      view  

  public static org.graalvm.compiler.nodes.ValueNode add(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;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
         0: .line 143
            aload 0 /* v1 */
            aload 1 /* v2 */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      v1    
      v2    

  public static org.graalvm.compiler.nodes.ValueNode mul(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 1 // org.graalvm.compiler.nodes.ValueNode v1
        start local 2 // org.graalvm.compiler.nodes.ValueNode v2
        start local 3 // org.graalvm.compiler.nodes.NodeView view
         0: .line 147
            aload 0 /* graph */
            aload 1 /* v1 */
            aload 2 /* v2 */
            aload 3 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.MulNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            areturn
        end local 3 // org.graalvm.compiler.nodes.NodeView view
        end local 2 // org.graalvm.compiler.nodes.ValueNode v2
        end local 1 // org.graalvm.compiler.nodes.ValueNode v1
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    1     1     v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2     v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     3   view  Lorg/graalvm/compiler/nodes/NodeView;
    MethodParameters:
       Name  Flags
      graph  
      v1     
      v2     
      view   

  public static org.graalvm.compiler.nodes.ValueNode mul(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
        start local 2 // org.graalvm.compiler.nodes.NodeView view
         0: .line 151
            aload 0 /* v1 */
            aload 1 /* v2 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.MulNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.NodeView view
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2  view  Lorg/graalvm/compiler/nodes/NodeView;
    MethodParameters:
      Name  Flags
      v1    
      v2    
      view  

  public static org.graalvm.compiler.nodes.ValueNode mul(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;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
         0: .line 155
            aload 0 /* v1 */
            aload 1 /* v2 */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.mul:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      v1    
      v2    

  public static org.graalvm.compiler.nodes.ValueNode sub(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 1 // org.graalvm.compiler.nodes.ValueNode v1
        start local 2 // org.graalvm.compiler.nodes.ValueNode v2
        start local 3 // org.graalvm.compiler.nodes.NodeView view
         0: .line 159
            aload 0 /* graph */
            aload 1 /* v1 */
            aload 2 /* v2 */
            aload 3 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.SubNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            areturn
        end local 3 // org.graalvm.compiler.nodes.NodeView view
        end local 2 // org.graalvm.compiler.nodes.ValueNode v2
        end local 1 // org.graalvm.compiler.nodes.ValueNode v1
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    1     1     v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2     v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     3   view  Lorg/graalvm/compiler/nodes/NodeView;
    MethodParameters:
       Name  Flags
      graph  
      v1     
      v2     
      view   

  public static org.graalvm.compiler.nodes.ValueNode sub(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
        start local 2 // org.graalvm.compiler.nodes.NodeView view
         0: .line 163
            aload 0 /* v1 */
            aload 1 /* v2 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.SubNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 2 // org.graalvm.compiler.nodes.NodeView view
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     2  view  Lorg/graalvm/compiler/nodes/NodeView;
    MethodParameters:
      Name  Flags
      v1    
      v2    
      view  

  public static org.graalvm.compiler.nodes.ValueNode sub(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;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
         0: .line 167
            aload 0 /* v1 */
            aload 1 /* v2 */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    1     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      v1    
      v2    

  public static org.graalvm.compiler.nodes.ValueNode branchlessMin(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
        start local 2 // org.graalvm.compiler.nodes.NodeView view
         0: .line 171
            aload 0 /* v1 */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isDefaultConstant:()Z
            ifeq 2
            aload 1 /* v2 */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isDefaultConstant:()Z
            ifne 2
         1: .line 172
            aload 1 /* v2 */
            aload 0 /* v1 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.branchlessMin:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* v1 */
            aload 2 /* view */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
            istore 3 /* bits */
        start local 3 // int bits
         3: .line 175
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 4
            aload 1 /* v2 */
            aload 2 /* view */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
            iload 3 /* bits */
            if_icmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 176
      StackMap locals: int
      StackMap stack:
            aload 0 /* v1 */
            aload 1 /* v2 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* t1 */
        start local 4 // org.graalvm.compiler.nodes.ValueNode t1
         5: .line 177
            aload 4 /* t1 */
            iload 3 /* bits */
            iconst_1
            isub
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.RightShiftNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;ILorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* t2 */
        start local 5 // org.graalvm.compiler.nodes.ValueNode t2
         6: .line 178
            aload 4 /* t1 */
            aload 5 /* t2 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.AndNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* t3 */
        start local 6 // org.graalvm.compiler.nodes.ValueNode t3
         7: .line 179
            aload 1 /* v2 */
            aload 6 /* t3 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 6 // org.graalvm.compiler.nodes.ValueNode t3
        end local 5 // org.graalvm.compiler.nodes.ValueNode t2
        end local 4 // org.graalvm.compiler.nodes.ValueNode t1
        end local 3 // int bits
        end local 2 // org.graalvm.compiler.nodes.NodeView view
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0    8     2  view  Lorg/graalvm/compiler/nodes/NodeView;
            3    8     3  bits  I
            5    8     4    t1  Lorg/graalvm/compiler/nodes/ValueNode;
            6    8     5    t2  Lorg/graalvm/compiler/nodes/ValueNode;
            7    8     6    t3  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      v1    
      v2    
      view  

  public static org.graalvm.compiler.nodes.ValueNode branchlessMax(org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.graalvm.compiler.nodes.ValueNode v1
        start local 1 // org.graalvm.compiler.nodes.ValueNode v2
        start local 2 // org.graalvm.compiler.nodes.NodeView view
         0: .line 183
            aload 0 /* v1 */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isDefaultConstant:()Z
            ifeq 2
            aload 1 /* v2 */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isDefaultConstant:()Z
            ifne 2
         1: .line 184
            aload 1 /* v2 */
            aload 0 /* v1 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.branchlessMax:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         2: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* v1 */
            aload 2 /* view */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
            istore 3 /* bits */
        start local 3 // int bits
         3: .line 187
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 4
            aload 1 /* v2 */
            aload 2 /* view */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
            iload 3 /* bits */
            if_icmpeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 188
      StackMap locals: int
      StackMap stack:
            aload 1 /* v2 */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isDefaultConstant:()Z
            ifeq 6
         5: .line 190
            aload 0 /* v1 */
            aload 0 /* v1 */
            iload 3 /* bits */
            iconst_1
            isub
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.RightShiftNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;ILorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.calc.NotNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.AndNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         6: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* v1 */
            aload 1 /* v2 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 4 /* t1 */
        start local 4 // org.graalvm.compiler.nodes.ValueNode t1
         7: .line 193
            aload 4 /* t1 */
            iload 3 /* bits */
            iconst_1
            isub
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.RightShiftNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;ILorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 5 /* t2 */
        start local 5 // org.graalvm.compiler.nodes.ValueNode t2
         8: .line 194
            aload 4 /* t1 */
            aload 5 /* t2 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.AndNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* t3 */
        start local 6 // org.graalvm.compiler.nodes.ValueNode t3
         9: .line 195
            aload 0 /* v1 */
            aload 6 /* t3 */
            aload 2 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 6 // org.graalvm.compiler.nodes.ValueNode t3
        end local 5 // org.graalvm.compiler.nodes.ValueNode t2
        end local 4 // org.graalvm.compiler.nodes.ValueNode t1
        end local 3 // int bits
        end local 2 // org.graalvm.compiler.nodes.NodeView view
        end local 1 // org.graalvm.compiler.nodes.ValueNode v2
        end local 0 // org.graalvm.compiler.nodes.ValueNode v1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0    v1  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     1    v2  Lorg/graalvm/compiler/nodes/ValueNode;
            0   10     2  view  Lorg/graalvm/compiler/nodes/NodeView;
            3   10     3  bits  I
            7   10     4    t1  Lorg/graalvm/compiler/nodes/ValueNode;
            8   10     5    t2  Lorg/graalvm/compiler/nodes/ValueNode;
            9   10     6    t3  Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
      Name  Flags
      v1    
      v2    
      view  

  private static org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch findReassociate(org.graalvm.compiler.nodes.calc.BinaryNode, org.graalvm.compiler.graph.iterators.NodePredicate);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryNode binary
        start local 1 // org.graalvm.compiler.graph.iterators.NodePredicate criterion
         0: .line 227
            aload 1 /* criterion */
            aload 0 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodePredicate.apply:(Lorg/graalvm/compiler/graph/Node;)Z
            istore 2 /* resultX */
        start local 2 // boolean resultX
         1: .line 228
            aload 1 /* criterion */
            aload 0 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodePredicate.apply:(Lorg/graalvm/compiler/graph/Node;)Z
            istore 3 /* resultY */
        start local 3 // boolean resultY
         2: .line 229
            iload 2 /* resultX */
            ifeq 4
            iload 3 /* resultY */
            ifne 4
         3: .line 230
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            areturn
         4: .line 232
      StackMap locals: int int
      StackMap stack:
            iload 2 /* resultX */
            ifne 6
            iload 3 /* resultY */
            ifeq 6
         5: .line 233
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            areturn
         6: .line 235
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // boolean resultY
        end local 2 // boolean resultX
        end local 1 // org.graalvm.compiler.graph.iterators.NodePredicate criterion
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryNode binary
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0     binary  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
            0    7     1  criterion  Lorg/graalvm/compiler/graph/iterators/NodePredicate;
            1    7     2    resultX  Z
            2    7     3    resultY  Z
    Signature: (Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
    MethodParameters:
           Name  Flags
      binary     
      criterion  

  public static org.graalvm.compiler.nodes.ValueNode reassociate(org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<?>, org.graalvm.compiler.graph.iterators.NodePredicate, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.NodeView);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=19, args_size=5
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode node
        start local 1 // org.graalvm.compiler.graph.iterators.NodePredicate criterion
        start local 2 // org.graalvm.compiler.nodes.ValueNode forX
        start local 3 // org.graalvm.compiler.nodes.ValueNode forY
        start local 4 // org.graalvm.compiler.nodes.NodeView view
         0: .line 265
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 1
            aload 0 /* node */
            aload 2 /* forX */
            aload 3 /* forY */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            invokevirtual org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp.isAssociative:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            aload 1 /* criterion */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.findReassociate:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            astore 5 /* match1 */
        start local 5 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match1
         2: .line 267
            aload 5 /* match1 */
            ifnonnull 4
         3: .line 268
            aload 0 /* node */
            areturn
         4: .line 270
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch
      StackMap stack:
            aload 5 /* match1 */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getOtherValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* otherValue */
        start local 6 // org.graalvm.compiler.nodes.ValueNode otherValue
         5: .line 271
            iconst_0
            istore 7 /* addSub */
        start local 7 // boolean addSub
         6: .line 272
            iconst_0
            istore 8 /* subAdd */
        start local 8 // boolean subAdd
         7: .line 273
            aload 6 /* otherValue */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 15
         8: .line 274
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 11
            aload 6 /* otherValue */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 11
         9: .line 275
            iconst_1
            istore 7 /* addSub */
        10: .line 276
            goto 15
      StackMap locals: org.graalvm.compiler.nodes.ValueNode int int
      StackMap stack:
        11: aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 14
            aload 6 /* otherValue */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 14
        12: .line 277
            iconst_1
            istore 8 /* subAdd */
        13: .line 278
            goto 15
        14: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            areturn
        15: .line 282
      StackMap locals:
      StackMap stack:
            aload 6 /* otherValue */
            checkcast org.graalvm.compiler.nodes.calc.BinaryNode
            astore 9 /* other */
        start local 9 // org.graalvm.compiler.nodes.calc.BinaryNode other
        16: .line 283
            aload 9 /* other */
            aload 1 /* criterion */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.findReassociate:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            astore 10 /* match2 */
        start local 10 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match2
        17: .line 284
            aload 10 /* match2 */
            ifnonnull 19
        18: .line 285
            aload 0 /* node */
            areturn
        19: .line 287
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch
      StackMap stack:
            iconst_0
            istore 11 /* invertA */
        start local 11 // boolean invertA
        20: .line 288
            iconst_0
            istore 12 /* aSub */
        start local 12 // boolean aSub
        21: .line 289
            iconst_0
            istore 13 /* invertM1 */
        start local 13 // boolean invertM1
        22: .line 290
            iconst_0
            istore 14 /* invertM2 */
        start local 14 // boolean invertM2
        23: .line 291
            iload 7 /* addSub */
            ifeq 31
        24: .line 292
            aload 10 /* match2 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 25
            iconst_1
            goto 26
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode org.graalvm.compiler.graph.iterators.NodePredicate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch org.graalvm.compiler.nodes.ValueNode int int org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch int int int int
      StackMap stack:
        25: iconst_0
      StackMap locals:
      StackMap stack: int
        26: istore 14 /* invertM2 */
        27: .line 293
            iload 14 /* invertM2 */
            ifeq 28
            iconst_0
            goto 29
      StackMap locals:
      StackMap stack:
        28: iconst_1
      StackMap locals:
      StackMap stack: int
        29: istore 11 /* invertA */
        30: .line 294
            goto 54
      StackMap locals:
      StackMap stack:
        31: iload 8 /* subAdd */
            ifeq 39
        32: .line 295
            aload 5 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 33
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: dup
            istore 14 /* invertM2 */
            istore 11 /* invertA */
        35: .line 296
            iload 14 /* invertM2 */
            ifeq 36
            iconst_0
            goto 37
      StackMap locals:
      StackMap stack:
        36: iconst_1
      StackMap locals:
      StackMap stack: int
        37: istore 13 /* invertM1 */
        38: .line 297
            goto 54
      StackMap locals:
      StackMap stack:
        39: aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 54
            aload 9 /* other */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 54
        40: .line 298
            aload 5 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 41
            iconst_1
            goto 42
      StackMap locals:
      StackMap stack:
        41: iconst_0
      StackMap locals:
      StackMap stack: int
        42: aload 10 /* match2 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 43
            iconst_1
            goto 44
      StackMap locals:
      StackMap stack: int
        43: iconst_0
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode org.graalvm.compiler.graph.iterators.NodePredicate org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.NodeView org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch org.graalvm.compiler.nodes.ValueNode int int org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch int int int int
      StackMap stack: int int
        44: ixor
            istore 11 /* invertA */
        45: .line 299
            aload 5 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 46
            aload 10 /* match2 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 46
            iconst_1
            goto 47
      StackMap locals:
      StackMap stack:
        46: iconst_0
      StackMap locals:
      StackMap stack: int
        47: istore 12 /* aSub */
        48: .line 300
            aload 5 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 49
            aload 10 /* match2 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 49
            iconst_1
            goto 50
      StackMap locals:
      StackMap stack:
        49: iconst_0
      StackMap locals:
      StackMap stack: int
        50: istore 13 /* invertM1 */
        51: .line 301
            aload 5 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 52
            aload 10 /* match2 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 52
            iconst_1
            goto 53
      StackMap locals:
      StackMap stack:
        52: iconst_0
      StackMap locals:
      StackMap stack: int
        53: istore 14 /* invertM2 */
        54: .line 303
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 57
            iload 13 /* invertM1 */
            ifeq 55
            iload 14 /* invertM2 */
            ifne 56
      StackMap locals:
      StackMap stack:
        55: iload 11 /* invertA */
            ifeq 57
            iload 12 /* aSub */
            ifeq 57
      StackMap locals:
      StackMap stack:
        56: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        57: .line 304
      StackMap locals:
      StackMap stack:
            aload 5 /* match1 */
            aload 0 /* node */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 15 /* m1 */
        start local 15 // org.graalvm.compiler.nodes.ValueNode m1
        58: .line 305
            aload 10 /* match2 */
            aload 9 /* other */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 16 /* m2 */
        start local 16 // org.graalvm.compiler.nodes.ValueNode m2
        59: .line 306
            aload 10 /* match2 */
            aload 9 /* other */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getOtherValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 17 /* a */
        start local 17 // org.graalvm.compiler.nodes.ValueNode a
        60: .line 307
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifne 61
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 73
        61: .line 309
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iload 13 /* invertM1 */
            ifeq 64
        62: .line 310
            aload 16 /* m2 */
            aload 15 /* m1 */
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 18 /* associated */
        start local 18 // org.graalvm.compiler.nodes.ValueNode associated
        63: .line 311
            goto 68
        end local 18 // org.graalvm.compiler.nodes.ValueNode associated
      StackMap locals:
      StackMap stack:
        64: iload 14 /* invertM2 */
            ifeq 67
        65: .line 312
            aload 15 /* m1 */
            aload 16 /* m2 */
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 18 /* associated */
        start local 18 // org.graalvm.compiler.nodes.ValueNode associated
        66: .line 313
            goto 68
        end local 18 // org.graalvm.compiler.nodes.ValueNode associated
        67: .line 314
      StackMap locals:
      StackMap stack:
            aload 15 /* m1 */
            aload 16 /* m2 */
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 18 /* associated */
        start local 18 // org.graalvm.compiler.nodes.ValueNode associated
        68: .line 316
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iload 11 /* invertA */
            ifeq 70
        69: .line 317
            aload 18 /* associated */
            aload 17 /* a */
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        70: .line 319
      StackMap locals:
      StackMap stack:
            iload 12 /* aSub */
            ifeq 72
        71: .line 320
            aload 17 /* a */
            aload 18 /* associated */
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        72: .line 322
      StackMap locals:
      StackMap stack:
            aload 17 /* a */
            aload 18 /* associated */
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 18 // org.graalvm.compiler.nodes.ValueNode associated
        73: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.MulNode
            ifeq 75
        74: .line 324
            aload 17 /* a */
            aload 15 /* m1 */
            aload 16 /* m2 */
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.AddNode.mul:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 4 /* view */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.mul:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        75: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.AndNode
            ifeq 77
        76: .line 326
            new org.graalvm.compiler.nodes.calc.AndNode
            dup
            aload 17 /* a */
            new org.graalvm.compiler.nodes.calc.AndNode
            dup
            aload 15 /* m1 */
            aload 16 /* m2 */
            invokespecial org.graalvm.compiler.nodes.calc.AndNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokespecial org.graalvm.compiler.nodes.calc.AndNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            areturn
        77: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.OrNode
            ifeq 79
        78: .line 328
            new org.graalvm.compiler.nodes.calc.OrNode
            dup
            aload 17 /* a */
            new org.graalvm.compiler.nodes.calc.OrNode
            dup
            aload 15 /* m1 */
            aload 16 /* m2 */
            invokespecial org.graalvm.compiler.nodes.calc.OrNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokespecial org.graalvm.compiler.nodes.calc.OrNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            areturn
        79: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.XorNode
            ifeq 81
        80: .line 330
            new org.graalvm.compiler.nodes.calc.XorNode
            dup
            aload 17 /* a */
            new org.graalvm.compiler.nodes.calc.XorNode
            dup
            aload 15 /* m1 */
            aload 16 /* m2 */
            invokespecial org.graalvm.compiler.nodes.calc.XorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokespecial org.graalvm.compiler.nodes.calc.XorNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            areturn
        81: .line 332
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 17 // org.graalvm.compiler.nodes.ValueNode a
        end local 16 // org.graalvm.compiler.nodes.ValueNode m2
        end local 15 // org.graalvm.compiler.nodes.ValueNode m1
        end local 14 // boolean invertM2
        end local 13 // boolean invertM1
        end local 12 // boolean aSub
        end local 11 // boolean invertA
        end local 10 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match2
        end local 9 // org.graalvm.compiler.nodes.calc.BinaryNode other
        end local 8 // boolean subAdd
        end local 7 // boolean addSub
        end local 6 // org.graalvm.compiler.nodes.ValueNode otherValue
        end local 5 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match1
        end local 4 // org.graalvm.compiler.nodes.NodeView view
        end local 3 // org.graalvm.compiler.nodes.ValueNode forY
        end local 2 // org.graalvm.compiler.nodes.ValueNode forX
        end local 1 // org.graalvm.compiler.graph.iterators.NodePredicate criterion
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode node
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   82     0        node  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
            0   82     1   criterion  Lorg/graalvm/compiler/graph/iterators/NodePredicate;
            0   82     2        forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0   82     3        forY  Lorg/graalvm/compiler/nodes/ValueNode;
            0   82     4        view  Lorg/graalvm/compiler/nodes/NodeView;
            2   82     5      match1  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            5   82     6  otherValue  Lorg/graalvm/compiler/nodes/ValueNode;
            6   82     7      addSub  Z
            7   82     8      subAdd  Z
           16   82     9       other  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
           17   82    10      match2  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
           20   82    11     invertA  Z
           21   82    12        aSub  Z
           22   82    13    invertM1  Z
           23   82    14    invertM2  Z
           58   82    15          m1  Lorg/graalvm/compiler/nodes/ValueNode;
           59   82    16          m2  Lorg/graalvm/compiler/nodes/ValueNode;
           60   82    17           a  Lorg/graalvm/compiler/nodes/ValueNode;
           63   64    18  associated  Lorg/graalvm/compiler/nodes/ValueNode;
           66   67    18  associated  Lorg/graalvm/compiler/nodes/ValueNode;
           68   73    18  associated  Lorg/graalvm/compiler/nodes/ValueNode;
    Signature: (Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;Lorg/graalvm/compiler/graph/iterators/NodePredicate;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
    MethodParameters:
           Name  Flags
      node       
      criterion  
      forX       
      forY       
      view       

  public org.graalvm.compiler.nodes.calc.BinaryNode maybeCommuteInputs();
    descriptor: ()Lorg/graalvm/compiler/nodes/calc/BinaryNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
         0: .line 346
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            instanceof org.graalvm.compiler.graph.spi.Canonicalizable$BinaryCommutative
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 9
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 2
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getId:()I
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getId:()I
            if_icmple 9
         2: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
            astore 1 /* tmp */
        start local 1 // org.graalvm.compiler.nodes.ValueNode tmp
         3: .line 349
            aload 0 /* this */
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
            putfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.x:Lorg/graalvm/compiler/nodes/ValueNode;
         4: .line 350
            aload 0 /* this */
            aload 1 /* tmp */
            putfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
         5: .line 351
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ifnull 9
         6: .line 353
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.findDuplicate:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.calc.BinaryNode
            astore 2 /* duplicate */
        start local 2 // org.graalvm.compiler.nodes.calc.BinaryNode duplicate
         7: .line 354
            aload 2 /* duplicate */
            ifnull 9
         8: .line 355
            aload 2 /* duplicate */
            areturn
        end local 2 // org.graalvm.compiler.nodes.calc.BinaryNode duplicate
        end local 1 // org.graalvm.compiler.nodes.ValueNode tmp
         9: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            3    9     1        tmp  Lorg/graalvm/compiler/nodes/ValueNode;
            7    9     2  duplicate  Lorg/graalvm/compiler/nodes/calc/BinaryNode;

  protected boolean shouldSwapInputs(org.graalvm.compiler.nodes.spi.NodeValueMap);
    descriptor: (Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
        start local 1 // org.graalvm.compiler.nodes.spi.NodeValueMap nodeValueMap
         0: .line 372
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            aload 1 /* nodeValueMap */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.hasUsagesOtherThan:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Z
            istore 2 /* xHasOtherUsages */
        start local 2 // boolean xHasOtherUsages
         1: .line 373
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 0 /* this */
            aload 1 /* nodeValueMap */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.hasUsagesOtherThan:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/spi/NodeValueMap;)Z
            istore 3 /* yHasOtherUsages */
        start local 3 // boolean yHasOtherUsages
         2: .line 375
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifne 7
            iload 3 /* yHasOtherUsages */
            ifne 7
         3: .line 376
            iload 2 /* xHasOtherUsages */
            iload 3 /* yHasOtherUsages */
            if_icmpne 6
         4: .line 377
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            instanceof org.graalvm.compiler.nodes.ValuePhiNode
            ifeq 5
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.inputs:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            aload 0 /* this */
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 5
            iconst_1
            ireturn
      StackMap locals: int int
      StackMap stack:
         5: iconst_0
            ireturn
         6: .line 379
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 382
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean yHasOtherUsages
        end local 2 // boolean xHasOtherUsages
        end local 1 // org.graalvm.compiler.nodes.spi.NodeValueMap nodeValueMap
        end local 0 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0    8     1     nodeValueMap  Lorg/graalvm/compiler/nodes/spi/NodeValueMap;
            1    8     2  xHasOtherUsages  Z
            2    8     3  yHasOtherUsages  Z
    MethodParameters:
              Name  Flags
      nodeValueMap  

  public org.graalvm.compiler.core.common.type.ArithmeticOpTable$Op getArithmeticOp();
    descriptor: ()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$Op;
    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.nodes.calc.BinaryArithmeticNode.getArithmeticOp:()Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.graalvm.compiler.graph.Node canonical(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.graph.Node, org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast org.graalvm.compiler.nodes.ValueNode
            aload 3
            checkcast org.graalvm.compiler.nodes.ValueNode
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.canonical:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <OP:Ljava/lang/Object;>Lorg/graalvm/compiler/nodes/calc/BinaryNode;Lorg/graalvm/compiler/nodes/ArithmeticOperation;Lorg/graalvm/compiler/nodes/spi/ArithmeticLIRLowerable;Lorg/graalvm/compiler/graph/spi/Canonicalizable$Binary<Lorg/graalvm/compiler/nodes/ValueNode;>;
SourceFile: "BinaryArithmeticNode.java"
NestMembers:
  org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch
InnerClasses:
  public abstract BinaryOp = org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp of org.graalvm.compiler.core.common.type.ArithmeticOpTable
  public abstract Op = org.graalvm.compiler.core.common.type.ArithmeticOpTable$Op of org.graalvm.compiler.core.common.type.ArithmeticOpTable
  public abstract Binary = org.graalvm.compiler.graph.spi.Canonicalizable$Binary of org.graalvm.compiler.graph.spi.Canonicalizable
  public abstract BinaryCommutative = org.graalvm.compiler.graph.spi.Canonicalizable$BinaryCommutative of org.graalvm.compiler.graph.spi.Canonicalizable
  private final ReassociateMatch = org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch of org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_1:Lorg/graalvm/compiler/nodeinfo/NodeCycles;, size = org.graalvm.compiler.nodeinfo.NodeSize.SIZE_1:Lorg/graalvm/compiler/nodeinfo/NodeSize;)