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 org.graalvm.util.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> ivs;
    descriptor: Lorg/graalvm/util/EconomicMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/graalvm/util/EconomicMap<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 78
            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 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 87
            aload 0 /* this */
            aload 1 /* loop */
            putfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
         2: .line 88
            aload 0 /* this */
            aload 2 /* data */
            putfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
         3: .line 89
            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 92
            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 96
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
            ifnonnull 2
         1: .line 97
            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 99
      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 103
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
            ifnonnull 2
         1: .line 104
            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 106
      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 110
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
         1: .line 111
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
         2: .line 112
            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 117
            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 123
            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 127
            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 131
            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 135
            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 139
            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 143
            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 147
            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 151
            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 152
            aconst_null
            areturn
         2: .line 154
      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 158
            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 163
            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 boolean reassociateInvariants();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 185
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 186
            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 187
            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 3 /* invariant */
        start local 3 // org.graalvm.compiler.loop.LoopEx$InvariantPredicate invariant
         3: .line 188
            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 5
            goto 18
      StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.calc.BinaryArithmeticNode
            astore 4 /* binary */
        start local 4 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode binary
         5: .line 189
            aload 4 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isAssociative:()Z
            ifne 7
         6: .line 190
            goto 18
         7: .line 192
      StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate org.graalvm.compiler.nodes.calc.BinaryArithmeticNode java.util.Iterator
      StackMap stack:
            aload 4 /* binary */
            aload 3 /* invariant */
            aload 4 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            aload 4 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            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/NodeView;)Lorg/graalvm/compiler/nodes/ValueNode;
            astore 6 /* result */
        start local 6 // org.graalvm.compiler.nodes.ValueNode result
         8: .line 193
            aload 6 /* result */
            aload 4 /* binary */
            if_acmpeq 18
         9: .line 194
            aload 6 /* result */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifne 12
        10: .line 195
            getstatic org.graalvm.compiler.loop.LoopEx.$assertionsDisabled:Z
            ifne 11
            aload 6 /* result */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isDeleted:()Z
            ifeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 196
      StackMap locals: org.graalvm.compiler.nodes.ValueNode
      StackMap stack:
            aload 2 /* graph */
            aload 6 /* result */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUniqueWithInputs:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
            checkcast org.graalvm.compiler.nodes.ValueNode
            astore 6 /* result */
        12: .line 198
      StackMap locals:
      StackMap stack:
            aload 2 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 7 /* debug */
        start local 7 // org.graalvm.compiler.debug.DebugContext debug
        13: .line 199
            aload 7 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 15
        14: .line 200
            aload 7 /* debug */
            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 4 /* binary */
            aload 6 /* result */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        15: .line 202
      StackMap locals: org.graalvm.compiler.debug.DebugContext
      StackMap stack:
            aload 4 /* binary */
            aload 6 /* result */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.replaceAtUsages:(Lorg/graalvm/compiler/graph/Node;)V
        16: .line 203
            aload 4 /* binary */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        17: .line 204
            iinc 1 /* count */ 1
        end local 7 // org.graalvm.compiler.debug.DebugContext debug
        end local 6 // org.graalvm.compiler.nodes.ValueNode result
        end local 4 // org.graalvm.compiler.nodes.calc.BinaryArithmeticNode binary
        18: .line 188
      StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        19: .line 207
            iload 1 /* count */
            ifeq 20
            iconst_1
            ireturn
      StackMap locals: org.graalvm.compiler.loop.LoopEx int org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.loop.LoopEx$InvariantPredicate
      StackMap stack:
        20: iconst_0
            ireturn
        end local 3 // org.graalvm.compiler.loop.LoopEx$InvariantPredicate invariant
        end local 2 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 1 // int count
        end local 0 // org.graalvm.compiler.loop.LoopEx this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0       this  Lorg/graalvm/compiler/loop/LoopEx;
            1   21     1      count  I
            2   21     2      graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            3   21     3  invariant  Lorg/graalvm/compiler/loop/LoopEx$InvariantPredicate;
            5   18     4     binary  Lorg/graalvm/compiler/nodes/calc/BinaryArithmeticNode<*>;
            8   18     6     result  Lorg/graalvm/compiler/nodes/ValueNode;
           13   18     7      debug  Lorg/graalvm/compiler/debug/DebugContext;

  public boolean detectCounted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=13, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 211
            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 212
            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 213
            goto 4
         3: .line 214
      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 213
      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 216
            aload 2 /* next */
            instanceof org.graalvm.compiler.nodes.IfNode
            ifeq 66
         6: .line 217
            aload 2 /* next */
            checkcast org.graalvm.compiler.nodes.IfNode
            astore 3 /* ifNode */
        start local 3 // org.graalvm.compiler.nodes.IfNode ifNode
         7: .line 218
            iconst_0
            istore 4 /* negated */
        start local 4 // boolean negated
         8: .line 219
            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 220
            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 221
            iconst_0
            ireturn
        11: .line 223
      StackMap locals: org.graalvm.compiler.nodes.IfNode int
      StackMap stack:
            iconst_1
            istore 4 /* negated */
        12: .line 225
      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 226
            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 227
            aload 5 /* ifTest */
            instanceof org.graalvm.compiler.nodes.calc.IntegerBelowNode
            ifeq 16
        15: .line 228
            aload 5 /* ifTest */
            invokevirtual org.graalvm.compiler.nodes.LogicNode.getDebug:()Lorg/graalvm/compiler/debug/DebugContext;
            ldc "Ignored potential Counted loop at %s with |<|"
            aload 1 /* loopBegin */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(Ljava/lang/String;Ljava/lang/Object;)V
        16: .line 230
      StackMap locals: org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
            iconst_0
            ireturn
        17: .line 232
      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 233
            aconst_null
            astore 7 /* condition */
        start local 7 // org.graalvm.compiler.core.common.calc.Condition condition
        19: .line 234
            aconst_null
            astore 8 /* iv */
        start local 8 // org.graalvm.compiler.loop.InductionVariable iv
        20: .line 235
            aconst_null
            astore 9 /* limit */
        start local 9 // org.graalvm.compiler.nodes.ValueNode limit
        21: .line 236
            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 237
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Lorg/graalvm/util/EconomicMap;
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface org.graalvm.util.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 8 /* iv */
        23: .line 238
            aload 8 /* iv */
            ifnull 32
        24: .line 239
            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 240
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* limit */
        26: .line 242
            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 243
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Lorg/graalvm/util/EconomicMap;
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface org.graalvm.util.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 8 /* iv */
        29: .line 244
            aload 8 /* iv */
            ifnull 32
        30: .line 245
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            astore 7 /* condition */
        31: .line 246
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* limit */
        32: .line 249
      StackMap locals:
      StackMap stack:
            aload 7 /* condition */
            ifnonnull 34
        33: .line 250
            iconst_0
            ireturn
        34: .line 252
      StackMap locals:
      StackMap stack:
            iload 4 /* negated */
            ifeq 36
        35: .line 253
            aload 7 /* condition */
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
            astore 7 /* condition */
        36: .line 255
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* oneOff */
        start local 10 // boolean oneOff
        37: .line 256
            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 258
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
        39: .line 260
      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 261
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        41: .line 263
      StackMap locals:
      StackMap stack:
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.initNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            astore 11 /* initStamp */
        start local 11 // org.graalvm.compiler.core.common.type.IntegerStamp initStamp
        42: .line 264
            aload 9 /* limit */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            astore 12 /* limitStamp */
        start local 12 // org.graalvm.compiler.core.common.type.IntegerStamp limitStamp
        43: .line 265
            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 266
            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 267
            iconst_0
            ireturn
        46: .line 269
      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 270
            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 271
            iconst_0
            ireturn
        49: .line 274
      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 279
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* oneOff */
        51: .line 280
            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 281
            iconst_0
            ireturn
        53: .line 285
      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 286
            iconst_0
            ireturn
        55: .line 290
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* oneOff */
        56: .line 291
            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 292
            iconst_0
            ireturn
        58: .line 296
      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 297
            iconst_0
            ireturn
        60: .line 301
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        61: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        62: new org.graalvm.compiler.loop.CountedLoopInfo
            dup
            aload 0 /* this */
            aload 8 /* iv */
            aload 3 /* ifNode */
            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.IfNode 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.IfNode 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/IfNode;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 304
            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 306
      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 310
            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=9, 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 314
            invokestatic org.graalvm.util.EconomicSet.create:()Lorg/graalvm/util/EconomicSet;
            astore 3 /* blocks */
        start local 3 // org.graalvm.util.EconomicSet blocks
         1: .line 315
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* exits */
        start local 4 // java.util.Collection exits
         2: .line 316
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 5 /* work */
        start local 5 // java.util.Queue work
         3: .line 317
            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 318
            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 319
            goto 18
         6: .line 320
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode org.graalvm.util.EconomicSet 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 321
            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 11
         8: .line 322
            getstatic org.graalvm.compiler.loop.LoopEx.$assertionsDisabled:Z
            ifne 9
            aload 4 /* exits */
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 323
      StackMap locals: org.graalvm.compiler.nodes.cfg.Block
      StackMap stack:
            aload 4 /* exits */
            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
        10: .line 324
            goto 18
      StackMap locals:
      StackMap stack:
        11: aload 3 /* blocks */
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getBeginNode:()Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            invokeinterface org.graalvm.util.EconomicSet.add:(Ljava/lang/Object;)Z
            ifeq 18
        12: .line 325
            aload 7 /* b */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getDominatedSibling:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            astore 8 /* d */
        start local 8 // org.graalvm.compiler.nodes.cfg.Block d
        13: .line 326
            goto 17
        14: .line 327
      StackMap locals: org.graalvm.compiler.nodes.cfg.Block
      StackMap stack:
            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 16
        15: .line 328
            aload 5 /* work */
            aload 8 /* d */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        16: .line 330
      StackMap locals:
      StackMap stack:
            aload 8 /* d */
            invokevirtual org.graalvm.compiler.nodes.cfg.Block.getDominatedSibling:()Lorg/graalvm/compiler/core/common/cfg/AbstractBlockBase;
            checkcast org.graalvm.compiler.nodes.cfg.Block
            astore 8 /* d */
        17: .line 326
      StackMap locals:
      StackMap stack:
            aload 8 /* d */
            ifnonnull 14
        end local 8 // org.graalvm.compiler.nodes.cfg.Block d
        end local 7 // org.graalvm.compiler.nodes.cfg.Block b
        18: .line 319
      StackMap locals:
      StackMap stack:
            aload 5 /* work */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 6
        19: .line 334
            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
        20: .line 335
            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 // org.graalvm.util.EconomicSet 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   21     0         this  Lorg/graalvm/compiler/loop/LoopEx;
            0   21     1  branchNodes  Lorg/graalvm/compiler/graph/NodeBitMap;
            0   21     2       branch  Lorg/graalvm/compiler/nodes/AbstractBeginNode;
            1   21     3       blocks  Lorg/graalvm/util/EconomicSet<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
            2   21     4        exits  Ljava/util/Collection<Lorg/graalvm/compiler/nodes/AbstractBeginNode;>;
            3   21     5         work  Ljava/util/Queue<Lorg/graalvm/compiler/nodes/cfg/Block;>;
            4   21     6          cfg  Lorg/graalvm/compiler/nodes/cfg/ControlFlowGraph;
            7   18     7            b  Lorg/graalvm/compiler/nodes/cfg/Block;
           13   18     8            d  Lorg/graalvm/compiler/nodes/cfg/Block;
    MethodParameters:
             Name  Flags
      branchNodes  
      branch       

  public org.graalvm.util.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> getInductionVariables();
    descriptor: ()Lorg/graalvm/util/EconomicMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 338
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Lorg/graalvm/util/EconomicMap;
            ifnonnull 2
         1: .line 339
            aload 0 /* this */
            aload 0 /* this */
            invokestatic org.graalvm.compiler.loop.LoopEx.findInductionVariables:(Lorg/graalvm/compiler/loop/LoopEx;)Lorg/graalvm/util/EconomicMap;
            putfield org.graalvm.compiler.loop.LoopEx.ivs:Lorg/graalvm/util/EconomicMap;
         2: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Lorg/graalvm/util/EconomicMap;
            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: ()Lorg/graalvm/util/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;

  private static org.graalvm.util.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> findInductionVariables(org.graalvm.compiler.loop.LoopEx);
    descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Lorg/graalvm/util/EconomicMap;
    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 352
            getstatic org.graalvm.util.Equivalence.IDENTITY:Lorg/graalvm/util/Equivalence;
            invokestatic org.graalvm.util.EconomicMap.create:(Lorg/graalvm/util/Equivalence;)Lorg/graalvm/util/EconomicMap;
            astore 1 /* ivs */
        start local 1 // org.graalvm.util.EconomicMap ivs
         1: .line 354
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 2 /* scanQueue */
        start local 2 // java.util.Queue scanQueue
         2: .line 355
            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 356
            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 357
            aload 3 /* loopBegin */
            invokevirtual org.graalvm.compiler.nodes.LoopBeginNode.valuePhis:()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 org.graalvm.util.EconomicMap 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 358
            aload 5 /* phi */
            invokevirtual org.graalvm.compiler.nodes.PhiNode.singleBackValueOrThis:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 7 /* backValue */
        start local 7 // org.graalvm.compiler.nodes.ValueNode backValue
         7: .line 359
            aload 7 /* backValue */
            aload 5 /* phi */
            if_acmpne 9
         8: .line 360
            goto 14
         9: .line 362
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.util.EconomicMap 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 363
            aload 8 /* stride */
            ifnull 14
        11: .line 364
            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 365
            aload 1 /* ivs */
            aload 5 /* phi */
            aload 9 /* biv */
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 366
            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 357
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.util.EconomicMap 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 370
            goto 48
        16: .line 371
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.util.EconomicMap 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 372
            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 373
            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 org.graalvm.util.EconomicMap 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 374
            aload 0 /* loop */
            aload 7 /* op */
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 22
        21: .line 375
            goto 47
        22: .line 377
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.util.EconomicMap 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 382
            goto 47
        24: .line 384
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* iv */
        start local 9 // org.graalvm.compiler.loop.InductionVariable iv
        25: .line 385
            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 387
            aload 10 /* offset */
            ifnull 29
        27: .line 388
            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 389
            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 390
            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 391
            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 392
            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 393
            goto 44
        36: .line 394
      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 395
            iload 12 /* isValidConvert */
            ifne 42
            aload 7 /* op */
            instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
            ifeq 42
        40: .line 396
            aload 7 /* op */
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.getValue:()Lorg/graalvm/compiler/nodes/ValueNode;
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            astore 13 /* inputStamp */
        start local 13 // org.graalvm.compiler.core.common.type.IntegerStamp inputStamp
        41: .line 397
            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 400
      StackMap locals: int
      StackMap stack:
            iload 12 /* isValidConvert */
            ifeq 44
        43: .line 401
            new org.graalvm.compiler.loop.DerivedConvertedInductionVariable
            dup
            aload 0 /* loop */
            aload 5 /* baseIv */
            aload 7 /* op */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 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 405
      StackMap locals:
      StackMap stack:
            aload 9 /* iv */
            ifnull 47
        45: .line 406
            aload 1 /* ivs */
            aload 7 /* op */
            aload 9 /* iv */
            invokeinterface org.graalvm.util.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        46: .line 407
            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 373
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.util.EconomicMap 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 370
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.util.EconomicMap 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 411
            aload 1 /* ivs */
            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 // org.graalvm.util.EconomicMap 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  Lorg/graalvm/util/EconomicMap<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;)Lorg/graalvm/util/EconomicMap<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 415
            aload 1 /* op */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            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 416
      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 417
            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 418
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 419
      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 420
            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 423
      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 427
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.MulNode
            ifeq 6
         1: .line 428
            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 429
            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 430
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 431
      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 432
            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 435
      StackMap locals:
      StackMap stack:
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 10
         7: .line 436
            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 437
            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 438
            aload 2 /* base */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            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 441
      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 448
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Lorg/graalvm/util/EconomicMap;
            ifnull 5
         1: .line 449
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Lorg/graalvm/util/EconomicMap;
            invokeinterface org.graalvm.util.EconomicMap.getValues:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.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 450
            aload 1 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.deleteUnusedNodes:()V
        end local 1 // org.graalvm.compiler.loop.InductionVariable iv
         4: .line 449
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 453
      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 459
            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 460
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.debug.ControlFlowAnchored
            ifeq 4
         3: .line 461
            iconst_0
            ireturn
         4: .line 463
      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 464
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.FrameState
            astore 3 /* frameState */
        start local 3 // org.graalvm.compiler.nodes.FrameState frameState
         6: .line 465
            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 466
      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 459
      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 470
            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 78
            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