public class org.graalvm.compiler.replacements.test.IntegerExactFoldTest extends org.graalvm.compiler.core.test.GraalCompilerTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.test.IntegerExactFoldTest
super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
private final long lowerBoundA;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long upperBoundA;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long lowerBoundB;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long upperBoundB;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int bits;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation operation;
descriptor: Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest;
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.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(long, long, long, long, int, org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation);
descriptor: (JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=7
start local 0 start local 1 start local 3 start local 5 start local 7 start local 9 start local 10 0: aload 0
invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
1: aload 0
lload 1
putfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundA:J
2: aload 0
lload 3
putfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundA:J
3: aload 0
lload 5
putfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundB:J
4: aload 0
lload 7
putfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundB:J
5: aload 0
iload 9
putfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
6: aload 0
aload 10
putfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.operation:Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
7: getstatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
ifne 8
iload 9
bipush 32
if_icmpeq 8
iload 9
bipush 64
if_icmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: org.graalvm.compiler.replacements.test.IntegerExactFoldTest long long long long int org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
ifne 9
lload 1
lload 3
lcmp
ifle 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
ifne 10
lload 5
lload 7
lcmp
ifle 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
ifne 11
iload 9
bipush 64
if_icmpeq 11
lload 1
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.isInteger:(J)Z
ifne 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
ifne 12
iload 9
bipush 64
if_icmpeq 12
lload 3
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.isInteger:(J)Z
ifne 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
ifne 13
iload 9
bipush 64
if_icmpeq 13
lload 5
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.isInteger:(J)Z
ifne 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.$assertionsDisabled:Z
ifne 14
iload 9
bipush 64
if_icmpeq 14
lload 7
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.isInteger:(J)Z
ifne 14
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
return
end local 10 end local 9 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest;
0 15 1 lowerBoundA J
0 15 3 upperBoundA J
0 15 5 lowerBoundB J
0 15 7 upperBoundB J
0 15 9 bits I
0 15 10 operation Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
MethodParameters:
Name Flags
lowerBoundA
upperBoundA
lowerBoundB
upperBoundB
bits
operation
public void testFolding();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=12, locals=9, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.prepareGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 1
start local 1 1: aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundA:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundA:J
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
astore 2
start local 2 2: aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundB:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundB:J
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
astore 3
start local 3 3: aload 1
getstatic org.graalvm.compiler.nodes.ParameterNode.TYPE:Lorg/graalvm/compiler/graph/NodeClass;
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:(Lorg/graalvm/compiler/graph/NodeClass;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.snapshot:()Ljava/util/List;
astore 4
start local 4 4: aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ParameterNode
aload 1
new org.graalvm.compiler.nodes.PiNode
dup
aload 4
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
aload 2
invokespecial org.graalvm.compiler.nodes.PiNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
invokedynamic apply()Lorg/graalvm/compiler/graph/iterators/NodePredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/graph/Node;)Z
org/graalvm/compiler/replacements/test/IntegerExactFoldTest.lambda$0(Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokevirtual org.graalvm.compiler.nodes.ParameterNode.replaceAtMatchingUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)V
5: aload 4
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ParameterNode
aload 1
new org.graalvm.compiler.nodes.PiNode
dup
aload 4
iconst_1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.graalvm.compiler.nodes.ValueNode
aload 3
invokespecial org.graalvm.compiler.nodes.PiNode.<init>:(Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/core/common/type/Stamp;)V
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.addOrUnique:(Lorg/graalvm/compiler/graph/Node;)Lorg/graalvm/compiler/graph/Node;
invokedynamic apply()Lorg/graalvm/compiler/graph/iterators/NodePredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/graph/Node;)Z
org/graalvm/compiler/replacements/test/IntegerExactFoldTest.lambda$1(Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokevirtual org.graalvm.compiler.nodes.ParameterNode.replaceAtMatchingUsages:(Lorg/graalvm/compiler/graph/Node;Lorg/graalvm/compiler/graph/iterators/NodePredicate;)V
6: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokedynamic apply()Lorg/graalvm/compiler/graph/iterators/NodePredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/graph/Node;)Z
org/graalvm/compiler/replacements/test/IntegerExactFoldTest.lambda$2(Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/graph/iterators/FilteredNodeIterable;
invokevirtual org.graalvm.compiler.graph.iterators.FilteredNodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
astore 5
start local 5 7: ldc "original node must be in the graph"
aload 5
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
8: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
aload 1
aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.getDefaultHighTierContext:()Lorg/graalvm/compiler/phases/tiers/HighTierContext;
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
9: aload 1
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.findNode:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 6
start local 6 10: aload 6
instanceof org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticNode
istore 7
start local 7 11: aload 6
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 8
start local 8 12: aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.operation:Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundA:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundA:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundB:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundB:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
iload 7
aload 8
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation.verifyOverflow:(JJJJIZLorg/graalvm/compiler/core/common/type/IntegerStamp;)V
13: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest;
1 14 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 14 2 a Lorg/graalvm/compiler/core/common/type/IntegerStamp;
3 14 3 b Lorg/graalvm/compiler/core/common/type/IntegerStamp;
4 14 4 params Ljava/util/List<Lorg/graalvm/compiler/nodes/ParameterNode;>;
7 14 5 originalNode Lorg/graalvm/compiler/graph/Node;
10 14 6 node Lorg/graalvm/compiler/nodes/ValueNode;
11 14 7 overflowExpected Z
12 14 8 resultStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testFoldingAfterLowering();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=12, locals=10, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.prepareGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 1
start local 1 1: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokedynamic apply()Lorg/graalvm/compiler/graph/iterators/NodePredicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lorg/graalvm/compiler/graph/Node;)Z
org/graalvm/compiler/replacements/test/IntegerExactFoldTest.lambda$3(Lorg/graalvm/compiler/graph/Node;)Z (6)
(Lorg/graalvm/compiler/graph/Node;)Z
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Lorg/graalvm/compiler/graph/iterators/NodePredicate;)Lorg/graalvm/compiler/graph/iterators/FilteredNodeIterable;
invokevirtual org.graalvm.compiler.graph.iterators.FilteredNodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
astore 2
start local 2 2: ldc "original node must be in the graph"
aload 2
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
3: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
astore 3
start local 3 4: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.getDefaultHighTierContext:()Lorg/graalvm/compiler/phases/tiers/HighTierContext;
astore 4
start local 4 5: new org.graalvm.compiler.phases.common.LoweringPhase
dup
aload 3
getstatic org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage.HIGH_TIER:Lorg/graalvm/compiler/nodes/spi/LoweringTool$StandardLoweringStage;
invokespecial org.graalvm.compiler.phases.common.LoweringPhase.<init>:(Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
aload 1
aload 4
invokevirtual org.graalvm.compiler.phases.common.LoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
6: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.getDefaultMidTierContext:()Lorg/graalvm/compiler/phases/tiers/MidTierContext;
astore 5
start local 5 7: new org.graalvm.compiler.phases.common.GuardLoweringPhase
dup
invokespecial org.graalvm.compiler.phases.common.GuardLoweringPhase.<init>:()V
aload 1
aload 5
invokevirtual org.graalvm.compiler.phases.common.GuardLoweringPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
8: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
aload 1
aload 5
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
9: aload 1
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerExactArithmeticSplitNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode
astore 6
start local 6 10: ldc "the lowered node must be in the graph"
aload 6
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
11: aload 6
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundA:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundA:J
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
invokevirtual org.graalvm.compiler.nodes.ValueNode.setStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
12: aload 6
invokevirtual org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundB:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundB:J
invokestatic org.graalvm.compiler.core.common.type.StampFactory.forInteger:(IJJ)Lorg/graalvm/compiler/core/common/type/IntegerStamp;
invokevirtual org.graalvm.compiler.nodes.ValueNode.setStamp:(Lorg/graalvm/compiler/core/common/type/Stamp;)V
13: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
aload 1
aload 5
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
14: aload 1
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.findNode:(Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ValueNode;
astore 7
start local 7 15: aload 7
instanceof org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticSplitNode
istore 8
start local 8 16: aload 7
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 9
start local 9 17: aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.operation:Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundA:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundA:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.lowerBoundB:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.upperBoundB:J
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
iload 8
aload 9
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation.verifyOverflow:(JJJJIZLorg/graalvm/compiler/core/common/type/IntegerStamp;)V
18: return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest;
1 19 1 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
2 19 2 originalNode Lorg/graalvm/compiler/graph/Node;
4 19 3 canonicalizer Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
5 19 4 highTierContext Lorg/graalvm/compiler/phases/tiers/HighTierContext;
7 19 5 midTierContext Lorg/graalvm/compiler/phases/tiers/MidTierContext;
10 19 6 loweredNode Lorg/graalvm/compiler/replacements/nodes/arithmetic/IntegerExactArithmeticSplitNode;
15 19 7 node Lorg/graalvm/compiler/nodes/ValueNode;
16 19 8 overflowExpected Z
17 19 9 resultStamp Lorg/graalvm/compiler/core/common/type/IntegerStamp;
RuntimeVisibleAnnotations:
org.junit.Test()
private static boolean isInteger(long);
descriptor: (J)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
ldc -2147483648
lcmp
iflt 1
lload 0
ldc 2147483647
lcmp
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 value J
MethodParameters:
Name Flags
value
private static org.graalvm.compiler.nodes.ValueNode findNode(org.graalvm.compiler.nodes.StructuredGraph);
descriptor: (Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ValueNode;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getNodes:()Lorg/graalvm/compiler/graph/iterators/NodeIterable;
ldc Lorg/graalvm/compiler/nodes/ReturnNode;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.filter:(Ljava/lang/Class;)Lorg/graalvm/compiler/graph/iterators/NodeIterable;
invokeinterface org.graalvm.compiler.graph.iterators.NodeIterable.first:()Lorg/graalvm/compiler/graph/Node;
checkcast org.graalvm.compiler.nodes.ReturnNode
invokevirtual org.graalvm.compiler.nodes.ReturnNode.result:()Lorg/graalvm/compiler/nodes/ValueNode;
astore 1
start local 1 1: ldc "some node must be the returned value"
aload 1
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
1 3 1 resultNode Lorg/graalvm/compiler/nodes/ValueNode;
MethodParameters:
Name Flags
graph
protected org.graalvm.compiler.nodes.StructuredGraph prepareGraph();
descriptor: ()Lorg/graalvm/compiler/nodes/StructuredGraph;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "snippetInt"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.bits:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
start local 1 1: aload 0
aload 0
aload 0
getfield org.graalvm.compiler.replacements.test.IntegerExactFoldTest.operation:Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 1
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.getResolvedJavaMethod:(Ljava/lang/Class;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
getstatic org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions.NO:Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.parseEager:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/StructuredGraph$AllowAssumptions;)Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 2
start local 2 2: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.getDefaultHighTierContext:()Lorg/graalvm/compiler/phases/tiers/HighTierContext;
astore 3
start local 3 3: aload 0
invokevirtual org.graalvm.compiler.replacements.test.IntegerExactFoldTest.createCanonicalizerPhase:()Lorg/graalvm/compiler/phases/common/CanonicalizerPhase;
aload 2
aload 3
invokevirtual org.graalvm.compiler.phases.common.CanonicalizerPhase.apply:(Lorg/graalvm/compiler/nodes/StructuredGraph;Ljava/lang/Object;)V
4: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest;
1 5 1 snippet Ljava/lang/String;
2 5 2 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
3 5 3 context Lorg/graalvm/compiler/phases/tiers/HighTierContext;
private static void addTest(java.util.ArrayList<java.lang.Object[]>, long, long, long, long, int, org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation);
descriptor: (Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=7
start local 0 start local 1 start local 3 start local 5 start local 7 start local 9 start local 10 0: aload 0
bipush 6
anewarray java.lang.Object
dup
iconst_0
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_3
lload 7
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
iload 9
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_5
aload 10
aastore
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
1: return
end local 10 end local 9 end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 tests Ljava/util/ArrayList<[Ljava/lang/Object;>;
0 2 1 lowerBound1 J
0 2 3 upperBound1 J
0 2 5 lowerBound2 J
0 2 7 upperBound2 J
0 2 9 bits I
0 2 10 operation Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
Signature: (Ljava/util/ArrayList<[Ljava/lang/Object;>;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
MethodParameters:
Name Flags
tests
lowerBound1
upperBound1
lowerBound2
upperBound2
bits
operation
public static java.util.Collection<java.lang.Object[]> data();
descriptor: ()Ljava/util/Collection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=11, locals=10, args_size=0
0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 0
start local 0 1: iconst_3
anewarray org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation
dup
iconst_0
new org.graalvm.compiler.replacements.test.IntegerExactFoldTest$AddOperation
dup
invokespecial org.graalvm.compiler.replacements.test.IntegerExactFoldTest$AddOperation.<init>:()V
aastore
dup
iconst_1
new org.graalvm.compiler.replacements.test.IntegerExactFoldTest$SubOperation
dup
invokespecial org.graalvm.compiler.replacements.test.IntegerExactFoldTest$SubOperation.<init>:()V
aastore
dup
iconst_2
new org.graalvm.compiler.replacements.test.IntegerExactFoldTest$MulOperation
dup
invokespecial org.graalvm.compiler.replacements.test.IntegerExactFoldTest$MulOperation.<init>:()V
aastore
astore 1
start local 1 2: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 23
StackMap locals: java.util.ArrayList org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation[] top int int org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: iconst_2
newarray 10
dup
iconst_0
bipush 32
iastore
dup
iconst_1
bipush 64
iastore
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 19
StackMap locals: java.util.ArrayList org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation[] org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation int int org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation[] top int int int[]
StackMap stack:
5: aload 9
iload 7
iaload
istore 6
start local 6 6: aload 0
lconst_0
lconst_0
lconst_1
lconst_1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
7: aload 0
lconst_1
lconst_1
lconst_0
lconst_0
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
8: aload 0
ldc -1
lconst_1
lconst_0
lconst_1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
9: aload 0
ldc -2
ldc 2
ldc 3
ldc 3
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
10: aload 0
ldc -1
lconst_1
lconst_1
lconst_1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
11: aload 0
ldc -1
lconst_1
ldc -1
lconst_1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
12: aload 0
ldc -2147483648
ldc -2147483633
ldc 2147483632
ldc 2147483647
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
13: aload 0
ldc -2147483648
ldc -2147483633
ldc -1
ldc -1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
14: aload 0
ldc 2147483647
ldc 2147483647
ldc -1
ldc -1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
15: aload 0
ldc -2147483648
ldc -2147483648
ldc -1
ldc -1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
16: aload 0
ldc 2147483647
ldc 2147483647
lconst_1
lconst_1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
17: aload 0
ldc -2147483648
ldc -2147483648
lconst_1
lconst_1
iload 6
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
end local 6 18: iinc 7 1
StackMap locals:
StackMap stack:
19: iload 7
iload 8
if_icmplt 5
20: aload 0
ldc -2147483648
ldc -2147483633
ldc 2147483632
ldc 2147483647
bipush 64
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
21: aload 0
ldc -2147483648
ldc -2147483633
ldc -1
ldc -1
bipush 64
aload 2
invokestatic org.graalvm.compiler.replacements.test.IntegerExactFoldTest.addTest:(Ljava/util/ArrayList;JJJJILorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;)V
end local 2 22: iinc 3 1
StackMap locals: java.util.ArrayList org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation[] top int int org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation[]
StackMap stack:
23: iload 3
iload 4
if_icmplt 3
24: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 25 0 tests Ljava/util/ArrayList<[Ljava/lang/Object;>;
2 25 1 operations [Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
4 22 2 operation Lorg/graalvm/compiler/replacements/test/IntegerExactFoldTest$Operation;
6 18 6 bits I
Signature: ()Ljava/util/Collection<[Ljava/lang/Object;>;
RuntimeVisibleAnnotations:
org.junit.runners.Parameterized$Parameters(name = "a[{0} / {1}], b[{2} / {3}], bits={4}, operation={5}")
private static boolean lambda$0(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticNode
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x Lorg/graalvm/compiler/graph/Node;
private static boolean lambda$1(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticNode
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x Lorg/graalvm/compiler/graph/Node;
private static boolean lambda$2(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticNode
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x Lorg/graalvm/compiler/graph/Node;
private static boolean lambda$3(org.graalvm.compiler.graph.Node);
descriptor: (Lorg/graalvm/compiler/graph/Node;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
instanceof org.graalvm.compiler.replacements.nodes.arithmetic.IntegerExactArithmeticNode
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x Lorg/graalvm/compiler/graph/Node;
}
SourceFile: "IntegerExactFoldTest.java"
NestMembers:
org.graalvm.compiler.replacements.test.IntegerExactFoldTest$AddOperation org.graalvm.compiler.replacements.test.IntegerExactFoldTest$MulOperation org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation org.graalvm.compiler.replacements.test.IntegerExactFoldTest$SubOperation
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final AllowAssumptions = org.graalvm.compiler.nodes.StructuredGraph$AllowAssumptions of org.graalvm.compiler.nodes.StructuredGraph
public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
public final StandardLoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$StandardLoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
private final AddOperation = org.graalvm.compiler.replacements.test.IntegerExactFoldTest$AddOperation of org.graalvm.compiler.replacements.test.IntegerExactFoldTest
private final MulOperation = org.graalvm.compiler.replacements.test.IntegerExactFoldTest$MulOperation of org.graalvm.compiler.replacements.test.IntegerExactFoldTest
private abstract Operation = org.graalvm.compiler.replacements.test.IntegerExactFoldTest$Operation of org.graalvm.compiler.replacements.test.IntegerExactFoldTest
private final SubOperation = org.graalvm.compiler.replacements.test.IntegerExactFoldTest$SubOperation of org.graalvm.compiler.replacements.test.IntegerExactFoldTest
public abstract Parameters = org.junit.runners.Parameterized$Parameters of org.junit.runners.Parameterized
RuntimeVisibleAnnotations:
org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)