public class com.oracle.truffle.llvm.tests.interop.PointerCompareTest extends com.oracle.truffle.llvm.tests.interop.InteropTestBase
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.llvm.tests.interop.PointerCompareTest
  super_class: com.oracle.truffle.llvm.tests.interop.InteropTestBase
{
  static org.graalvm.polyglot.Value testPointerAdd;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x0008) ACC_STATIC

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 48
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.tests.interop.InteropTestBase.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;

  public static void loadLibrary();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 54
            ldc "pointerArithmetic.c"
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.loadTestBitcodeValue:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            astore 0 /* testLibrary */
        start local 0 // org.graalvm.polyglot.Value testLibrary
         1: .line 55
            aload 0 /* testLibrary */
            ldc "test_pointer_add"
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            putstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
         2: .line 56
            return
        end local 0 // org.graalvm.polyglot.Value testLibrary
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            1    3     0  testLibrary  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.BeforeClass()

  private static java.lang.Object ptr(long);
    descriptor: (J)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long v
         0: .line 113
            new com.oracle.truffle.llvm.tests.interop.values.NativeValue
            dup
            lload 0 /* v */
            invokespecial com.oracle.truffle.llvm.tests.interop.values.NativeValue.<init>:(J)V
            areturn
        end local 0 // long v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  J
    MethodParameters:
      Name  Flags
      v     

  public void testSameObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 118
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject
            dup
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject.<init>:()V
            astore 1 /* obj */
        start local 1 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject obj
         1: .line 119
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr1 */
        start local 2 // org.graalvm.polyglot.Value ptr1
         2: .line 120
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 3 /* ptr2 */
        start local 3 // org.graalvm.polyglot.Value ptr2
         3: .line 121
            ldc "equals"
            aload 2 /* ptr1 */
            aload 3 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         4: .line 122
            return
        end local 3 // org.graalvm.polyglot.Value ptr2
        end local 2 // org.graalvm.polyglot.Value ptr1
        end local 1 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject obj
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    5     1   obj  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest$NotComparableObject;
            2    5     2  ptr1  Lorg/graalvm/polyglot/Value;
            3    5     3  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testSameObjectDifferentOffset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 126
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject
            dup
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject.<init>:()V
            astore 1 /* obj */
        start local 1 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject obj
         1: .line 127
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr1 */
        start local 2 // org.graalvm.polyglot.Value ptr1
         2: .line 128
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            dup
            iconst_1
            ldc 38
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 3 /* ptr2 */
        start local 3 // org.graalvm.polyglot.Value ptr2
         3: .line 129
            ldc "!equals"
            aload 2 /* ptr1 */
            aload 3 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
         4: .line 130
            return
        end local 3 // org.graalvm.polyglot.Value ptr2
        end local 2 // org.graalvm.polyglot.Value ptr1
        end local 1 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject obj
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    5     1   obj  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest$NotComparableObject;
            2    5     2  ptr1  Lorg/graalvm/polyglot/Value;
            3    5     3  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDifferentObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 134
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject
            dup
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject.<init>:()V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 135
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject
            dup
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject.<init>:()V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 136
            ldc "!equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
         3: .line 137
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testIdenticalObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 141
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            iconst_1
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 142
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            iconst_1
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 143
            ldc "equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         3: .line 144
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testSameAndIdenticalObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 148
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            iconst_2
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            astore 1 /* obj */
        start local 1 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject obj
         1: .line 149
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr1 */
        start local 2 // org.graalvm.polyglot.Value ptr1
         2: .line 150
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* obj */
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 3 /* ptr2 */
        start local 3 // org.graalvm.polyglot.Value ptr2
         3: .line 151
            ldc "equals"
            aload 2 /* ptr1 */
            aload 3 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         4: .line 152
            return
        end local 3 // org.graalvm.polyglot.Value ptr2
        end local 2 // org.graalvm.polyglot.Value ptr1
        end local 1 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject obj
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    5     1   obj  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest$ComparableObject;
            2    5     2  ptr1  Lorg/graalvm/polyglot/Value;
            3    5     3  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testNotIdenticalObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 156
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            iconst_3
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 157
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            iconst_4
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 158
            ldc "!equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
         3: .line 159
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDifferentTypes1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 163
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject
            dup
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject.<init>:()V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 164
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            iconst_5
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 165
            ldc "!equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
         3: .line 166
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDifferentTypes2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 170
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            bipush 6
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 171
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject
            dup
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject.<init>:()V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 172
            ldc "!equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Ljava/lang/String;Z)V
         3: .line 173
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testWrappedObject1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 177
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject
            dup
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            bipush 7
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 178
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            bipush 7
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 179
            ldc "equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         3: .line 180
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testWrappedObject2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 184
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            bipush 8
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 185
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject
            dup
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            bipush 8
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 186
            ldc "equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         3: .line 187
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testWrappedObject3();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
         0: .line 191
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject
            dup
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            bipush 9
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* ptr1 */
        start local 1 // org.graalvm.polyglot.Value ptr1
         1: .line 192
            getstatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.testPointerAdd:Lorg/graalvm/polyglot/Value;
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject
            dup
            new com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject
            dup
            bipush 9
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject.<init>:(I)V
            invokespecial com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject.<init>:(Ljava/lang/Object;)V
            aastore
            dup
            iconst_1
            ldc 42
            invokestatic com.oracle.truffle.llvm.tests.interop.PointerCompareTest.ptr:(J)Ljava/lang/Object;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 2 /* ptr2 */
        start local 2 // org.graalvm.polyglot.Value ptr2
         2: .line 193
            ldc "equals"
            aload 1 /* ptr1 */
            aload 2 /* ptr2 */
            invokevirtual org.graalvm.polyglot.Value.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         3: .line 194
            return
        end local 2 // org.graalvm.polyglot.Value ptr2
        end local 1 // org.graalvm.polyglot.Value ptr1
        end local 0 // com.oracle.truffle.llvm.tests.interop.PointerCompareTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/PointerCompareTest;
            1    4     1  ptr1  Lorg/graalvm/polyglot/Value;
            2    4     2  ptr2  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "PointerCompareTest.java"
NestMembers:
  com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject  com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject$IsIdenticalOrUndefined  com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject  com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject
InnerClasses:
  ComparableObject = com.oracle.truffle.llvm.tests.interop.PointerCompareTest$ComparableObject of com.oracle.truffle.llvm.tests.interop.PointerCompareTest
  NotComparableObject = com.oracle.truffle.llvm.tests.interop.PointerCompareTest$NotComparableObject of com.oracle.truffle.llvm.tests.interop.PointerCompareTest
  WrappedObject = com.oracle.truffle.llvm.tests.interop.PointerCompareTest$WrappedObject of com.oracle.truffle.llvm.tests.interop.PointerCompareTest
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lcom/oracle/truffle/tck/TruffleRunner;)