public class org.graalvm.compiler.loop.LoopEx
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.loop.LoopEx
  super_class: java.lang.Object
{
  private final org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block> loop;
    descriptor: Lorg/graalvm/compiler/core/common/cfg/Loop;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;

  private org.graalvm.compiler.loop.LoopFragmentInside inside;
    descriptor: Lorg/graalvm/compiler/loop/LoopFragmentInside;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.loop.LoopFragmentWhole whole;
    descriptor: Lorg/graalvm/compiler/loop/LoopFragmentWhole;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.loop.CountedLoopInfo counted;
    descriptor: Lorg/graalvm/compiler/loop/CountedLoopInfo;
    flags: (0x0002) ACC_PRIVATE

  private org.graalvm.compiler.loop.LoopsData data;
    descriptor: Lorg/graalvm/compiler/loop/LoopsData;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> ivs;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 79
            ldc Lorg/graalvm/compiler/loop/LoopEx;
            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.loop.LoopEx.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block>, org.graalvm.compiler.loop.LoopsData);
    descriptor: (Lorg/graalvm/compiler/core/common/cfg/Loop;Lorg/graalvm/compiler/loop/LoopsData;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.loop.LoopEx this
        start local 1 // org.graalvm.compiler.core.common.cfg.Loop loop
        start local 2 // org.graalvm.compiler.loop.LoopsData data
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 89
            aload 0 /* this */
            aload 1 /* loop */
            putfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
         2: .line 90
            aload 0 /* this */
            aload 2 /* data */
            putfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
         3: .line 91
            return
        end local 2 // org.graalvm.compiler.loop.LoopsData data
        end local 1 // org.graalvm.compiler.core.common.cfg.Loop loop
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/loop/LoopEx;
            0    4     1  loop  Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            0    4     2  data  Lorg/graalvm/compiler/loop/LoopsData;
    Signature: (Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;Lorg/graalvm/compiler/loop/LoopsData;)V
    MethodParameters:
      Name  Flags
      loop  
      data  

  public org.graalvm.compiler.core.common.cfg.Loop<org.graalvm.compiler.nodes.cfg.Block> loop();
    descriptor: ()Lorg/graalvm/compiler/core/common/cfg/Loop;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 94
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/LoopEx;
    Signature: ()Lorg/graalvm/compiler/core/common/cfg/Loop<Lorg/graalvm/compiler/nodes/cfg/Block;>;

  public org.graalvm.compiler.loop.LoopFragmentInside inside();
    descriptor: ()Lorg/graalvm/compiler/loop/LoopFragmentInside;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 98
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
            ifnonnull 2
         1: .line 99
            aload 0 /* this */
            new org.graalvm.compiler.loop.LoopFragmentInside
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.loop.LoopFragmentInside.<init>:(Lorg/graalvm/compiler/loop/LoopEx;)V
            putfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
         2: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public org.graalvm.compiler.loop.LoopFragmentWhole whole();
    descriptor: ()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 105
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
            ifnonnull 2
         1: .line 106
            aload 0 /* this */
            new org.graalvm.compiler.loop.LoopFragmentWhole
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.loop.LoopFragmentWhole.<init>:(Lorg/graalvm/compiler/loop/LoopEx;)V
            putfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
         2: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public void invalidateFragments();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 112
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
         1: .line 113
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
         2: .line 114
            return
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public org.graalvm.compiler.loop.LoopFragmentInsideFrom insideFrom(org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/loop/LoopFragmentInsideFrom;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.loop.LoopEx this
        start local 1 // org.graalvm.compiler.nodes.FixedNode point
         0: .line 119
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.nodes.FixedNode point
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/loop/LoopEx;
            0    1     1  point  Lorg/graalvm/compiler/nodes/FixedNode;
    MethodParameters:
       Name  Flags
      point  

  public org.graalvm.compiler.loop.LoopFragmentInsideBefore insideBefore(org.graalvm.compiler.nodes.FixedNode);
    descriptor: (Lorg/graalvm/compiler/nodes/FixedNode;)Lorg/graalvm/compiler/loop/LoopFragmentInsideBefore;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.loop.LoopEx this
        start local 1 // org.graalvm.compiler.nodes.FixedNode point
         0: .line 125
            aconst_null
            areturn
        end local 1 // org.graalvm.compiler.nodes.FixedNode point
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/graalvm/compiler/loop/LoopEx;
            0    1     1  point  Lorg/graalvm/compiler/nodes/FixedNode;
    MethodParameters:
       Name  Flags
      point  

  public boolean isOutsideLoop(org.graalvm.compiler.graph.Node);
    descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.loop.LoopEx this
        start local 1 // org.graalvm.compiler.graph.Node n
         0: .line 129
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
            aload 1 /* n */
            invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.contains:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // org.graalvm.compiler.graph.Node n
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/loop/LoopEx;
            0    3     1     n  Lorg/graalvm/compiler/graph/Node;
    MethodParameters:
      Name  Flags
      n     

  public org.graalvm.compiler.nodes.LoopBeginNode loopBegin();
    descriptor: ()Lorg/graalvm/compiler/nodes/LoopBeginNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 133
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getHeader:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            checkcast org.graalvm.compiler.nodes.LoopBeginNode
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public org.graalvm.compiler.nodes.FixedNode predecessor();
    descriptor: ()Lorg/graalvm/compiler/nodes/FixedNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 137
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
            invokevirtual org.graalvm.compiler.nodes.AbstractEndNode.predecessor:()Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.FixedNode
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public org.graalvm.compiler.nodes.FixedNode entryPoint();
    descriptor: ()Lorg/graalvm/compiler/nodes/FixedNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 141
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public boolean isCounted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 145
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.counted:Lorg/graalvm/compiler/loop/CountedLoopInfo;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public org.graalvm.compiler.loop.CountedLoopInfo counted();
    descriptor: ()Lorg/graalvm/compiler/loop/CountedLoopInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 149
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.counted:Lorg/graalvm/compiler/loop/CountedLoopInfo;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public org.graalvm.compiler.loop.LoopEx parent();
    descriptor: ()Lorg/graalvm/compiler/loop/LoopEx;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 153
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            ifnonnull 2
         1: .line 154
            aconst_null
            areturn
         2: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getParent:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokevirtual org.graalvm.compiler.loop.LoopsData.loop:(Lorg/graalvm/compiler/core/common/cfg/Loop;)Lorg/graalvm/compiler/loop/LoopEx;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 160
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
            invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.count:()I
            ireturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 165
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.isCounted:()Z
            ifeq 1
            new java.lang.StringBuilder
            dup
            ldc "CountedLoop ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.counted:()Lorg/graalvm/compiler/loop/CountedLoopInfo;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "] "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 2
      StackMap locals: org.graalvm.compiler.loop.LoopEx
      StackMap stack: new 0 new 0
         1: ldc "Loop "
      StackMap locals: org.graalvm.compiler.loop.LoopEx
      StackMap stack: new 0 new 0 java.lang.String
         2: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "(depth="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getDepth:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public void reassociateInvariants();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 177
            new org.graalvm.compiler.loop.LoopEx$InvariantPredicate
            dup
            aload 0 /* this */
            invokespecial org.graalvm.compiler.loop.LoopEx$InvariantPredicate.<init>:(Lorg/graalvm/compiler/loop/LoopEx;)V
            astore 1 /* invariant */
        start local 1 // org.graalvm.compiler.loop.LoopEx$InvariantPredicate invariant
         1: .line 178
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 2 /* graph */
        start local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
         2: .line 179
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.whole:()Lorg/graalvm/compiler/loop/LoopFragmentWhole;
            invokevirtual org.graalvm.compiler.loop.LoopFragmentWhole.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
            ldc Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
            astore 3 /* binary */
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode binary
         4: .line 180
            aload 3 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isAssociative:()Z
            ifne 6
         5: .line 181
            goto 15
         6: .line 183
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.calc.BinaryArithmeticNode java.util.Iterator
      StackMap stack:
            aload 3 /* binary */
            aload 1 /* invariant */
            aload 3 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 3 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokestatic org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.reassociate:(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;
            astore 5 /* result */
        start local 5 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode result
         7: .line 184
            aload 5 /* result */
            aload 3 /* binary */
            if_acmpeq 15
         8: .line 185
            invokestatic org.graalvm.compiler.debug.Debug.isLogEnabled:()Z
            ifeq 10
         9: .line 186
            ldc "%s : Reassociated %s into %s"
            aload 2 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.method:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            ldc "%H::%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* binary */
            aload 5 /* result */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        10: .line 188
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
      StackMap stack:
            aload 5 /* result */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isAlive:()Z
            ifne 13
        11: .line 189
            getstatic org.graalvm.compiler.loop.LoopEx.$assertionsDisabled:Z
            ifne 12
            aload 5 /* result */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isDeleted:()Z
            ifeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 190
      StackMap locals:
      StackMap stack:
            aload 2 /* graph */
            aload 5 /* result */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
            astore 5 /* result */
        13: .line 192
      StackMap locals:
      StackMap stack:
            aload 3 /* binary */
            aload 5 /* result */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        14: .line 193
            aload 3 /* binary */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        end local 5 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode result
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode binary
        15: .line 179
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        16: .line 196
            return
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // org.graalvm.compiler.loop.LoopEx$InvariantPredicate invariant
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lorg/graalvm/compiler/loop/LoopEx;
            1   17     1  invariant  Lorg/graalvm/compiler/loop/LoopEx$InvariantPredicate;
            2   17     2      graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            4   15     3     binary  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
            7   15     5     result  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;

  public boolean detectCounted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=13, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 199
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            astore 1 /* loopBegin */
        start local 1 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
         1: .line 200
            aload 1 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 2 /* next */
        start local 2 // org.graalvm.compiler.nodes.FixedNode next
         2: .line 201
            goto 4
         3: .line 202
      StackMap locals: org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            aload 2 /* next */
            checkcast org.graalvm.compiler.nodes.FixedWithNextNode
            invokevirtual org.graalvm.compiler.nodes.FixedWithNextNode.next:()Lorg/graalvm/compiler/nodes/FixedNode;
            astore 2 /* next */
         4: .line 201
      StackMap locals:
      StackMap stack:
            aload 2 /* next */
            instanceof org.graalvm.compiler.nodes.FixedGuardNode
            ifne 3
            aload 2 /* next */
            instanceof org.graalvm.compiler.nodes.extended.ValueAnchorNode
            ifne 3
            aload 2 /* next */
            instanceof org.graalvm.compiler.nodes.FullInfopointNode
            ifne 3
         5: .line 204
            aload 2 /* next */
            instanceof org.graalvm.compiler.nodes.IfNode
            ifeq 66
         6: .line 205
            aload 2 /* next */
            checkcast org.graalvm.compiler.nodes.IfNode
            astore 3 /* ifNode */
        start local 3 // org.graalvm.compiler.nodes.IfNode ifNode
         7: .line 206
            iconst_0
            istore 4 /* negated */
        start local 4 // boolean negated
         8: .line 207
            aload 1 /* loopBegin */
            aload 3 /* ifNode */
            invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isLoopExit:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
            ifne 12
         9: .line 208
            aload 1 /* loopBegin */
            aload 3 /* ifNode */
            invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.isLoopExit:(Lorg/graalvm/compiler/nodes/AbstractBeginNode;)Z
            ifne 11
        10: .line 209
            iconst_0
            ireturn
        11: .line 211
      StackMap locals: org.graalvm.compiler.nodes.IfNode int
      StackMap stack:
            iconst_1
            istore 4 /* negated */
        12: .line 213
      StackMap locals:
      StackMap stack:
            aload 3 /* ifNode */
            invokevirtual org.graalvm.compiler.nodes.IfNode.condition:()Lorg/graalvm/compiler/nodes/LogicNode;
            astore 5 /* ifTest */
        start local 5 // org.graalvm.compiler.nodes.LogicNode ifTest
        13: .line 214
            aload 5 /* ifTest */
            instanceof org.graalvm.compiler.nodes.calc.IntegerLessThanNode
            ifne 17
            aload 5 /* ifTest */
            instanceof org.graalvm.compiler.nodes.calc.IntegerEqualsNode
            ifne 17
        14: .line 215
            aload 5 /* ifTest */
            instanceof org.graalvm.compiler.nodes.calc.IntegerBelowNode
            ifeq 16
        15: .line 216
            ldc "Ignored potential Counted loop at %s with |<|"
            aload 1 /* loopBegin */
            invokestatic org.graalvm.compiler.debug.Debug.log:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 218
      StackMap locals: org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
            iconst_0
            ireturn
        17: .line 220
      StackMap locals:
      StackMap stack:
            aload 5 /* ifTest */
            checkcast org.graalvm.compiler.nodes.calc.CompareNode
            astore 6 /* lessThan */
        start local 6 // org.graalvm.compiler.nodes.calc.CompareNode lessThan
        18: .line 221
            aconst_null
            astore 7 /* condition */
        start local 7 // org.graalvm.compiler.core.common.calc.Condition condition
        19: .line 222
            aconst_null
            astore 8 /* iv */
        start local 8 // org.graalvm.compiler.loop.InductionVariable iv
        20: .line 223
            aconst_null
            astore 9 /* limit */
        start local 9 // org.graalvm.compiler.nodes.ValueNode limit
        21: .line 224
            aload 0 /* this */
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 27
        22: .line 225
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Ljava/util/Map;
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 8 /* iv */
        23: .line 226
            aload 8 /* iv */
            ifnull 32
        24: .line 227
            aload 6 /* lessThan */
            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;
            astore 7 /* condition */
        25: .line 228
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* limit */
        26: .line 230
            goto 32
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.IfNode int org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
        27: aload 0 /* this */
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 32
        28: .line 231
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Ljava/util/Map;
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 8 /* iv */
        29: .line 232
            aload 8 /* iv */
            ifnull 32
        30: .line 233
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            astore 7 /* condition */
        31: .line 234
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* limit */
        32: .line 237
      StackMap locals:
      StackMap stack:
            aload 7 /* condition */
            ifnonnull 34
        33: .line 238
            iconst_0
            ireturn
        34: .line 240
      StackMap locals:
      StackMap stack:
            iload 4 /* negated */
            ifeq 36
        35: .line 241
            aload 7 /* condition */
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
            astore 7 /* condition */
        36: .line 243
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* oneOff */
        start local 10 // boolean oneOff
        37: .line 244
            invokestatic org.graalvm.compiler.loop.LoopEx.$SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition:()[I
            aload 7 /* condition */
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 38
                    2: 39
                    3: 53
                    4: 50
                    5: 58
                    6: 55
              default: 60
          }
        38: .line 246
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
        39: .line 248
      StackMap locals:
      StackMap stack:
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.isConstantStride:()Z
            ifeq 40
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.constantStride:()J
            invokestatic java.lang.Math.abs:(J)J
            lconst_1
            lcmp
            ifeq 41
        40: .line 249
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        41: .line 251
      StackMap locals:
      StackMap stack:
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.initNode:()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 11 /* initStamp */
        start local 11 // org.graalvm.compiler.core.common.type.IntegerStamp initStamp
        42: .line 252
            aload 9 /* limit */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            astore 12 /* limitStamp */
        start local 12 // org.graalvm.compiler.core.common.type.IntegerStamp limitStamp
        43: .line 253
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            if_acmpne 46
        44: .line 254
            aload 11 /* initStamp */
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
            aload 12 /* limitStamp */
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
            lcmp
            ifle 61
        45: .line 255
            iconst_0
            ireturn
        46: .line 257
      StackMap locals: org.graalvm.compiler.core.common.type.IntegerStamp org.graalvm.compiler.core.common.type.IntegerStamp
      StackMap stack:
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Down:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            if_acmpne 49
        47: .line 258
            aload 11 /* initStamp */
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.lowerBound:()J
            aload 12 /* limitStamp */
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.upperBound:()J
            lcmp
            ifge 61
        48: .line 259
            iconst_0
            ireturn
        49: .line 262
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 12 // org.graalvm.compiler.core.common.type.IntegerStamp limitStamp
        end local 11 // org.graalvm.compiler.core.common.type.IntegerStamp initStamp
        50: .line 267
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* oneOff */
        51: .line 268
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            if_acmpeq 61
        52: .line 269
            iconst_0
            ireturn
        53: .line 273
      StackMap locals:
      StackMap stack:
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            if_acmpeq 61
        54: .line 274
            iconst_0
            ireturn
        55: .line 278
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* oneOff */
        56: .line 279
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Down:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            if_acmpeq 61
        57: .line 280
            iconst_0
            ireturn
        58: .line 284
      StackMap locals:
      StackMap stack:
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Down:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            if_acmpeq 61
        59: .line 285
            iconst_0
            ireturn
        60: .line 289
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        61: .line 291
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        62: new org.graalvm.compiler.loop.CountedLoopInfo
            dup
            aload 0 /* this */
            aload 8 /* iv */
            aload 9 /* limit */
            iload 10 /* oneOff */
            iload 4 /* negated */
            ifeq 63
            aload 3 /* ifNode */
            invokevirtual org.graalvm.compiler.nodes.IfNode.falseSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            goto 64
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.IfNode int org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode int
      StackMap stack: org.graalvm.compiler.loop.LoopEx new 62 new 62 org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode int
        63: aload 3 /* ifNode */
            invokevirtual org.graalvm.compiler.nodes.IfNode.trueSuccessor:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode org.graalvm.compiler.nodes.IfNode int org.graalvm.compiler.nodes.LogicNode org.graalvm.compiler.nodes.calc.CompareNode org.graalvm.compiler.core.common.calc.Condition org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode int
      StackMap stack: org.graalvm.compiler.loop.LoopEx new 62 new 62 org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode int org.graalvm.compiler.nodes.AbstractBeginNode
        64: invokespecial org.graalvm.compiler.loop.CountedLoopInfo.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/ValueNode;ZLorg/graalvm/compiler/nodes/AbstractBeginNode;)V
            putfield org.graalvm.compiler.loop.LoopEx.counted:Lorg/graalvm/compiler/loop/CountedLoopInfo;
        65: .line 292
            iconst_1
            ireturn
        end local 10 // boolean oneOff
        end local 9 // org.graalvm.compiler.nodes.ValueNode limit
        end local 8 // org.graalvm.compiler.loop.InductionVariable iv
        end local 7 // org.graalvm.compiler.core.common.calc.Condition condition
        end local 6 // org.graalvm.compiler.nodes.calc.CompareNode lessThan
        end local 5 // org.graalvm.compiler.nodes.LogicNode ifTest
        end local 4 // boolean negated
        end local 3 // org.graalvm.compiler.nodes.IfNode ifNode
        66: .line 294
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.FixedNode
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // org.graalvm.compiler.nodes.FixedNode next
        end local 1 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   67     0        this  Lorg/graalvm/compiler/loop/LoopEx;
            1   67     1   loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            2   67     2        next  Lorg/graalvm/compiler/nodes/FixedNode;
            7   66     3      ifNode  Lorg/graalvm/compiler/nodes/IfNode;
            8   66     4     negated  Z
           13   66     5      ifTest  Lorg/graalvm/compiler/nodes/LogicNode;
           18   66     6    lessThan  Lorg/graalvm/compiler/nodes/calc/CompareNode;
           19   66     7   condition  Lorg/graalvm/compiler/core/common/calc/Condition;
           20   66     8          iv  Lorg/graalvm/compiler/loop/InductionVariable;
           21   66     9       limit  Lorg/graalvm/compiler/nodes/ValueNode;
           37   66    10      oneOff  Z
           42   50    11   initStamp  Lorg/graalvm/compiler/core/common/type/IntegerStamp;
           43   50    12  limitStamp  Lorg/graalvm/compiler/core/common/type/IntegerStamp;

  public org.graalvm.compiler.loop.LoopsData loopsData();
    descriptor: ()Lorg/graalvm/compiler/loop/LoopsData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 298
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/loop/LoopEx;

  public void nodesInLoopBranch(org.graalvm.compiler.graph.NodeBitMap, org.graalvm.compiler.nodes.AbstractBeginNode);
    descriptor: (Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/nodes/AbstractBeginNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.graalvm.compiler.loop.LoopEx this
        start local 1 // org.graalvm.compiler.graph.NodeBitMap branchNodes
        start local 2 // org.graalvm.compiler.nodes.AbstractBeginNode branch
         0: .line 302
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 3 /* blocks */
        start local 3 // java.util.Collection blocks
         1: .line 303
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* exits */
        start local 4 // java.util.Collection exits
         2: .line 304
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 5 /* work */
        start local 5 // java.util.Queue work
         3: .line 305
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopsData:()Lorg/graalvm/compiler/loop/LoopsData;
            invokevirtual org.graalvm.compiler.loop.LoopsData.getCFG:()Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            astore 6 /* cfg */
        start local 6 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
         4: .line 306
            aload 5 /* work */
            aload 6 /* cfg */
            aload 2 /* branch */
            invokevirtual org.graalvm.compiler.nodes.cfg.ControlFlowGraph.blockFor:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/nodes/cfg/Block;
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         5: .line 307
            goto 16
         6: .line 308
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode java.util.Collection java.util.Collection java.util.Queue org.graalvm.compiler.nodes.cfg.ControlFlowGraph
      StackMap stack:
            aload 5 /* work */
            invokeinterface java.util.Queue.remove:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            astore 7 /* b */
        start local 7 // org.graalvm.compiler.nodes.cfg.Block b
         7: .line 309
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loop:()Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getExits:()Ljava/util/List;
            aload 7 /* b */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 310
            aload 4 /* exits */
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            checkcast org.graalvm.compiler.nodes.LoopExitNode
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         9: .line 311
            goto 16
        10: .line 312
      StackMap locals: org.graalvm.compiler.nodes.cfg.Block
      StackMap stack:
            aload 3 /* blocks */
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        11: .line 313
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getDominated:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode java.util.Collection java.util.Collection java.util.Queue org.graalvm.compiler.nodes.cfg.ControlFlowGraph org.graalvm.compiler.nodes.cfg.Block top java.util.Iterator
      StackMap stack:
        12: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            astore 8 /* d */
        start local 8 // org.graalvm.compiler.nodes.cfg.Block d
        13: .line 314
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
            invokevirtual org.graalvm.compiler.core.common.cfg.Loop.getBlocks:()Ljava/util/List;
            aload 8 /* d */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 315
            aload 5 /* work */
            aload 8 /* d */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.graalvm.compiler.nodes.cfg.Block d
        15: .line 313
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 7 // org.graalvm.compiler.nodes.cfg.Block b
        16: .line 307
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode java.util.Collection java.util.Collection java.util.Queue org.graalvm.compiler.nodes.cfg.ControlFlowGraph
      StackMap stack:
            aload 5 /* work */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 6
        17: .line 320
            aload 1 /* branchNodes */
            aload 2 /* branch */
            invokevirtual org.graalvm.compiler.nodes.AbstractBeginNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            aload 3 /* blocks */
            aload 4 /* exits */
            invokestatic org.graalvm.compiler.loop.LoopFragment.computeNodes:(Lorg/graalvm/compiler/graph/NodeBitMap;Lorg/graalvm/compiler/graph/Graph;Ljava/lang/Iterable;Ljava/lang/Iterable;)V
        18: .line 321
            return
        end local 6 // org.graalvm.compiler.nodes.cfg.ControlFlowGraph cfg
        end local 5 // java.util.Queue work
        end local 4 // java.util.Collection exits
        end local 3 // java.util.Collection blocks
        end local 2 // org.graalvm.compiler.nodes.AbstractBeginNode branch
        end local 1 // org.graalvm.compiler.graph.NodeBitMap branchNodes
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/graalvm/compiler/loop/LoopEx;
            0   19     1  branchNodes  Lorg/graalvm/compiler/graph/NodeBitMap;
            0   19     2       branch  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            1   19     3       blocks  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
            2   19     4        exits  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/LoopExitNode;>;
            3   19     5         work  Ljava/util/Queue<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            4   19     6          cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            7   16     7            b  Lorg/graalvm/compiler/nodes/cfg/Block;
           13   15     8            d  Lorg/graalvm/compiler/nodes/cfg/Block;
    MethodParameters:
             Name  Flags
      branchNodes  
      branch       

  public java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> getInductionVariables();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 324
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
            ifnonnull 2
         1: .line 325
            aload 0 /* this */
            aload 0 /* this */
            invokestatic org.graalvm.compiler.loop.LoopEx.findInductionVariables:(Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/Map;
            putfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
         2: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
            areturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/loop/LoopEx;
    Signature: ()Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;

  private static java.util.Map<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> findInductionVariables(org.graalvm.compiler.loop.LoopEx);
    descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=14, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx loop
         0: .line 338
            invokestatic org.graalvm.compiler.graph.Node.newIdentityMap:()Ljava/util/Map;
            astore 1 /* ivs */
        start local 1 // java.util.Map ivs
         1: .line 340
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 2 /* scanQueue */
        start local 2 // java.util.Queue scanQueue
         2: .line 341
            aload 0 /* loop */
            invokevirtual org.graalvm.compiler.loop.LoopEx.loopBegin:()Lorg/graalvm/compiler/nodes/LoopBeginNode;
            astore 3 /* loopBegin */
        start local 3 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
         3: .line 342
            aload 3 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.forwardEnd:()Lorg/graalvm/compiler/nodes/AbstractEndNode;
            astore 4 /* forwardEnd */
        start local 4 // org.graalvm.compiler.nodes.AbstractEndNode forwardEnd
         4: .line 343
            aload 3 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.phis:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/ValuePhiNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 14
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.PhiNode
            astore 5 /* phi */
        start local 5 // org.graalvm.compiler.nodes.PhiNode phi
         6: .line 344
            aload 5 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.singleBackValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* backValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode backValue
         7: .line 345
            aload 7 /* backValue */
            getstatic org.graalvm.compiler.nodes.PhiNode.MULTIPLE_VALUES:Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 9
         8: .line 346
            goto 14
         9: .line 348
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.nodes.PhiNode java.util.Iterator org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 0 /* loop */
            aload 7 /* backValue */
            aload 5 /* phi */
            invokestatic org.graalvm.compiler.loop.LoopEx.addSub:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* stride */
        start local 8 // org.graalvm.compiler.nodes.ValueNode stride
        10: .line 349
            aload 8 /* stride */
            ifnull 14
        11: .line 350
            new org.graalvm.compiler.loop.BasicInductionVariable
            dup
            aload 0 /* loop */
            aload 5 /* phi */
            checkcast org.graalvm.compiler.nodes.ValuePhiNode
            aload 5 /* phi */
            aload 4 /* forwardEnd */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.valueAt:(Lorg/graalvm/compiler/nodes/AbstractEndNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            aload 8 /* stride */
            aload 7 /* backValue */
            checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
            invokespecial org.graalvm.compiler.loop.BasicInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValuePhiNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;)V
            astore 9 /* biv */
        start local 9 // org.graalvm.compiler.loop.BasicInductionVariable biv
        12: .line 351
            aload 1 /* ivs */
            aload 5 /* phi */
            aload 9 /* biv */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 352
            aload 2 /* scanQueue */
            aload 9 /* biv */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.graalvm.compiler.loop.BasicInductionVariable biv
        end local 8 // org.graalvm.compiler.nodes.ValueNode stride
        end local 7 // org.graalvm.compiler.nodes.ValueNode backValue
        end local 5 // org.graalvm.compiler.nodes.PhiNode phi
        14: .line 343
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        15: .line 356
            goto 48
        16: .line 357
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode
      StackMap stack:
            aload 2 /* scanQueue */
            invokeinterface java.util.Queue.remove:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 5 /* baseIv */
        start local 5 // org.graalvm.compiler.loop.InductionVariable baseIv
        17: .line 358
            aload 5 /* baseIv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.valueNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* baseIvNode */
        start local 6 // org.graalvm.compiler.nodes.ValueNode baseIvNode
        18: .line 359
            aload 6 /* baseIvNode */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            ldc Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 47
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
      StackMap stack:
        19: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 7 /* op */
        start local 7 // org.graalvm.compiler.nodes.ValueNode op
        20: .line 360
            aload 0 /* loop */
            aload 7 /* op */
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 22
        21: .line 361
            goto 47
        22: .line 363
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode java.util.Iterator
      StackMap stack:
            aload 7 /* op */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.count:()I
            iconst_1
            if_icmpne 24
            aload 7 /* op */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.usages:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
            invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
            aload 6 /* baseIvNode */
            if_acmpne 24
        23: .line 368
            goto 47
        24: .line 370
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* iv */
        start local 9 // org.graalvm.compiler.loop.InductionVariable iv
        25: .line 371
            aload 0 /* loop */
            aload 7 /* op */
            aload 6 /* baseIvNode */
            invokestatic org.graalvm.compiler.loop.LoopEx.addSub:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 10 /* offset */
        start local 10 // org.graalvm.compiler.nodes.ValueNode offset
        26: .line 373
            aload 10 /* offset */
            ifnull 29
        27: .line 374
            new org.graalvm.compiler.loop.DerivedOffsetInductionVariable
            dup
            aload 0 /* loop */
            aload 5 /* baseIv */
            aload 10 /* offset */
            aload 7 /* op */
            checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
            invokespecial org.graalvm.compiler.loop.DerivedOffsetInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode;)V
            astore 9 /* iv */
        28: .line 375
            goto 44
      StackMap locals: org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
        29: aload 7 /* op */
            instanceof org.graalvm.compiler.nodes.calc.NegateNode
            ifeq 32
        30: .line 376
            new org.graalvm.compiler.loop.DerivedScaledInductionVariable
            dup
            aload 0 /* loop */
            aload 5 /* baseIv */
            aload 7 /* op */
            checkcast org.graalvm.compiler.nodes.calc.NegateNode
            invokespecial org.graalvm.compiler.loop.DerivedScaledInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/calc/NegateNode;)V
            astore 9 /* iv */
        31: .line 377
            goto 44
      StackMap locals:
      StackMap stack:
        32: aload 0 /* loop */
            aload 7 /* op */
            aload 6 /* baseIvNode */
            invokestatic org.graalvm.compiler.loop.LoopEx.mul:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            dup
            astore 11 /* scale */
        start local 11 // org.graalvm.compiler.nodes.ValueNode scale
        33: ifnull 36
        34: .line 378
            new org.graalvm.compiler.loop.DerivedScaledInductionVariable
            dup
            aload 0 /* loop */
            aload 5 /* baseIv */
            aload 11 /* scale */
            aload 7 /* op */
            invokespecial org.graalvm.compiler.loop.DerivedScaledInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 9 /* iv */
        35: .line 379
            goto 44
        36: .line 380
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 7 /* op */
            instanceof org.graalvm.compiler.nodes.PiNode
            ifne 37
            aload 7 /* op */
            instanceof org.graalvm.compiler.nodes.calc.SignExtendNode
            ifne 37
            iconst_0
            goto 38
      StackMap locals:
      StackMap stack:
        37: iconst_1
      StackMap locals:
      StackMap stack: int
        38: istore 12 /* isValidConvert */
        start local 12 // boolean isValidConvert
        39: .line 381
            iload 12 /* isValidConvert */
            ifne 42
            aload 7 /* op */
            instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
            ifeq 42
        40: .line 382
            aload 7 /* op */
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.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 13 /* inputStamp */
        start local 13 // org.graalvm.compiler.core.common.type.IntegerStamp inputStamp
        41: .line 383
            aload 13 /* inputStamp */
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isPositive:()Z
            istore 12 /* isValidConvert */
        end local 13 // org.graalvm.compiler.core.common.type.IntegerStamp inputStamp
        42: .line 386
      StackMap locals: int
      StackMap stack:
            iload 12 /* isValidConvert */
            ifeq 44
        43: .line 387
            new org.graalvm.compiler.loop.DerivedConvertedInductionVariable
            dup
            aload 0 /* loop */
            aload 5 /* baseIv */
            aload 7 /* op */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 7 /* op */
            invokespecial org.graalvm.compiler.loop.DerivedConvertedInductionVariable.<init>:(Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/loop/InductionVariable;Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/nodes/ValueNode;)V
            astore 9 /* iv */
        end local 12 // boolean isValidConvert
        end local 11 // org.graalvm.compiler.nodes.ValueNode scale
        44: .line 391
      StackMap locals:
      StackMap stack:
            aload 9 /* iv */
            ifnull 47
        45: .line 392
            aload 1 /* ivs */
            aload 7 /* op */
            aload 9 /* iv */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        46: .line 393
            aload 2 /* scanQueue */
            aload 9 /* iv */
            invokeinterface java.util.Queue.offer:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.graalvm.compiler.nodes.ValueNode offset
        end local 9 // org.graalvm.compiler.loop.InductionVariable iv
        end local 7 // org.graalvm.compiler.nodes.ValueNode op
        47: .line 359
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode org.graalvm.compiler.loop.InductionVariable org.graalvm.compiler.nodes.ValueNode top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        end local 6 // org.graalvm.compiler.nodes.ValueNode baseIvNode
        end local 5 // org.graalvm.compiler.loop.InductionVariable baseIv
        48: .line 356
      StackMap locals: org.graalvm.compiler.loop.LoopEx java.util.Map java.util.Queue org.graalvm.compiler.nodes.LoopBeginNode org.graalvm.compiler.nodes.AbstractEndNode
      StackMap stack:
            aload 2 /* scanQueue */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 16
        49: .line 397
            aload 1 /* ivs */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 4 // org.graalvm.compiler.nodes.AbstractEndNode forwardEnd
        end local 3 // org.graalvm.compiler.nodes.LoopBeginNode loopBegin
        end local 2 // java.util.Queue scanQueue
        end local 1 // java.util.Map ivs
        end local 0 // org.graalvm.compiler.loop.LoopEx loop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   50     0            loop  Lorg/graalvm/compiler/loop/LoopEx;
            1   50     1             ivs  Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
            2   50     2       scanQueue  Ljava/util/Queue<Lorg/graalvm/compiler/loop/InductionVariable;>;
            3   50     3       loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            4   50     4      forwardEnd  Lorg/graalvm/compiler/nodes/AbstractEndNode;
            6   14     5             phi  Lorg/graalvm/compiler/nodes/PhiNode;
            7   14     7       backValue  Lorg/graalvm/compiler/nodes/ValueNode;
           10   14     8          stride  Lorg/graalvm/compiler/nodes/ValueNode;
           12   14     9             biv  Lorg/graalvm/compiler/loop/BasicInductionVariable;
           17   48     5          baseIv  Lorg/graalvm/compiler/loop/InductionVariable;
           18   48     6      baseIvNode  Lorg/graalvm/compiler/nodes/ValueNode;
           20   47     7              op  Lorg/graalvm/compiler/nodes/ValueNode;
           25   47     9              iv  Lorg/graalvm/compiler/loop/InductionVariable;
           26   47    10          offset  Lorg/graalvm/compiler/nodes/ValueNode;
           33   44    11           scale  Lorg/graalvm/compiler/nodes/ValueNode;
           39   44    12  isValidConvert  Z
           41   42    13      inputStamp  Lorg/graalvm/compiler/core/common/type/IntegerStamp;
    Signature: (Lorg/graalvm/compiler/loop/LoopEx;)Ljava/util/Map<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
    MethodParameters:
      Name  Flags
      loop  

  private static org.graalvm.compiler.nodes.ValueNode addSub(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.loop.LoopEx loop
        start local 1 // org.graalvm.compiler.nodes.ValueNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode base
         0: .line 401
            aload 1 /* op */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            instanceof org.graalvm.compiler.core.common.type.IntegerStamp
            ifeq 6
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.AddNode
            ifne 1
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.SubNode
            ifeq 6
         1: .line 402
      StackMap locals:
      StackMap stack:
            aload 1 /* op */
            checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
            astore 3 /* aritOp */
        start local 3 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode aritOp
         2: .line 403
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* base */
            if_acmpne 4
            aload 0 /* loop */
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 4
         3: .line 404
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 405
      StackMap locals: org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
      StackMap stack:
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* base */
            if_acmpne 6
            aload 0 /* loop */
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 6
         5: .line 406
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 3 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode aritOp
         6: .line 409
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode base
        end local 1 // org.graalvm.compiler.nodes.ValueNode op
        end local 0 // org.graalvm.compiler.loop.LoopEx loop
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    loop  Lorg/graalvm/compiler/loop/LoopEx;
            0    7     1      op  Lorg/graalvm/compiler/nodes/ValueNode;
            0    7     2    base  Lorg/graalvm/compiler/nodes/ValueNode;
            2    6     3  aritOp  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
    MethodParameters:
      Name  Flags
      loop  
      op    
      base  

  private static org.graalvm.compiler.nodes.ValueNode mul(org.graalvm.compiler.loop.LoopEx, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode);
    descriptor: (Lorg/graalvm/compiler/loop/LoopEx;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.graalvm.compiler.loop.LoopEx loop
        start local 1 // org.graalvm.compiler.nodes.ValueNode op
        start local 2 // org.graalvm.compiler.nodes.ValueNode base
         0: .line 413
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.MulNode
            ifeq 6
         1: .line 414
            aload 1 /* op */
            checkcast org.graalvm.compiler.nodes.calc.MulNode
            astore 3 /* mul */
        start local 3 // org.graalvm.compiler.nodes.calc.MulNode mul
         2: .line 415
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* base */
            if_acmpne 4
            aload 0 /* loop */
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 4
         3: .line 416
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 417
      StackMap locals: org.graalvm.compiler.nodes.calc.MulNode
      StackMap stack:
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* base */
            if_acmpne 6
            aload 0 /* loop */
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 6
         5: .line 418
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
        end local 3 // org.graalvm.compiler.nodes.calc.MulNode mul
         6: .line 421
      StackMap locals:
      StackMap stack:
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 10
         7: .line 422
            aload 1 /* op */
            checkcast org.graalvm.compiler.nodes.calc.LeftShiftNode
            astore 3 /* shift */
        start local 3 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
         8: .line 423
            aload 3 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 2 /* base */
            if_acmpne 10
            aload 3 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 10
         9: .line 424
            aload 2 /* base */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
            iconst_1
            aload 3 /* shift */
            invokevirtual org.graalvm.compiler.nodes.calc.LeftShiftNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            ishl
            i2l
            aload 2 /* base */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forIntegerStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;JLorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            areturn
        end local 3 // org.graalvm.compiler.nodes.calc.LeftShiftNode shift
        10: .line 427
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.graalvm.compiler.nodes.ValueNode base
        end local 1 // org.graalvm.compiler.nodes.ValueNode op
        end local 0 // org.graalvm.compiler.loop.LoopEx loop
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   loop  Lorg/graalvm/compiler/loop/LoopEx;
            0   11     1     op  Lorg/graalvm/compiler/nodes/ValueNode;
            0   11     2   base  Lorg/graalvm/compiler/nodes/ValueNode;
            2    6     3    mul  Lorg/graalvm/compiler/nodes/calc/MulNode;
            8   10     3  shift  Lorg/graalvm/compiler/nodes/calc/LeftShiftNode;
    MethodParameters:
      Name  Flags
      loop  
      op    
      base  

  public void deleteUnusedNodes();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 434
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
            ifnull 5
         1: .line 435
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: org.graalvm.compiler.loop.LoopEx top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 1 /* iv */
        start local 1 // org.graalvm.compiler.loop.InductionVariable iv
         3: .line 436
            aload 1 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.deleteUnusedNodes:()V
        end local 1 // org.graalvm.compiler.loop.InductionVariable iv
         4: .line 435
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 439
      StackMap locals: org.graalvm.compiler.loop.LoopEx
      StackMap stack:
            return
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/compiler/loop/LoopEx;
            3    4     1    iv  Lorg/graalvm/compiler/loop/InductionVariable;

  public boolean canDuplicateLoop();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 445
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.inside:()Lorg/graalvm/compiler/loop/LoopFragmentInside;
            invokevirtual org.graalvm.compiler.loop.LoopFragmentInside.nodes:()Lorg/graalvm/compiler/graph/NodeBitMap;
            invokevirtual org.graalvm.compiler.graph.NodeBitMap.iterator:()Ljava/util/Iterator;
            astore 2
            goto 8
      StackMap locals: org.graalvm.compiler.loop.LoopEx top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.graph.Node
            astore 1 /* node */
        start local 1 // org.graalvm.compiler.graph.Node node
         2: .line 446
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.debug.ControlFlowAnchorNode
            ifeq 4
         3: .line 447
            iconst_0
            ireturn
         4: .line 449
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.Node java.util.Iterator
      StackMap stack:
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.FrameState
            ifeq 8
         5: .line 450
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.FrameState
            astore 3 /* frameState */
        start local 3 // org.graalvm.compiler.nodes.FrameState frameState
         6: .line 451
            aload 3 /* frameState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            bipush -4
            if_icmpeq 7
            aload 3 /* frameState */
            getfield org.graalvm.compiler.nodes.FrameState.bci:I
            iconst_m1
            if_icmpne 8
         7: .line 452
      StackMap locals: org.graalvm.compiler.nodes.FrameState
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // org.graalvm.compiler.nodes.FrameState frameState
        end local 1 // org.graalvm.compiler.graph.Node node
         8: .line 445
      StackMap locals: org.graalvm.compiler.loop.LoopEx top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 456
            iconst_1
            ireturn
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/graalvm/compiler/loop/LoopEx;
            2    8     1        node  Lorg/graalvm/compiler/graph/Node;
            6    8     3  frameState  Lorg/graalvm/compiler/nodes/FrameState;

  static int[] $SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 79
            getstatic org.graalvm.compiler.loop.LoopEx.$SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.graalvm.compiler.core.common.calc.Condition.values:()[Lorg/graalvm/compiler/core/common/calc/Condition;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.AE:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            bipush 7
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.AT:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            bipush 9
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.BE:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.BT:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            bipush 10
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.EQ:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.GE:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            bipush 6
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.GT:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            iconst_5
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.LE:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            iconst_4
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.LT:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.graalvm.compiler.core.common.calc.Condition.NE:Lorg/graalvm/compiler/core/common/calc/Condition;
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.ordinal:()I
            iconst_2
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            dup
            putstatic org.graalvm.compiler.loop.LoopEx.$SWITCH_TABLE$org$graalvm$compiler$core$common$calc$Condition:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
}
SourceFile: "LoopEx.java"
NestMembers:
  org.graalvm.compiler.loop.LoopEx$InvariantPredicate
InnerClasses:
  public final Direction = org.graalvm.compiler.loop.InductionVariable$Direction of org.graalvm.compiler.loop.InductionVariable
  private InvariantPredicate = org.graalvm.compiler.loop.LoopEx$InvariantPredicate of org.graalvm.compiler.loop.LoopEx