public class org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase extends org.graalvm.compiler.phases.Phase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase
  super_class: org.graalvm.compiler.phases.Phase
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase this
         0: .line 49
            aload 0 /* this */
            invokespecial org.graalvm.compiler.phases.Phase.<init>:()V
            return
        end local 0 // org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/core/sparc/SPARCIntegerCompareCanonicalizationPhase;

  protected void run(org.graalvm.compiler.nodes.StructuredGraph);
    descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase this
        start local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
         0: .line 52
            aload 1 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 2 /* n */
        start local 2 // org.graalvm.compiler.graph.Node n
         2: .line 53
            aload 2 /* n */
            instanceof org.graalvm.compiler.nodes.calc.CompareNode
            ifeq 6
         3: .line 54
            aload 2 /* n */
            checkcast org.graalvm.compiler.nodes.calc.CompareNode
            astore 4 /* enode */
        start local 4 // org.graalvm.compiler.nodes.calc.CompareNode enode
         4: .line 55
            aload 4 /* enode */
            aload 4 /* enode */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase.min32:(Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
         5: .line 56
            aload 4 /* enode */
            aload 4 /* enode */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase.min32:(Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
        end local 4 // org.graalvm.compiler.nodes.calc.CompareNode enode
        end local 2 // org.graalvm.compiler.graph.Node n
         6: .line 52
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 59
            return
        end local 1 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 0 // org.graalvm.compiler.core.sparc.SPARCIntegerCompareCanonicalizationPhase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/graalvm/compiler/core/sparc/SPARCIntegerCompareCanonicalizationPhase;
            0    8     1  graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            2    6     2      n  Lorg/graalvm/compiler/graph/Node;
            4    6     4  enode  Lorg/graalvm/compiler/nodes/calc/CompareNode;
    MethodParameters:
       Name  Flags
      graph  

  private static void min32(org.graalvm.compiler.nodes.calc.CompareNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=8, args_size=2
        start local 0 // org.graalvm.compiler.nodes.calc.CompareNode enode
        start local 1 // org.graalvm.compiler.nodes.ValueNode v
         0: .line 62
            aload 1 /* v */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 2 /* s */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp s
         1: .line 63
            aload 2 /* s */
            instanceof org.graalvm.compiler.core.common.type.IntegerStamp
            ifeq 21
         2: .line 64
            aload 2 /* s */
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.getBits:()I
            istore 3 /* bits */
        start local 3 // int bits
         3: .line 65
            iload 3 /* bits */
            bipush 32
            if_icmpeq 21
            iload 3 /* bits */
            bipush 64
            if_icmpeq 21
         4: .line 66
            iload 3 /* bits */
            bipush 32
            if_icmpgt 7
         5: .line 67
            bipush 32
            istore 3 /* bits */
         6: .line 68
            goto 8
         7: .line 69
      StackMap locals: org.graalvm.compiler.core.common.type.Stamp int
      StackMap stack:
            bipush 64
            istore 3 /* bits */
         8: .line 72
      StackMap locals:
      StackMap stack:
            aload 1 /* v */
            instanceof org.graalvm.compiler.nodes.ConstantNode
            ifeq 19
         9: .line 74
            iload 3 /* bits */
            bipush 32
            if_icmpne 12
        10: .line 75
            aload 1 /* v */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            invokestatic jdk.vm.ci.meta.JavaConstant.forInt:(I)Ljdk/vm/ci/meta/PrimitiveConstant;
            astore 5 /* newConst */
        start local 5 // jdk.vm.ci.meta.JavaConstant newConst
        11: .line 76
            goto 16
        end local 5 // jdk.vm.ci.meta.JavaConstant newConst
      StackMap locals:
      StackMap stack:
        12: iload 3 /* bits */
            bipush 64
            if_icmpne 15
        13: .line 77
            aload 1 /* v */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            invokestatic jdk.vm.ci.meta.JavaConstant.forLong:(J)Ljdk/vm/ci/meta/PrimitiveConstant;
            astore 5 /* newConst */
        start local 5 // jdk.vm.ci.meta.JavaConstant newConst
        14: .line 78
            goto 16
        end local 5 // jdk.vm.ci.meta.JavaConstant newConst
        15: .line 79
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        start local 5 // jdk.vm.ci.meta.JavaConstant newConst
        16: .line 81
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp int top jdk.vm.ci.meta.JavaConstant
      StackMap stack:
            iload 3 /* bits */
            invokestatic jdk.vm.ci.code.CodeUtil.mask:(I)J
            lstore 6 /* mask */
        start local 6 // long mask
        17: .line 82
            aload 1 /* v */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.ConstantNode
            dup
            aload 5 /* newConst */
            iload 3 /* bits */
            aload 5 /* newConst */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lload 6 /* mask */
            land
            aload 5 /* newConst */
            invokeinterface jdk.vm.ci.meta.JavaConstant.asLong:()J
            lload 6 /* mask */
            land
            invokestatic org.graalvm.compiler.core.common.type.IntegerStamp.stampForMask:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
            invokespecial org.graalvm.compiler.nodes.ConstantNode.<init>:(Ljdk/vm/ci/meta/Constant;Lorg/graalvm/compiler/core/common/type/Stamp;)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 4 /* replacement */
        end local 6 // long mask
        end local 5 // jdk.vm.ci.meta.JavaConstant newConst
        start local 4 // org.graalvm.compiler.nodes.ValueNode replacement
        18: .line 83
            goto 20
        end local 4 // org.graalvm.compiler.nodes.ValueNode replacement
        19: .line 84
      StackMap locals: org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.core.common.type.Stamp int
      StackMap stack:
            aload 1 /* v */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            new org.graalvm.compiler.nodes.calc.SignExtendNode
            dup
            aload 1 /* v */
            iload 3 /* bits */
            invokespecial org.graalvm.compiler.nodes.calc.SignExtendNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;I)V
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 4 /* replacement */
        start local 4 // org.graalvm.compiler.nodes.ValueNode replacement
        20: .line 86
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 1 /* v */
            aload 4 /* replacement */
            aload 0 /* enode */
            invokedynamic test(Lorg/graalvm/compiler/nodes/calc/CompareNode;)Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/graalvm/compiler/core/sparc/SPARCIntegerCompareCanonicalizationPhase.lambda$0(Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/graph/Node;)Z (6)
                  (Lorg/graalvm/compiler/graph/Node;)Z
            invokevirtual org.graalvm.compiler.nodes.ValueNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;Ljava/util/function/Predicate;)V
        end local 4 // org.graalvm.compiler.nodes.ValueNode replacement
        end local 3 // int bits
        21: .line 89
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.graalvm.compiler.core.common.type.Stamp s
        end local 1 // org.graalvm.compiler.nodes.ValueNode v
        end local 0 // org.graalvm.compiler.nodes.calc.CompareNode enode
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0        enode  Lorg/graalvm/compiler/nodes/calc/CompareNode;
            0   22     1            v  Lorg/graalvm/compiler/nodes/ValueNode;
            1   22     2            s  Lorg/graalvm/compiler/core/common/type/Stamp;
            3   21     3         bits  I
           18   19     4  replacement  Lorg/graalvm/compiler/nodes/ValueNode;
           20   21     4  replacement  Lorg/graalvm/compiler/nodes/ValueNode;
           11   12     5     newConst  Ljdk/vm/ci/meta/JavaConstant;
           14   15     5     newConst  Ljdk/vm/ci/meta/JavaConstant;
           16   18     5     newConst  Ljdk/vm/ci/meta/JavaConstant;
           17   18     6         mask  J
    MethodParameters:
       Name  Flags
      enode  
      v      

  private static boolean lambda$0(org.graalvm.compiler.nodes.calc.CompareNode, org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/nodes/calc/CompareNode;Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.graalvm.compiler.graph.Node x
         0: .line 86
            aload 1 /* x */
            aload 0
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.compiler.graph.Node x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     1     x  Lorg/graalvm/compiler/graph/Node;
}
SourceFile: "SPARCIntegerCompareCanonicalizationPhase.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles