public abstract class org.graalvm.compiler.nodes.calc.CompareNode extends org.graalvm.compiler.nodes.BinaryOpLogicNode implements 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.CompareNode
  super_class: org.graalvm.compiler.nodes.BinaryOpLogicNode
{
  public static final org.graalvm.compiler.graph.NodeClass<org.graalvm.compiler.nodes.calc.CompareNode> 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/CompareNode;>;

  protected final org.graalvm.compiler.core.common.calc.Condition condition;
    descriptor: Lorg/graalvm/compiler/core/common/calc/Condition;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final boolean unorderedIsTrue;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  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 55
            ldc Lorg/graalvm/compiler/nodes/calc/CompareNode;
            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.CompareNode.$assertionsDisabled:Z
         3: .line 57
            ldc Lorg/graalvm/compiler/nodes/calc/CompareNode;
            invokestatic org.graalvm.compiler.graph.NodeClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/NodeClass;
            putstatic org.graalvm.compiler.nodes.calc.CompareNode.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.CompareNode>, org.graalvm.compiler.core.common.calc.Condition, boolean, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/core/common/calc/Condition;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
        start local 1 // org.graalvm.compiler.graph.NodeClass c
        start local 2 // org.graalvm.compiler.core.common.calc.Condition condition
        start local 3 // boolean unorderedIsTrue
        start local 4 // org.graalvm.compiler.nodes.ValueNode x
        start local 5 // org.graalvm.compiler.nodes.ValueNode y
         0: .line 68
            aload 0 /* this */
            aload 1 /* c */
            aload 4 /* x */
            aload 5 /* y */
            invokespecial org.graalvm.compiler.nodes.BinaryOpLogicNode.<init>:(Lorg/graalvm/compiler/graph/NodeClass;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
         1: .line 69
            aload 0 /* this */
            aload 2 /* condition */
            putfield org.graalvm.compiler.nodes.calc.CompareNode.condition:Lorg/graalvm/compiler/core/common/calc/Condition;
         2: .line 70
            aload 0 /* this */
            iload 3 /* unorderedIsTrue */
            putfield org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:Z
         3: .line 71
            return
        end local 5 // org.graalvm.compiler.nodes.ValueNode y
        end local 4 // org.graalvm.compiler.nodes.ValueNode x
        end local 3 // boolean unorderedIsTrue
        end local 2 // org.graalvm.compiler.core.common.calc.Condition condition
        end local 1 // org.graalvm.compiler.graph.NodeClass c
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/graalvm/compiler/nodes/calc/CompareNode;
            0    4     1                c  Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/CompareNode;>;
            0    4     2        condition  Lorg/graalvm/compiler/core/common/calc/Condition;
            0    4     3  unorderedIsTrue  Z
            0    4     4                x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     5                y  Lorg/graalvm/compiler/nodes/ValueNode;
    Signature: (Lorg/graalvm/compiler/graph/NodeClass<+Lorg/graalvm/compiler/nodes/calc/CompareNode;>;Lorg/graalvm/compiler/core/common/calc/Condition;ZLorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    MethodParameters:
                 Name  Flags
      c                
      condition        
      unorderedIsTrue  
      x                
      y                

  public final org.graalvm.compiler.core.common.calc.Condition condition();
    descriptor: ()Lorg/graalvm/compiler/core/common/calc/Condition;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
         0: .line 79
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.CompareNode.condition:Lorg/graalvm/compiler/core/common/calc/Condition;
            areturn
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/calc/CompareNode;

  public final boolean unorderedIsTrue();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
         0: .line 88
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:Z
            ireturn
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/calc/CompareNode;

  private org.graalvm.compiler.nodes.ValueNode optimizeConditional(jdk.vm.ci.meta.Constant, org.graalvm.compiler.nodes.calc.ConditionalNode, jdk.vm.ci.meta.ConstantReflectionProvider, org.graalvm.compiler.core.common.calc.Condition);
    descriptor: (Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/nodes/calc/ConditionalNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
        start local 1 // jdk.vm.ci.meta.Constant constant
        start local 2 // org.graalvm.compiler.nodes.calc.ConditionalNode conditionalNode
        start local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 4 // org.graalvm.compiler.core.common.calc.Condition cond
         0: .line 92
            aload 2 /* conditionalNode */
            invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.trueValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            astore 5 /* trueConstant */
        start local 5 // jdk.vm.ci.meta.Constant trueConstant
         1: .line 93
            aload 2 /* conditionalNode */
            invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.falseValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            astore 6 /* falseConstant */
        start local 6 // jdk.vm.ci.meta.Constant falseConstant
         2: .line 95
            aload 6 /* falseConstant */
            ifnull 12
            aload 5 /* trueConstant */
            ifnull 12
            aload 3 /* constantReflection */
            ifnull 12
         3: .line 96
            aload 4 /* cond */
            aload 5 /* trueConstant */
            aload 1 /* constant */
            aload 3 /* constantReflection */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.foldCondition:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Z
            istore 7 /* trueResult */
        start local 7 // boolean trueResult
         4: .line 97
            aload 4 /* cond */
            aload 6 /* falseConstant */
            aload 1 /* constant */
            aload 3 /* constantReflection */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.foldCondition:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Z
            istore 8 /* falseResult */
        start local 8 // boolean falseResult
         5: .line 99
            iload 7 /* trueResult */
            iload 8 /* falseResult */
            if_icmpne 7
         6: .line 100
            iload 7 /* trueResult */
            invokestatic org.graalvm.compiler.nodes.LogicConstantNode.forBoolean:(Z)Lorg/graalvm/compiler/nodes/LogicConstantNode;
            areturn
         7: .line 102
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.calc.ConditionalNode jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.core.common.calc.Condition jdk.vm.ci.meta.Constant jdk.vm.ci.meta.Constant int int
      StackMap stack:
            iload 7 /* trueResult */
            ifeq 10
         8: .line 103
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 9
            iload 8 /* falseResult */
            ifeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 104
      StackMap locals:
      StackMap stack:
            aload 2 /* conditionalNode */
            invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
            areturn
        10: .line 106
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 11
            iload 8 /* falseResult */
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 107
      StackMap locals:
      StackMap stack:
            aload 2 /* conditionalNode */
            invokevirtual org.graalvm.compiler.nodes.calc.ConditionalNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
            invokestatic org.graalvm.compiler.nodes.LogicNegationNode.create:(Lorg/graalvm/compiler/nodes/LogicNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            areturn
        end local 8 // boolean falseResult
        end local 7 // boolean trueResult
        12: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 6 // jdk.vm.ci.meta.Constant falseConstant
        end local 5 // jdk.vm.ci.meta.Constant trueConstant
        end local 4 // org.graalvm.compiler.core.common.calc.Condition cond
        end local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 2 // org.graalvm.compiler.nodes.calc.ConditionalNode conditionalNode
        end local 1 // jdk.vm.ci.meta.Constant constant
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                this  Lorg/graalvm/compiler/nodes/calc/CompareNode;
            0   13     1            constant  Ljdk/vm/ci/meta/Constant;
            0   13     2     conditionalNode  Lorg/graalvm/compiler/nodes/calc/ConditionalNode;
            0   13     3  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0   13     4                cond  Lorg/graalvm/compiler/core/common/calc/Condition;
            1   13     5        trueConstant  Ljdk/vm/ci/meta/Constant;
            2   13     6       falseConstant  Ljdk/vm/ci/meta/Constant;
            4   12     7          trueResult  Z
            5   12     8         falseResult  Z
    MethodParameters:
                    Name  Flags
      constant            
      conditionalNode     
      constantReflection  
      cond                

  protected org.graalvm.compiler.nodes.ValueNode optimizeNormalizeCmp(jdk.vm.ci.meta.Constant, org.graalvm.compiler.nodes.calc.NormalizeCompareNode, boolean);
    descriptor: (Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/nodes/calc/NormalizeCompareNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
        start local 1 // jdk.vm.ci.meta.Constant constant
        start local 2 // org.graalvm.compiler.nodes.calc.NormalizeCompareNode normalizeNode
        start local 3 // boolean mirrored
         0: .line 116
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc "NormalizeCompareNode connected to %s (%s %s %s)"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 1 /* constant */
            aastore
            dup
            iconst_2
            aload 2 /* normalizeNode */
            aastore
            dup
            iconst_3
            iload 3 /* mirrored */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 3 // boolean mirrored
        end local 2 // org.graalvm.compiler.nodes.calc.NormalizeCompareNode normalizeNode
        end local 1 // jdk.vm.ci.meta.Constant constant
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/graalvm/compiler/nodes/calc/CompareNode;
            0    1     1       constant  Ljdk/vm/ci/meta/Constant;
            0    1     2  normalizeNode  Lorg/graalvm/compiler/nodes/calc/NormalizeCompareNode;
            0    1     3       mirrored  Z
    MethodParameters:
               Name  Flags
      constant       
      normalizeNode  
      mirrored       

  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=11, args_size=4
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode 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 121
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            astore 4 /* constantReflection */
        start local 4 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         1: .line 122
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            aload 2 /* forX */
            aload 3 /* forY */
            aload 4 /* constantReflection */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.unorderedIsTrue:()Z
            invokestatic org.graalvm.compiler.nodes.calc.CompareNode.tryConstantFold:(Lorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 5 /* constantCondition */
        start local 5 // org.graalvm.compiler.nodes.LogicNode constantCondition
         2: .line 123
            aload 5 /* constantCondition */
            ifnull 4
         3: .line 124
            aload 5 /* constantCondition */
            areturn
         4: .line 127
      StackMap locals: jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
            aload 2 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 8
         5: .line 128
            aload 0 /* this */
            aload 1 /* tool */
            aload 2 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            aload 3 /* forY */
            iconst_1
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.canonicalizeSymmetricConstant:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            dup
            astore 6 /* result */
        start local 6 // org.graalvm.compiler.nodes.ValueNode result
         6: aload 0 /* this */
            if_acmpeq 28
         7: .line 129
            aload 6 /* result */
            areturn
        end local 6 // org.graalvm.compiler.nodes.ValueNode result
         8: .line 131
      StackMap locals:
      StackMap stack:
            aload 3 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 12
         9: .line 132
            aload 0 /* this */
            aload 1 /* tool */
            aload 3 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asConstant:()Ljdk/vm/ci/meta/Constant;
            aload 2 /* forX */
            iconst_0
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.canonicalizeSymmetricConstant:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            dup
            astore 6 /* result */
        start local 6 // org.graalvm.compiler.nodes.ValueNode result
        10: aload 0 /* this */
            if_acmpeq 28
        11: .line 133
            aload 6 /* result */
            areturn
        end local 6 // org.graalvm.compiler.nodes.ValueNode result
        12: .line 135
      StackMap locals:
      StackMap stack:
            aload 2 /* forX */
            instanceof org.graalvm.compiler.nodes.calc.ConvertNode
            ifeq 28
            aload 3 /* forY */
            instanceof org.graalvm.compiler.nodes.calc.ConvertNode
            ifeq 28
        13: .line 136
            aload 2 /* forX */
            checkcast org.graalvm.compiler.nodes.calc.ConvertNode
            astore 7 /* convertX */
        start local 7 // org.graalvm.compiler.nodes.calc.ConvertNode convertX
        14: .line 137
            aload 3 /* forY */
            checkcast org.graalvm.compiler.nodes.calc.ConvertNode
            astore 8 /* convertY */
        start local 8 // org.graalvm.compiler.nodes.calc.ConvertNode convertY
        15: .line 138
            aload 7 /* convertX */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.preservesOrder:(Lorg/graalvm/compiler/core/common/calc/Condition;)Z
            ifeq 28
            aload 8 /* convertY */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.preservesOrder:(Lorg/graalvm/compiler/core/common/calc/Condition;)Z
            ifeq 28
            aload 7 /* convertX */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 8 /* convertY */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()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 28
        16: .line 139
            iconst_1
            istore 9 /* supported */
        start local 9 // boolean supported
        17: .line 140
            aload 7 /* convertX */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.IntegerStamp
            ifeq 20
        18: .line 141
            aload 7 /* convertX */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            astore 10 /* intStamp */
        start local 10 // org.graalvm.compiler.core.common.type.IntegerStamp intStamp
        19: .line 142
            aload 1 /* tool */
            aload 10 /* intStamp */
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.supportSubwordCompare:(I)Z
            istore 9 /* supported */
        end local 10 // org.graalvm.compiler.core.common.type.IntegerStamp intStamp
        20: .line 145
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.spi.CanonicalizerTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.nodes.LogicNode top org.graalvm.compiler.nodes.calc.ConvertNode org.graalvm.compiler.nodes.calc.ConvertNode int
      StackMap stack:
            iload 9 /* supported */
            ifeq 28
        21: .line 146
            aload 7 /* convertX */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getUsageCount:()I
            iconst_1
            if_icmpgt 22
            aload 8 /* convertY */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getUsageCount:()I
            iconst_1
            if_icmpgt 22
            iconst_0
            goto 23
      StackMap locals:
      StackMap stack:
        22: iconst_1
      StackMap locals:
      StackMap stack: int
        23: istore 10 /* multiUsage */
        start local 10 // boolean multiUsage
        24: .line 147
            aload 2 /* forX */
            instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
            ifne 25
            aload 2 /* forX */
            instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
            ifeq 27
      StackMap locals: int
      StackMap stack:
        25: iload 10 /* multiUsage */
            ifeq 27
        26: .line 150
            aload 0 /* this */
            areturn
        27: .line 152
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* convertX */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 8 /* convertY */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.duplicateModified:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            areturn
        end local 10 // boolean multiUsage
        end local 9 // boolean supported
        end local 8 // org.graalvm.compiler.nodes.calc.ConvertNode convertY
        end local 7 // org.graalvm.compiler.nodes.calc.ConvertNode convertX
        28: .line 156
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.spi.CanonicalizerTool org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 5 // org.graalvm.compiler.nodes.LogicNode constantCondition
        end local 4 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        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.CompareNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0                this  Lorg/graalvm/compiler/nodes/calc/CompareNode;
            0   29     1                tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0   29     2                forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0   29     3                forY  Lorg/graalvm/compiler/nodes/ValueNode;
            1   29     4  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            2   29     5   constantCondition  Lorg/graalvm/compiler/nodes/LogicNode;
            6    8     6              result  Lorg/graalvm/compiler/nodes/ValueNode;
           10   12     6              result  Lorg/graalvm/compiler/nodes/ValueNode;
           14   28     7            convertX  Lorg/graalvm/compiler/nodes/calc/ConvertNode;
           15   28     8            convertY  Lorg/graalvm/compiler/nodes/calc/ConvertNode;
           17   28     9           supported  Z
           19   20    10            intStamp  Lorg/graalvm/compiler/core/common/type/IntegerStamp;
           24   28    10          multiUsage  Z
    MethodParameters:
      Name  Flags
      tool  
      forX  
      forY  

  public static org.graalvm.compiler.nodes.LogicNode tryConstantFold(org.graalvm.compiler.core.common.calc.Condition, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ConstantReflectionProvider, boolean);
    descriptor: (Lorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Lorg/graalvm/compiler/nodes/LogicNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.graalvm.compiler.core.common.calc.Condition condition
        start local 1 // org.graalvm.compiler.nodes.ValueNode forX
        start local 2 // org.graalvm.compiler.nodes.ValueNode forY
        start local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        start local 4 // boolean unorderedIsTrue
         0: .line 160
            aload 1 /* forX */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 2
            aload 2 /* forY */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 2
            aload 3 /* constantReflection */
            ifnull 2
         1: .line 161
            aload 0 /* condition */
            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;
            aload 3 /* constantReflection */
            iload 4 /* unorderedIsTrue */
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.foldCondition:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;Z)Z
            invokestatic org.graalvm.compiler.nodes.LogicConstantNode.forBoolean:(Z)Lorg/graalvm/compiler/nodes/LogicConstantNode;
            areturn
         2: .line 163
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // boolean unorderedIsTrue
        end local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        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.calc.Condition condition
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0           condition  Lorg/graalvm/compiler/core/common/calc/Condition;
            0    3     1                forX  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     2                forY  Lorg/graalvm/compiler/nodes/ValueNode;
            0    3     3  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            0    3     4     unorderedIsTrue  Z
    MethodParameters:
                    Name  Flags
      condition           
      forX                
      forY                
      constantReflection  
      unorderedIsTrue     

  public boolean isIdentityComparison();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
         0: .line 173
            aload 0 /* this */
            getfield org.graalvm.compiler.nodes.calc.CompareNode.condition:Lorg/graalvm/compiler/core/common/calc/Condition;
            getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/calc/CompareNode;

  protected abstract org.graalvm.compiler.nodes.LogicNode duplicateModified(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/LogicNode;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      newX  
      newY  

  protected org.graalvm.compiler.nodes.ValueNode canonicalizeSymmetricConstant(org.graalvm.compiler.graph.spi.CanonicalizerTool, jdk.vm.ci.meta.Constant, org.graalvm.compiler.nodes.ValueNode, boolean);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/nodes/ValueNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        start local 2 // jdk.vm.ci.meta.Constant constant
        start local 3 // org.graalvm.compiler.nodes.ValueNode nonConstant
        start local 4 // boolean mirrored
         0: .line 179
            aload 3 /* nonConstant */
            instanceof org.graalvm.compiler.nodes.calc.ConditionalNode
            ifeq 4
         1: .line 180
            aload 0 /* this */
            aload 2 /* constant */
            aload 3 /* nonConstant */
            checkcast org.graalvm.compiler.nodes.calc.ConditionalNode
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            iload 4 /* mirrored */
            ifeq 2
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.mirror:()Lorg/graalvm/compiler/core/common/calc/Condition;
            goto 3
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.spi.CanonicalizerTool jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.ValueNode int
      StackMap stack: org.graalvm.compiler.nodes.calc.CompareNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.calc.ConditionalNode jdk.vm.ci.meta.ConstantReflectionProvider
         2: aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.spi.CanonicalizerTool jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.ValueNode int
      StackMap stack: org.graalvm.compiler.nodes.calc.CompareNode jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.calc.ConditionalNode jdk.vm.ci.meta.ConstantReflectionProvider org.graalvm.compiler.core.common.calc.Condition
         3: invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.optimizeConditional:(Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/nodes/calc/ConditionalNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;Lorg/graalvm/compiler/core/common/calc/Condition;)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 181
      StackMap locals:
      StackMap stack:
            aload 3 /* nonConstant */
            instanceof org.graalvm.compiler.nodes.calc.NormalizeCompareNode
            ifeq 6
         5: .line 182
            aload 0 /* this */
            aload 2 /* constant */
            aload 3 /* nonConstant */
            checkcast org.graalvm.compiler.nodes.calc.NormalizeCompareNode
            iload 4 /* mirrored */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.optimizeNormalizeCmp:(Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/nodes/calc/NormalizeCompareNode;Z)Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         6: .line 183
      StackMap locals:
      StackMap stack:
            aload 3 /* nonConstant */
            instanceof org.graalvm.compiler.nodes.calc.ConvertNode
            ifeq 24
         7: .line 184
            aload 3 /* nonConstant */
            checkcast org.graalvm.compiler.nodes.calc.ConvertNode
            astore 5 /* convert */
        start local 5 // org.graalvm.compiler.nodes.calc.ConvertNode convert
         8: .line 185
            aload 5 /* convert */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.asNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getUsageCount:()I
            iconst_1
            if_icmple 9
            aload 5 /* convert */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getUsageCount:()I
            iconst_1
            if_icmpne 9
            iconst_1
            goto 10
      StackMap locals: org.graalvm.compiler.nodes.calc.ConvertNode
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 6 /* multiUsage */
        start local 6 // boolean multiUsage
        11: .line 186
            aload 5 /* convert */
            instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
            ifne 12
            aload 5 /* convert */
            instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
            ifeq 14
      StackMap locals: int
      StackMap stack:
        12: iload 6 /* multiUsage */
            ifeq 14
        13: .line 189
            aload 0 /* this */
            areturn
        14: .line 192
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* supported */
        start local 7 // boolean supported
        15: .line 193
            aload 5 /* convert */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.IntegerStamp
            ifeq 18
        16: .line 194
            aload 5 /* convert */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            astore 8 /* intStamp */
        start local 8 // org.graalvm.compiler.core.common.type.IntegerStamp intStamp
        17: .line 195
            aload 1 /* tool */
            aload 8 /* intStamp */
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.supportSubwordCompare:(I)Z
            istore 7 /* supported */
        end local 8 // org.graalvm.compiler.core.common.type.IntegerStamp intStamp
        18: .line 198
      StackMap locals: int
      StackMap stack:
            iload 7 /* supported */
            ifeq 24
        19: .line 199
            aload 0 /* this */
            aload 1 /* tool */
            aload 5 /* convert */
            aload 2 /* constant */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.canonicalConvertConstant:(Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/calc/ConvertNode;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/nodes/ConstantNode;
            astore 8 /* newConstant */
        start local 8 // org.graalvm.compiler.nodes.ConstantNode newConstant
        20: .line 200
            aload 8 /* newConstant */
            ifnull 24
        21: .line 201
            iload 4 /* mirrored */
            ifeq 23
        22: .line 202
            aload 0 /* this */
            aload 8 /* newConstant */
            aload 5 /* convert */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.duplicateModified:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            areturn
        23: .line 204
      StackMap locals: org.graalvm.compiler.nodes.ConstantNode
      StackMap stack:
            aload 0 /* this */
            aload 5 /* convert */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 8 /* newConstant */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.duplicateModified:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            areturn
        end local 8 // org.graalvm.compiler.nodes.ConstantNode newConstant
        end local 7 // boolean supported
        end local 6 // boolean multiUsage
        end local 5 // org.graalvm.compiler.nodes.calc.ConvertNode convert
        24: .line 209
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.graph.spi.CanonicalizerTool jdk.vm.ci.meta.Constant org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 4 // boolean mirrored
        end local 3 // org.graalvm.compiler.nodes.ValueNode nonConstant
        end local 2 // jdk.vm.ci.meta.Constant constant
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0         this  Lorg/graalvm/compiler/nodes/calc/CompareNode;
            0   25     1         tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0   25     2     constant  Ljdk/vm/ci/meta/Constant;
            0   25     3  nonConstant  Lorg/graalvm/compiler/nodes/ValueNode;
            0   25     4     mirrored  Z
            8   24     5      convert  Lorg/graalvm/compiler/nodes/calc/ConvertNode;
           11   24     6   multiUsage  Z
           15   24     7    supported  Z
           17   18     8     intStamp  Lorg/graalvm/compiler/core/common/type/IntegerStamp;
           20   24     8  newConstant  Lorg/graalvm/compiler/nodes/ConstantNode;
    MethodParameters:
             Name  Flags
      tool         
      constant     
      nonConstant  
      mirrored     

  private org.graalvm.compiler.nodes.ConstantNode canonicalConvertConstant(org.graalvm.compiler.graph.spi.CanonicalizerTool, org.graalvm.compiler.nodes.calc.ConvertNode, jdk.vm.ci.meta.Constant);
    descriptor: (Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;Lorg/graalvm/compiler/nodes/calc/ConvertNode;Ljdk/vm/ci/meta/Constant;)Lorg/graalvm/compiler/nodes/ConstantNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
        start local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        start local 2 // org.graalvm.compiler.nodes.calc.ConvertNode convert
        start local 3 // jdk.vm.ci.meta.Constant constant
         0: .line 213
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            astore 4 /* constantReflection */
        start local 4 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         1: .line 214
            aload 2 /* convert */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            aload 3 /* constant */
            aload 4 /* constantReflection */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.preservesOrder:(Lorg/graalvm/compiler/core/common/calc/Condition;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Z
            ifeq 7
         2: .line 215
            aload 2 /* convert */
            aload 3 /* constant */
            aload 4 /* constantReflection */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.reverse:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Ljdk/vm/ci/meta/Constant;
            astore 5 /* reverseConverted */
        start local 5 // jdk.vm.ci.meta.Constant reverseConverted
         3: .line 216
            aload 5 /* reverseConverted */
            ifnull 7
            aload 2 /* convert */
            aload 5 /* reverseConverted */
            aload 4 /* constantReflection */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.convert:(Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Ljdk/vm/ci/meta/Constant;
            aload 3 /* constant */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 217
            getstatic org.graalvm.compiler.core.common.GraalOptions.GeneratePIC:Lorg/graalvm/compiler/options/OptionValue;
            invokevirtual org.graalvm.compiler.options.OptionValue.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 6
         5: .line 219
            aconst_null
            areturn
         6: .line 221
      StackMap locals: jdk.vm.ci.meta.ConstantReflectionProvider jdk.vm.ci.meta.Constant
      StackMap stack:
            aload 2 /* convert */
            invokeinterface org.graalvm.compiler.nodes.calc.ConvertNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* reverseConverted */
            aload 1 /* tool */
            invokeinterface org.graalvm.compiler.graph.spi.CanonicalizerTool.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Lorg/graalvm/compiler/core/common/type/Stamp;Ljdk/vm/ci/meta/Constant;Ljdk/vm/ci/meta/MetaAccessProvider;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
        end local 5 // jdk.vm.ci.meta.Constant reverseConverted
         7: .line 224
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 3 // jdk.vm.ci.meta.Constant constant
        end local 2 // org.graalvm.compiler.nodes.calc.ConvertNode convert
        end local 1 // org.graalvm.compiler.graph.spi.CanonicalizerTool tool
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0                this  Lorg/graalvm/compiler/nodes/calc/CompareNode;
            0    8     1                tool  Lorg/graalvm/compiler/graph/spi/CanonicalizerTool;
            0    8     2             convert  Lorg/graalvm/compiler/nodes/calc/ConvertNode;
            0    8     3            constant  Ljdk/vm/ci/meta/Constant;
            1    8     4  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            3    7     5    reverseConverted  Ljdk/vm/ci/meta/Constant;
    MethodParameters:
          Name  Flags
      tool      
      convert   
      constant  

  public static org.graalvm.compiler.nodes.LogicNode createCompareNode(org.graalvm.compiler.nodes.StructuredGraph, org.graalvm.compiler.core.common.calc.Condition, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ConstantReflectionProvider);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;Lorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/LogicNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
        start local 1 // org.graalvm.compiler.core.common.calc.Condition condition
        start local 2 // org.graalvm.compiler.nodes.ValueNode x
        start local 3 // org.graalvm.compiler.nodes.ValueNode y
        start local 4 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         0: .line 228
            aload 1 /* condition */
            aload 2 /* x */
            aload 3 /* y */
            aload 4 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.calc.CompareNode.createCompareNode:(Lorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 5 /* result */
        start local 5 // org.graalvm.compiler.nodes.LogicNode result
         1: .line 229
            aload 5 /* result */
            invokevirtual org.graalvm.compiler.nodes.LogicNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            ifnonnull 2
            aload 0 /* graph */
            aload 5 /* result */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.unique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.LogicNode
            goto 3
      StackMap locals: org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
         2: aload 5 /* result */
      StackMap locals:
      StackMap stack: org.graalvm.compiler.nodes.LogicNode
         3: areturn
        end local 5 // org.graalvm.compiler.nodes.LogicNode result
        end local 4 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 3 // org.graalvm.compiler.nodes.ValueNode y
        end local 2 // org.graalvm.compiler.nodes.ValueNode x
        end local 1 // org.graalvm.compiler.core.common.calc.Condition condition
        end local 0 // org.graalvm.compiler.nodes.StructuredGraph graph
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0               graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            0    4     1           condition  Lorg/graalvm/compiler/core/common/calc/Condition;
            0    4     2                   x  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     3                   y  Lorg/graalvm/compiler/nodes/ValueNode;
            0    4     4  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            1    4     5              result  Lorg/graalvm/compiler/nodes/LogicNode;
    MethodParameters:
                    Name  Flags
      graph               
      condition           
      x                   
      y                   
      constantReflection  

  public static org.graalvm.compiler.nodes.LogicNode createCompareNode(org.graalvm.compiler.core.common.calc.Condition, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, jdk.vm.ci.meta.ConstantReflectionProvider);
    descriptor: (Lorg/graalvm/compiler/core/common/calc/Condition;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/LogicNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.graalvm.compiler.core.common.calc.Condition condition
        start local 1 // org.graalvm.compiler.nodes.ValueNode x
        start local 2 // org.graalvm.compiler.nodes.ValueNode y
        start local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
         0: .line 233
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 1
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 2 /* y */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 234
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 2
            aload 0 /* condition */
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.isCanonical:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "condition is not canonical: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* condition */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 235
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 3
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* condition */
            getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
            if_acmpne 13
         4: .line 239
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.AbstractObjectStamp
            ifeq 7
         5: .line 240
            aload 1 /* x */
            aload 2 /* y */
            aload 3 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.calc.ObjectEqualsNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 4 /* comparison */
        start local 4 // org.graalvm.compiler.nodes.LogicNode comparison
         6: .line 241
            goto 20
        end local 4 // org.graalvm.compiler.nodes.LogicNode comparison
      StackMap locals:
      StackMap stack:
         7: aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.AbstractPointerStamp
            ifeq 10
         8: .line 242
            aload 1 /* x */
            aload 2 /* y */
            invokestatic org.graalvm.compiler.nodes.calc.PointerEqualsNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 4 /* comparison */
        start local 4 // org.graalvm.compiler.nodes.LogicNode comparison
         9: .line 243
            goto 20
        end local 4 // org.graalvm.compiler.nodes.LogicNode comparison
        10: .line 244
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 11
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 245
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            aload 2 /* y */
            aload 3 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.calc.IntegerEqualsNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 4 /* comparison */
        start local 4 // org.graalvm.compiler.nodes.LogicNode comparison
        12: .line 247
            goto 20
        end local 4 // org.graalvm.compiler.nodes.LogicNode comparison
      StackMap locals:
      StackMap stack:
        13: aload 0 /* condition */
            getstatic org.graalvm.compiler.core.common.calc.Condition.LT:Lorg/graalvm/compiler/core/common/calc/Condition;
            if_acmpne 17
        14: .line 248
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 15
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 249
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            aload 2 /* y */
            aload 3 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.calc.IntegerLessThanNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 4 /* comparison */
        start local 4 // org.graalvm.compiler.nodes.LogicNode comparison
        16: .line 250
            goto 20
        end local 4 // org.graalvm.compiler.nodes.LogicNode comparison
        17: .line 251
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 18
            aload 0 /* condition */
            getstatic org.graalvm.compiler.core.common.calc.Condition.BT:Lorg/graalvm/compiler/core/common/calc/Condition;
            if_acmpeq 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 252
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.calc.CompareNode.$assertionsDisabled:Z
            ifne 19
            aload 1 /* x */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
            ifne 19
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        19: .line 253
      StackMap locals:
      StackMap stack:
            aload 1 /* x */
            aload 2 /* y */
            aload 3 /* constantReflection */
            invokestatic org.graalvm.compiler.nodes.calc.IntegerBelowNode.create:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Ljdk/vm/ci/meta/ConstantReflectionProvider;)Lorg/graalvm/compiler/nodes/LogicNode;
            astore 4 /* comparison */
        start local 4 // org.graalvm.compiler.nodes.LogicNode comparison
        20: .line 256
      StackMap locals: org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
            aload 4 /* comparison */
            areturn
        end local 4 // org.graalvm.compiler.nodes.LogicNode comparison
        end local 3 // jdk.vm.ci.meta.ConstantReflectionProvider constantReflection
        end local 2 // org.graalvm.compiler.nodes.ValueNode y
        end local 1 // org.graalvm.compiler.nodes.ValueNode x
        end local 0 // org.graalvm.compiler.core.common.calc.Condition condition
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   21     0           condition  Lorg/graalvm/compiler/core/common/calc/Condition;
            0   21     1                   x  Lorg/graalvm/compiler/nodes/ValueNode;
            0   21     2                   y  Lorg/graalvm/compiler/nodes/ValueNode;
            0   21     3  constantReflection  Ljdk/vm/ci/meta/ConstantReflectionProvider;
            6    7     4          comparison  Lorg/graalvm/compiler/nodes/LogicNode;
            9   10     4          comparison  Lorg/graalvm/compiler/nodes/LogicNode;
           12   13     4          comparison  Lorg/graalvm/compiler/nodes/LogicNode;
           16   17     4          comparison  Lorg/graalvm/compiler/nodes/LogicNode;
           20   21     4          comparison  Lorg/graalvm/compiler/nodes/LogicNode;
    MethodParameters:
                    Name  Flags
      condition           
      x                   
      y                   
      constantReflection  

  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.CompareNode.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: Lorg/graalvm/compiler/nodes/BinaryOpLogicNode;Lorg/graalvm/compiler/graph/spi/Canonicalizable$Binary<Lorg/graalvm/compiler/nodes/ValueNode;>;
SourceFile: "CompareNode.java"
InnerClasses:
  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
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.nodeinfo.NodeInfo(cycles = org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_1:Lorg/graalvm/compiler/nodeinfo/NodeCycles;)