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

  protected final org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction<OP> getOp;
    descriptor: Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction<TOP;>;

  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 53
            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 55
            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.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction<OP>, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;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.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction getOp
        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 /* getOp */
            aload 3 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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;
            invokeinterface org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.type.ArithmeticOpTable$BinaryOp
            aload 3 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* y */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 64
            aload 0 /* this */
            aload 2 /* getOp */
            putfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;
         2: .line 65
            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.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction getOp
        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    3     0   this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0    3     1      c  Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;
            0    3     2  getOp  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction<TOP;>;
            0    3     3      x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     4      y  Lorg/graalvm/compiler/nodes/ValueNode;
    Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;>;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction<TOP;>;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    MethodParameters:
       Name  Flags
      c      
      getOp  
      x      
      y      

  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 68
            aload 1 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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;
            astore 3 /* table */
        start local 3 // org.graalvm.compiler.core.common.type.ArithmeticOpTable table
         1: .line 69
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 2
            aload 3 /* table */
            aload 2 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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;
            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 70
      StackMap locals: org.graalvm.compiler.core.common.type.ArithmeticOpTable
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getOp:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$SerializableBinaryFunction;
            aload 3 /* table */
            invokeinterface org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.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 75
            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 79
            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=4, locals=5, 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 84
            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 */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            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/ConstantNode;
            astore 4 /* result */
        start local 4 // org.graalvm.compiler.nodes.ValueNode result
         1: .line 85
            aload 4 /* result */
            ifnull 3
         2: .line 86
            aload 4 /* result */
            areturn
         3: .line 88
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 4 // org.graalvm.compiler.nodes.ValueNode result
        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    4     0    this  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<TOP;>;
            0    4     1    tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0    4     2    forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3    forY  Lorg/graalvm/compiler/nodes/ValueNode;
            1    4     4  result  Lorg/graalvm/compiler/nodes/ValueNode;
    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);
    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/ConstantNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        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
         0: .line 92
            aload 1 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 3
            aload 2 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 3
         1: .line 93
            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 4 /* ret */
        start local 4 // jdk.vm.ci.meta.Constant ret
         2: .line 94
            aload 3 /* stamp */
            aload 4 /* 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 4 // jdk.vm.ci.meta.Constant ret
         3: .line 96
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        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    4     0     op  Lorg/graalvm/compiler/core/common/type/ArithmeticOpTable$BinaryOp<TOP;>;
            0    4     1   forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     2   forY  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3  stamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    3     4    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/ConstantNode;
    MethodParameters:
       Name  Flags
      op     
      forX   
      forY   
      stamp  

  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 101
            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;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()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 102
      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.calc.AddNode add(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/AddNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        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
         0: .line 106
            aload 0 /* graph */
            new org.graalvm.compiler.nodes.calc.AddNode
            dup
            aload 1 /* v1 */
            aload 2 /* v2 */
            invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.calc.AddNode
            areturn
        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;
    MethodParameters:
       Name  Flags
      graph  
      v1     
      v2     

  public static org.graalvm.compiler.nodes.calc.AddNode 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/calc/AddNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, 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 110
            new org.graalvm.compiler.nodes.calc.AddNode
            dup
            aload 0 /* v1 */
            aload 1 /* v2 */
            invokespecial org.graalvm.compiler.nodes.calc.AddNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            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.calc.MulNode mul(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/MulNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        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
         0: .line 114
            aload 0 /* graph */
            new org.graalvm.compiler.nodes.calc.MulNode
            dup
            aload 1 /* v1 */
            aload 2 /* v2 */
            invokespecial org.graalvm.compiler.nodes.calc.MulNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.calc.MulNode
            areturn
        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;
    MethodParameters:
       Name  Flags
      graph  
      v1     
      v2     

  public static org.graalvm.compiler.nodes.calc.MulNode 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/calc/MulNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, 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 118
            new org.graalvm.compiler.nodes.calc.MulNode
            dup
            aload 0 /* v1 */
            aload 1 /* v2 */
            invokespecial org.graalvm.compiler.nodes.calc.MulNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            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.calc.SubNode sub(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        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
         0: .line 122
            aload 0 /* graph */
            new org.graalvm.compiler.nodes.calc.SubNode
            dup
            aload 1 /* v1 */
            aload 2 /* v2 */
            invokespecial org.graalvm.compiler.nodes.calc.SubNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.calc.SubNode
            areturn
        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;
    MethodParameters:
       Name  Flags
      graph  
      v1     
      v2     

  public static org.graalvm.compiler.nodes.calc.SubNode 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/calc/SubNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, 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 126
            new org.graalvm.compiler.nodes.calc.SubNode
            dup
            aload 0 /* v1 */
            aload 1 /* v2 */
            invokespecial org.graalvm.compiler.nodes.calc.SubNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            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    

  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 157
            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 158
            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 159
            iload 2 /* resultX */
            ifeq 4
            iload 3 /* resultY */
            ifne 4
         3: .line 160
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            areturn
         4: .line 162
      StackMap locals: int int
      StackMap stack:
            iload 2 /* resultX */
            ifne 6
            iload 3 /* resultY */
            ifeq 6
         5: .line 163
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            areturn
         6: .line 165
      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.calc.BinaryArithmeticNode<?> reassociate(org.graalvm.compiler.nodes.calc.BinaryArithmeticNode<?>, org.graalvm.compiler.graph.iterators.NodePredicate, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    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/calc/BinaryArithmeticNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=18, args_size=4
        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
         0: .line 195
            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 196
      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 4 /* match1 */
        start local 4 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match1
         2: .line 197
            aload 4 /* match1 */
            ifnonnull 4
         3: .line 198
            aload 0 /* node */
            areturn
         4: .line 200
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch
      StackMap stack:
            aload 4 /* 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 5 /* otherValue */
        start local 5 // org.graalvm.compiler.nodes.ValueNode otherValue
         5: .line 201
            iconst_0
            istore 6 /* addSub */
        start local 6 // boolean addSub
         6: .line 202
            iconst_0
            istore 7 /* subAdd */
        start local 7 // boolean subAdd
         7: .line 203
            aload 5 /* 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 204
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 11
            aload 5 /* otherValue */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 11
         9: .line 205
            iconst_1
            istore 6 /* addSub */
        10: .line 206
            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 5 /* otherValue */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifeq 14
        12: .line 207
            iconst_1
            istore 7 /* subAdd */
        13: .line 208
            goto 15
        14: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            areturn
        15: .line 212
      StackMap locals:
      StackMap stack:
            aload 5 /* otherValue */
            checkcast org.graalvm.compiler.nodes.calc.BinaryNode
            astore 8 /* other */
        start local 8 // org.graalvm.compiler.nodes.calc.BinaryNode other
        16: .line 213
            aload 8 /* 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 9 /* match2 */
        start local 9 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match2
        17: .line 214
            aload 9 /* match2 */
            ifnonnull 19
        18: .line 215
            aload 0 /* node */
            areturn
        19: .line 217
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryNode org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch
      StackMap stack:
            iconst_0
            istore 10 /* invertA */
        start local 10 // boolean invertA
        20: .line 218
            iconst_0
            istore 11 /* aSub */
        start local 11 // boolean aSub
        21: .line 219
            iconst_0
            istore 12 /* invertM1 */
        start local 12 // boolean invertM1
        22: .line 220
            iconst_0
            istore 13 /* invertM2 */
        start local 13 // boolean invertM2
        23: .line 221
            iload 6 /* addSub */
            ifeq 31
        24: .line 222
            aload 9 /* 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.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 13 /* invertM2 */
        27: .line 223
            iload 13 /* invertM2 */
            ifeq 28
            iconst_0
            goto 29
      StackMap locals:
      StackMap stack:
        28: iconst_1
      StackMap locals:
      StackMap stack: int
        29: istore 10 /* invertA */
        30: .line 224
            goto 54
      StackMap locals:
      StackMap stack:
        31: iload 7 /* subAdd */
            ifeq 39
        32: .line 225
            aload 4 /* 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 13 /* invertM2 */
            istore 10 /* invertA */
        35: .line 226
            iload 13 /* invertM2 */
            ifeq 36
            iconst_0
            goto 37
      StackMap locals:
      StackMap stack:
        36: iconst_1
      StackMap locals:
      StackMap stack: int
        37: istore 12 /* invertM1 */
        38: .line 227
            goto 54
      StackMap locals:
      StackMap stack:
        39: aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 54
            aload 8 /* other */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 54
        40: .line 228
            aload 4 /* 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 9 /* 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.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 10 /* invertA */
        45: .line 229
            aload 4 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 46
            aload 9 /* 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 11 /* aSub */
        48: .line 230
            aload 4 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.y:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 49
            aload 9 /* 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 12 /* invertM1 */
        51: .line 231
            aload 4 /* match1 */
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.x:Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            if_acmpne 52
            aload 9 /* 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 13 /* invertM2 */
        54: .line 233
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.$assertionsDisabled:Z
            ifne 57
            iload 12 /* invertM1 */
            ifeq 55
            iload 13 /* invertM2 */
            ifne 56
      StackMap locals:
      StackMap stack:
        55: iload 10 /* invertA */
            ifeq 57
            iload 11 /* aSub */
            ifeq 57
      StackMap locals:
      StackMap stack:
        56: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        57: .line 234
      StackMap locals:
      StackMap stack:
            aload 4 /* 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 14 /* m1 */
        start local 14 // org.graalvm.compiler.nodes.ValueNode m1
        58: .line 235
            aload 9 /* match2 */
            aload 8 /* other */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 15 /* m2 */
        start local 15 // org.graalvm.compiler.nodes.ValueNode m2
        59: .line 236
            aload 9 /* match2 */
            aload 8 /* other */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch.getOtherValue:(Lorg/graalvm/compiler/nodes/calc/BinaryNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 16 /* a */
        start local 16 // org.graalvm.compiler.nodes.ValueNode a
        60: .line 237
            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 239
      StackMap locals: org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            iload 12 /* invertM1 */
            ifeq 64
        62: .line 240
            aload 15 /* m2 */
            aload 14 /* m1 */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
            astore 17 /* associated */
        start local 17 // org.graalvm.compiler.nodes.calc.BinaryNode associated
        63: .line 241
            goto 68
        end local 17 // org.graalvm.compiler.nodes.calc.BinaryNode associated
      StackMap locals:
      StackMap stack:
        64: iload 13 /* invertM2 */
            ifeq 67
        65: .line 242
            aload 14 /* m1 */
            aload 15 /* m2 */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
            astore 17 /* associated */
        start local 17 // org.graalvm.compiler.nodes.calc.BinaryNode associated
        66: .line 243
            goto 68
        end local 17 // org.graalvm.compiler.nodes.calc.BinaryNode associated
        67: .line 244
      StackMap locals:
      StackMap stack:
            aload 14 /* m1 */
            aload 15 /* m2 */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/AddNode;
            astore 17 /* associated */
        start local 17 // org.graalvm.compiler.nodes.calc.BinaryNode associated
        68: .line 246
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryNode
      StackMap stack:
            iload 10 /* invertA */
            ifeq 70
        69: .line 247
            aload 17 /* associated */
            aload 16 /* a */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
            areturn
        70: .line 249
      StackMap locals:
      StackMap stack:
            iload 11 /* aSub */
            ifeq 72
        71: .line 250
            aload 16 /* a */
            aload 17 /* associated */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.sub:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/SubNode;
            areturn
        72: .line 252
      StackMap locals:
      StackMap stack:
            aload 16 /* a */
            aload 17 /* associated */
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.add:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/AddNode;
            areturn
        end local 17 // org.graalvm.compiler.nodes.calc.BinaryNode associated
        73: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.MulNode
            ifeq 75
        74: .line 254
            aload 16 /* a */
            aload 14 /* m1 */
            aload 15 /* m2 */
            invokestatic org.graalvm.compiler.nodes.calc.AddNode.mul:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/MulNode;
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.mul:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/calc/MulNode;
            areturn
        75: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.AndNode
            ifeq 77
        76: .line 256
            new org.graalvm.compiler.nodes.calc.AndNode
            dup
            aload 16 /* a */
            new org.graalvm.compiler.nodes.calc.AndNode
            dup
            aload 14 /* m1 */
            aload 15 /* 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 257
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.OrNode
            ifeq 79
        78: .line 258
            new org.graalvm.compiler.nodes.calc.OrNode
            dup
            aload 16 /* a */
            new org.graalvm.compiler.nodes.calc.OrNode
            dup
            aload 14 /* m1 */
            aload 15 /* 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 259
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            instanceof org.graalvm.compiler.nodes.calc.XorNode
            ifeq 81
        80: .line 260
            new org.graalvm.compiler.nodes.calc.XorNode
            dup
            aload 16 /* a */
            new org.graalvm.compiler.nodes.calc.XorNode
            dup
            aload 14 /* m1 */
            aload 15 /* 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 262
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 16 // org.graalvm.compiler.nodes.ValueNode a
        end local 15 // org.graalvm.compiler.nodes.ValueNode m2
        end local 14 // org.graalvm.compiler.nodes.ValueNode m1
        end local 13 // boolean invertM2
        end local 12 // boolean invertM1
        end local 11 // boolean aSub
        end local 10 // boolean invertA
        end local 9 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match2
        end local 8 // org.graalvm.compiler.nodes.calc.BinaryNode other
        end local 7 // boolean subAdd
        end local 6 // boolean addSub
        end local 5 // org.graalvm.compiler.nodes.ValueNode otherValue
        end local 4 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$ReassociateMatch match1
        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;
            2   82     4      match1  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
            5   82     5  otherValue  Lorg/graalvm/compiler/nodes/ValueNode;
            6   82     6      addSub  Z
            7   82     7      subAdd  Z
           16   82     8       other  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
           17   82     9      match2  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode$ReassociateMatch;
           20   82    10     invertA  Z
           21   82    11        aSub  Z
           22   82    12    invertM1  Z
           23   82    13    invertM2  Z
           58   82    14          m1  Lorg/graalvm/compiler/nodes/ValueNode;
           59   82    15          m2  Lorg/graalvm/compiler/nodes/ValueNode;
           60   82    16           a  Lorg/graalvm/compiler/nodes/ValueNode;
           63   64    17  associated  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
           66   67    17  associated  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
           68   73    17  associated  Lorg/graalvm/compiler/nodes/calc/BinaryNode;
    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/calc/BinaryArithmeticNode<*>;
    MethodParameters:
           Name  Flags
      node       
      criterion  
      forX       
      forY       

  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 276
            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 277
      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.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 278
            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 279
            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 280
            aload 0 /* this */
            aload 1 /* tmp */
            putfield org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.y:Lorg/graalvm/compiler/nodes/ValueNode;
         5: .line 281
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ifnull 9
         6: .line 283
            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 284
            aload 2 /* duplicate */
            ifnull 9
         8: .line 285
            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 289
      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 302
            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 303
            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 305
            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 306
            iload 2 /* xHasOtherUsages */
            iload 3 /* yHasOtherUsages */
            if_icmpne 6
         4: .line 307
            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 309
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 312
      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  org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction
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 ValueNumberable = org.graalvm.compiler.graph.Node$ValueNumberable of org.graalvm.compiler.graph.Node
  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
  protected abstract SerializableBinaryFunction = org.graalvm.compiler.nodes.calc.BinaryArithmeticNode$SerializableBinaryFunction 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;)