public class org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest 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.DeoptimizeOnIntegerExactTest
  super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
  private final jdk.vm.ci.meta.SpeculationLog speculationLog;
    descriptor: Ljdk/vm/ci/meta/SpeculationLog;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static boolean highlyLikely;
    descriptor: Z
    flags: (0x0008) ACC_STATIC

  static boolean highlyUnlikely;
    descriptor: Z
    flags: (0x0008) ACC_STATIC

  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: .line 37
            ldc Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
            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.DeoptimizeOnIntegerExactTest.$assertionsDisabled:Z
         3: .line 41
            iconst_1
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyLikely:Z
         4: .line 42
            iconst_0
            putstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
         0: .line 44
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
         1: .line 45
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.getCodeCache:()Ljdk/vm/ci/code/CodeCacheProvider;
            invokeinterface jdk.vm.ci.code.CodeCacheProvider.createSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
            putfield org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.speculationLog:Ljdk/vm/ci/meta/SpeculationLog;
         2: .line 46
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;

  public static int testAddExactSnippet(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 49
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyLikely:Z
            ifeq 4
         1: .line 50
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 2
            iload 0 /* x */
            iload 1 /* y */
            invokestatic java.lang.Math.addExact:(II)I
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 0 /* x */
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 52
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 5
            iload 1 /* y */
            goto 6
      StackMap locals:
      StackMap stack:
         5: iload 0 /* x */
            iload 1 /* y */
            invokestatic java.lang.Math.addExact:(II)I
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  I
            0    7     1     y  I
    MethodParameters:
      Name  Flags
      x     
      y     

  public static int testSubtractExactSnippet(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 57
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyLikely:Z
            ifeq 4
         1: .line 58
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 2
            iload 0 /* x */
            iload 1 /* y */
            invokestatic java.lang.Math.subtractExact:(II)I
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 0 /* x */
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 60
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 5
            iload 1 /* y */
            goto 6
      StackMap locals:
      StackMap stack:
         5: iload 0 /* x */
            iload 1 /* y */
            invokestatic java.lang.Math.subtractExact:(II)I
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  I
            0    7     1     y  I
    MethodParameters:
      Name  Flags
      x     
      y     

  public static int testMultiplyExactSnippet(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 65
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyLikely:Z
            ifeq 4
         1: .line 66
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 2
            iload 0 /* x */
            iload 1 /* y */
            invokestatic java.lang.Math.multiplyExact:(II)I
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 0 /* x */
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 68
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 5
            iload 1 /* y */
            goto 6
      StackMap locals:
      StackMap stack:
         5: iload 0 /* x */
            iload 1 /* y */
            invokestatic java.lang.Math.multiplyExact:(II)I
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  I
            0    7     1     y  I
    MethodParameters:
      Name  Flags
      x     
      y     

  public static int testIncrementExactSnippet(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 73
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyLikely:Z
            ifeq 4
         1: .line 74
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 2
            iload 0 /* x */
            invokestatic java.lang.Math.incrementExact:(I)I
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 0 /* x */
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 76
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 5
            iload 1 /* y */
            goto 6
      StackMap locals:
      StackMap stack:
         5: iload 0 /* x */
            invokestatic java.lang.Math.incrementExact:(I)I
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  I
            0    7     1     y  I
    MethodParameters:
      Name  Flags
      x     
      y     

  public static int testDecrementExactSnippet(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 81
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyLikely:Z
            ifeq 4
         1: .line 82
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 2
            iload 0 /* x */
            invokestatic java.lang.Math.decrementExact:(I)I
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 0 /* x */
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 84
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.highlyUnlikely:Z
            ifeq 5
            iload 1 /* y */
            goto 6
      StackMap locals:
      StackMap stack:
         5: iload 0 /* x */
            invokestatic java.lang.Math.decrementExact:(I)I
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  I
            0    7     1     y  I
    MethodParameters:
      Name  Flags
      x     
      y     

  public void testAgainIfDeopt(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
        start local 1 // java.lang.String methodName
        start local 2 // int x
        start local 3 // int y
         0: .line 89
            aload 0 /* this */
            aload 1 /* methodName */
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.getResolvedJavaMethod:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 4 /* method */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
         1: .line 92
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/code/InstalledCode;
            astore 5 /* code */
        start local 5 // jdk.vm.ci.code.InstalledCode code
         2: .line 93
            aload 5 /* code */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* x */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 3 /* y */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual jdk.vm.ci.code.InstalledCode.executeVarargs:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 94
            aload 5 /* code */
            invokevirtual jdk.vm.ci.code.InstalledCode.isValid:()Z
            ifne 7
         4: .line 97
            aload 0 /* this */
            aload 4 /* method */
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.getCode:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/code/InstalledCode;
            astore 5 /* code */
         5: .line 98
            aload 5 /* code */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* x */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 3 /* y */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual jdk.vm.ci.code.InstalledCode.executeVarargs:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 100
            aload 5 /* code */
            invokevirtual jdk.vm.ci.code.InstalledCode.isValid:()Z
            invokestatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.assertTrue:(Z)V
         7: .line 102
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.code.InstalledCode
      StackMap stack:
            return
        end local 5 // jdk.vm.ci.code.InstalledCode code
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 3 // int y
        end local 2 // int x
        end local 1 // java.lang.String methodName
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
            0    8     1  methodName  Ljava/lang/String;
            0    8     2           x  I
            0    8     3           y  I
            1    8     4      method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            2    8     5        code  Ljdk/vm/ci/code/InstalledCode;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    MethodParameters:
            Name  Flags
      methodName  
      x           
      y           

  public void testAddExact();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
         0: .line 106
            aload 0 /* this */
            ldc "testAddExactSnippet"
            ldc 2147483647
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.testAgainIfDeopt:(Ljava/lang/String;II)V
         1: .line 107
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testSubtractExact();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
         0: .line 111
            aload 0 /* this */
            ldc "testSubtractExactSnippet"
            iconst_0
            ldc -2147483648
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.testAgainIfDeopt:(Ljava/lang/String;II)V
         1: .line 112
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultiplyExact();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
         0: .line 116
            aload 0 /* this */
            ldc "testMultiplyExactSnippet"
            ldc 2147483647
            iconst_2
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.testAgainIfDeopt:(Ljava/lang/String;II)V
         1: .line 117
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testIncrementExact();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
         0: .line 121
            aload 0 /* this */
            ldc "testIncrementExactSnippet"
            ldc 2147483647
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.testAgainIfDeopt:(Ljava/lang/String;II)V
         1: .line 122
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDecrementExact();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
         0: .line 126
            aload 0 /* this */
            ldc "testDecrementExactSnippet"
            ldc -2147483648
            iconst_1
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.testAgainIfDeopt:(Ljava/lang/String;II)V
         1: .line 127
            return
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
    Exceptions:
      throws jdk.vm.ci.code.InvalidInstalledCodeException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  protected jdk.vm.ci.meta.SpeculationLog getSpeculationLog();
    descriptor: ()Ljdk/vm/ci/meta/SpeculationLog;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
         0: .line 131
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.speculationLog:Ljdk/vm/ci/meta/SpeculationLog;
            invokeinterface jdk.vm.ci.meta.SpeculationLog.collectFailedSpeculations:()V
         1: .line 132
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.speculationLog:Ljdk/vm/ci/meta/SpeculationLog;
            areturn
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;

  protected jdk.vm.ci.code.InstalledCode addMethod(org.graalvm.compiler.debug.DebugContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.code.CompilationResult);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/code/CompilationResult;)Ljdk/vm/ci/code/InstalledCode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 3 // org.graalvm.compiler.code.CompilationResult compilationResult
         0: .line 137
            getstatic org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.speculationLog:Ljdk/vm/ci/meta/SpeculationLog;
            aload 3 /* compilationResult */
            invokevirtual org.graalvm.compiler.code.CompilationResult.getSpeculationLog:()Ljdk/vm/ci/meta/SpeculationLog;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest.getBackend:()Lorg/graalvm/compiler/core/target/Backend;
            aload 1 /* debug */
            aload 2 /* method */
            aload 3 /* compilationResult */
            aconst_null
            iconst_0
            invokevirtual org.graalvm.compiler.core.target.Backend.createInstalledCode:(Lorg/graalvm/compiler/debug/DebugContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/code/CompilationResult;Ljdk/vm/ci/code/InstalledCode;Z)Ljdk/vm/ci/code/InstalledCode;
            areturn
        end local 3 // org.graalvm.compiler.code.CompilationResult compilationResult
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // org.graalvm.compiler.replacements.test.DeoptimizeOnIntegerExactTest this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/graalvm/compiler/replacements/test/DeoptimizeOnIntegerExactTest;
            0    2     1              debug  Lorg/graalvm/compiler/debug/DebugContext;
            0    2     2             method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    2     3  compilationResult  Lorg/graalvm/compiler/code/CompilationResult;
    MethodParameters:
                   Name  Flags
      debug              
      method             final
      compilationResult  final
}
SourceFile: "DeoptimizeOnIntegerExactTest.java"