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 jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> ivs;
    descriptor: Ljdk/internal/vm/compiler/collections/EconomicMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljdk/internal/vm/compiler/collections/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 81
            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 89
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 90
            aload 0 /* this */
            aload 1 /* loop */
            putfield org.graalvm.compiler.loop.LoopEx.loop:Lorg/graalvm/compiler/core/common/cfg/Loop;
         2: .line 91
            aload 0 /* this */
            aload 2 /* data */
            putfield org.graalvm.compiler.loop.LoopEx.data:Lorg/graalvm/compiler/loop/LoopsData;
         3: .line 92
            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 95
            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 99
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
            ifnonnull 2
         1: .line 100
            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 102
      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 106
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
            ifnonnull 2
         1: .line 107
            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 109
      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 113
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.loop.LoopEx.inside:Lorg/graalvm/compiler/loop/LoopFragmentInside;
         1: .line 114
            aload 0 /* this */
            aconst_null
            putfield org.graalvm.compiler.loop.LoopEx.whole:Lorg/graalvm/compiler/loop/LoopFragmentWhole;
         2: .line 115
            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 120
            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 126
            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 130
            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 134
            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 138
            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 142
            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 146
            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 150
            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 154
            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 155
            aconst_null
            areturn
         2: .line 157
      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 161
            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 166
            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 188
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 189
            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 190
            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 191
            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 192
            aload 4 /* binary */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.isAssociative:()Z
            ifne 7
         6: .line 193
            goto 18
         7: .line 195
      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 196
            aload 6 /* result */
            aload 4 /* binary */
            if_acmpeq 18
         9: .line 197
            aload 6 /* result */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isAlive:()Z
            ifne 12
        10: .line 198
            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 199
      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 201
      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 202
            aload 7 /* debug */
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:()Z
            ifeq 15
        14: .line 203
            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 205
      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 206
            aload 4 /* binary */
            invokestatic org.graalvm.compiler.nodes.util.GraphUtil.killWithUnusedFloatingInputs:(Lorg/graalvm/compiler/graph/Node;)V
        17: .line 207
            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 191
      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 210
            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 214
            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 215
            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 216
            goto 4
         3: .line 217
      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 216
      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 219
            aload 2 /* next */
            instanceof org.graalvm.compiler.nodes.IfNode
            ifeq 66
         6: .line 220
            aload 2 /* next */
            checkcast org.graalvm.compiler.nodes.IfNode
            astore 3 /* ifNode */
        start local 3 // org.graalvm.compiler.nodes.IfNode ifNode
         7: .line 221
            iconst_0
            istore 4 /* negated */
        start local 4 // boolean negated
         8: .line 222
            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 223
            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 224
            iconst_0
            ireturn
        11: .line 226
      StackMap locals: org.graalvm.compiler.nodes.IfNode int
      StackMap stack:
            iconst_1
            istore 4 /* negated */
        12: .line 228
      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 229
            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 230
            aload 5 /* ifTest */
            instanceof org.graalvm.compiler.nodes.calc.IntegerBelowNode
            ifeq 16
        15: .line 231
            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 233
      StackMap locals: org.graalvm.compiler.nodes.LogicNode
      StackMap stack:
            iconst_0
            ireturn
        17: .line 235
      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 236
            aconst_null
            astore 7 /* condition */
        start local 7 // org.graalvm.compiler.core.common.calc.Condition condition
        19: .line 237
            aconst_null
            astore 8 /* iv */
        start local 8 // org.graalvm.compiler.loop.InductionVariable iv
        20: .line 238
            aconst_null
            astore 9 /* limit */
        start local 9 // org.graalvm.compiler.nodes.ValueNode limit
        21: .line 239
            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 240
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 8 /* iv */
        23: .line 241
            aload 8 /* iv */
            ifnull 32
        24: .line 242
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
            invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()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 243
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* limit */
        26: .line 245
            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 246
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.loop.LoopEx.getInductionVariables:()Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.loop.InductionVariable
            astore 8 /* iv */
        29: .line 247
            aload 8 /* iv */
            ifnull 32
        30: .line 248
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.condition:()Lorg/graalvm/compiler/core/common/calc/CanonicalCondition;
            invokevirtual org.graalvm.compiler.core.common.calc.CanonicalCondition.asCondition:()Lorg/graalvm/compiler/core/common/calc/Condition;
            astore 7 /* condition */
        31: .line 249
            aload 6 /* lessThan */
            invokevirtual org.graalvm.compiler.nodes.calc.CompareNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 9 /* limit */
        32: .line 252
      StackMap locals:
      StackMap stack:
            aload 7 /* condition */
            ifnonnull 34
        33: .line 253
            iconst_0
            ireturn
        34: .line 255
      StackMap locals:
      StackMap stack:
            iload 4 /* negated */
            ifeq 36
        35: .line 256
            aload 7 /* condition */
            invokevirtual org.graalvm.compiler.core.common.calc.Condition.negate:()Lorg/graalvm/compiler/core/common/calc/Condition;
            astore 7 /* condition */
        36: .line 258
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 10 /* oneOff */
        start local 10 // boolean oneOff
        37: .line 259
            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 261
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
        39: .line 263
      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 264
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        41: .line 266
      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 267
            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 268
            aload 8 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.direction:()Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            getstatic org.graalvm.compiler.loop.InductionVariable$Direction.Up:Lorg/graalvm/compiler/loop/InductionVariable$Direction;
            if_acmpne 46
        44: .line 269
            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 270
            iconst_0
            ireturn
        46: .line 272
      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 273
            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 274
            iconst_0
            ireturn
        49: .line 277
      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 282
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* oneOff */
        51: .line 283
            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 284
            iconst_0
            ireturn
        53: .line 288
      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 289
            iconst_0
            ireturn
        55: .line 293
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 10 /* oneOff */
        56: .line 294
            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 295
            iconst_0
            ireturn
        58: .line 299
      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 300
            iconst_0
            ireturn
        60: .line 304
      StackMap locals:
      StackMap stack:
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        61: .line 306
      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 307
            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 309
      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 313
            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 317
            invokestatic jdk.internal.vm.compiler.collections.EconomicSet.create:()Ljdk/internal/vm/compiler/collections/EconomicSet;
            astore 3 /* blocks */
        start local 3 // jdk.internal.vm.compiler.collections.EconomicSet blocks
         1: .line 318
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* exits */
        start local 4 // java.util.Collection exits
         2: .line 319
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 5 /* work */
        start local 5 // java.util.Queue work
         3: .line 320
            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 321
            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 322
            goto 18
         6: .line 323
      StackMap locals: org.graalvm.compiler.loop.LoopEx org.graalvm.compiler.graph.NodeBitMap org.graalvm.compiler.nodes.AbstractBeginNode jdk.internal.vm.compiler.collections.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 324
            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 325
            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 326
      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 327
            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 jdk.internal.vm.compiler.collections.EconomicSet.add:(Ljava/lang/Object;)Z
            ifeq 18
        12: .line 328
            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 329
            goto 17
        14: .line 330
      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 331
            aload 5 /* work */
            aload 8 /* d */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        16: .line 333
      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 329
      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 322
      StackMap locals:
      StackMap stack:
            aload 5 /* work */
            invokeinterface java.util.Queue.isEmpty:()Z
            ifeq 6
        19: .line 337
            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 338
            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 // jdk.internal.vm.compiler.collections.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  Ljdk/internal/vm/compiler/collections/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 jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> getInductionVariables();
    descriptor: ()Ljdk/internal/vm/compiler/collections/EconomicMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.loop.LoopEx this
         0: .line 341
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ifnonnull 2
         1: .line 342
            aload 0 /* this */
            aload 0 /* this */
            invokestatic org.graalvm.compiler.loop.LoopEx.findInductionVariables:(Lorg/graalvm/compiler/loop/LoopEx;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            putfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
         2: .line 344
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/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: ()Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;

  private static jdk.internal.vm.compiler.collections.EconomicMap<org.graalvm.compiler.graph.Node, org.graalvm.compiler.loop.InductionVariable> findInductionVariables(org.graalvm.compiler.loop.LoopEx);
    descriptor: (Lorg/graalvm/compiler/loop/LoopEx;)Ljdk/internal/vm/compiler/collections/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 355
            getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY:Ljdk/internal/vm/compiler/collections/Equivalence;
            invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
            astore 1 /* ivs */
        start local 1 // jdk.internal.vm.compiler.collections.EconomicMap ivs
         1: .line 357
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 2 /* scanQueue */
        start local 2 // java.util.Queue scanQueue
         2: .line 358
            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 359
            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 360
            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 jdk.internal.vm.compiler.collections.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 361
            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 362
            aload 7 /* backValue */
            aload 5 /* phi */
            if_acmpne 9
         8: .line 363
            goto 14
         9: .line 365
      StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.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 366
            aload 8 /* stride */
            ifnull 14
        11: .line 367
            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 368
            aload 1 /* ivs */
            aload 5 /* phi */
            aload 9 /* biv */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 369
            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 360
      StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.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 373
            goto 50
        16: .line 374
      StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.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 375
            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 376
            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 49
      StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.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 377
            aload 0 /* loop */
            aload 7 /* op */
            invokevirtual org.graalvm.compiler.loop.LoopEx.isOutsideLoop:(Lorg/graalvm/compiler/graph/Node;)Z
            ifeq 22
        21: .line 378
            goto 49
        22: .line 380
      StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.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 385
            goto 49
        24: .line 387
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 9 /* iv */
        start local 9 // org.graalvm.compiler.loop.InductionVariable iv
        25: .line 388
            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 390
            aload 10 /* offset */
            ifnull 29
        27: .line 391
            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 392
            goto 46
      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 393
            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 394
            goto 46
      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 395
            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 396
            goto 46
        36: .line 397
      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 398
            iload 12 /* isValidConvert */
            ifne 44
            aload 7 /* op */
            instanceof org.graalvm.compiler.nodes.calc.ZeroExtendNode
            ifeq 44
        40: .line 399
            aload 7 /* op */
            checkcast org.graalvm.compiler.nodes.calc.ZeroExtendNode
            astore 13 /* zeroExtendNode */
        start local 13 // org.graalvm.compiler.nodes.calc.ZeroExtendNode zeroExtendNode
        41: .line 400
            aload 13 /* zeroExtendNode */
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.isInputAlwaysPositive:()Z
            ifne 42
            aload 13 /* zeroExtendNode */
            getstatic org.graalvm.compiler.nodes.NodeView.DEFAULT:Lorg/graalvm/compiler/nodes/NodeView;
            invokevirtual org.graalvm.compiler.nodes.calc.ZeroExtendNode.stamp:(Lorg/graalvm/compiler/nodes/NodeView;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.IntegerStamp
            invokevirtual org.graalvm.compiler.core.common.type.IntegerStamp.isPositive:()Z
            ifne 42
            iconst_0
            goto 43
      StackMap locals: int org.graalvm.compiler.nodes.calc.ZeroExtendNode
      StackMap stack:
        42: iconst_1
      StackMap locals:
      StackMap stack: int
        43: istore 12 /* isValidConvert */
        end local 13 // org.graalvm.compiler.nodes.calc.ZeroExtendNode zeroExtendNode
        44: .line 403
      StackMap locals:
      StackMap stack:
            iload 12 /* isValidConvert */
            ifeq 46
        45: .line 404
            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
        46: .line 408
      StackMap locals:
      StackMap stack:
            aload 9 /* iv */
            ifnull 49
        47: .line 409
            aload 1 /* ivs */
            aload 7 /* op */
            aload 9 /* iv */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        48: .line 410
            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
        49: .line 376
      StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.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
        50: .line 373
      StackMap locals: org.graalvm.compiler.loop.LoopEx jdk.internal.vm.compiler.collections.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
        51: .line 414
            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 // jdk.internal.vm.compiler.collections.EconomicMap ivs
        end local 0 // org.graalvm.compiler.loop.LoopEx loop
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   52     0            loop  Lorg/graalvm/compiler/loop/LoopEx;
            1   52     1             ivs  Ljdk/internal/vm/compiler/collections/EconomicMap<Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/loop/InductionVariable;>;
            2   52     2       scanQueue  Ljava/util/Queue<Lorg/graalvm/compiler/loop/InductionVariable;>;
            3   52     3       loopBegin  Lorg/graalvm/compiler/nodes/LoopBeginNode;
            4   52     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   50     5          baseIv  Lorg/graalvm/compiler/loop/InductionVariable;
           18   50     6      baseIvNode  Lorg/graalvm/compiler/nodes/ValueNode;
           20   49     7              op  Lorg/graalvm/compiler/nodes/ValueNode;
           25   49     9              iv  Lorg/graalvm/compiler/loop/InductionVariable;
           26   49    10          offset  Lorg/graalvm/compiler/nodes/ValueNode;
           33   46    11           scale  Lorg/graalvm/compiler/nodes/ValueNode;
           39   46    12  isValidConvert  Z
           41   44    13  zeroExtendNode  Lorg/graalvm/compiler/nodes/calc/ZeroExtendNode;
    Signature: (Lorg/graalvm/compiler/loop/LoopEx;)Ljdk/internal/vm/compiler/collections/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 418
            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 419
      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 420
            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 421
            aload 3 /* aritOp */
            invokevirtual org.graalvm.compiler.nodes.calc.BinaryArithmeticNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 422
      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 423
            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 426
      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 430
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.MulNode
            ifeq 6
         1: .line 431
            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 432
            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 433
            aload 3 /* mul */
            invokevirtual org.graalvm.compiler.nodes.calc.MulNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
            areturn
         4: .line 434
      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 435
            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 438
      StackMap locals:
      StackMap stack:
            aload 1 /* op */
            instanceof org.graalvm.compiler.nodes.calc.LeftShiftNode
            ifeq 10
         7: .line 439
            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 440
            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 441
            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 444
      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 451
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
            ifnull 5
         1: .line 452
            aload 0 /* this */
            getfield org.graalvm.compiler.loop.LoopEx.ivs:Ljdk/internal/vm/compiler/collections/EconomicMap;
            invokeinterface jdk.internal.vm.compiler.collections.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 453
            aload 1 /* iv */
            invokevirtual org.graalvm.compiler.loop.InductionVariable.deleteUnusedNodes:()V
        end local 1 // org.graalvm.compiler.loop.InductionVariable iv
         4: .line 452
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 456
      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 462
            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 463
            aload 1 /* node */
            instanceof org.graalvm.compiler.nodes.debug.ControlFlowAnchored
            ifeq 4
         3: .line 464
            iconst_0
            ireturn
         4: .line 466
      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 467
            aload 1 /* node */
            checkcast org.graalvm.compiler.nodes.FrameState
            astore 3 /* frameState */
        start local 3 // org.graalvm.compiler.nodes.FrameState frameState
         6: .line 468
            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 469
      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 462
      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 473
            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 81
            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