public class org.graalvm.compiler.nodes.test.ObjectStampJoinTest extends org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.compiler.nodes.test.ObjectStampJoinTest
  super_class: org.graalvm.compiler.nodes.test.AbstractObjectStampTest
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 37
            aload 0 /* this */
            invokespecial org.graalvm.compiler.nodes.test.AbstractObjectStampTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;

  public void testJoin0();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 48
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* a */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp a
         1: .line 49
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* b */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp b
         2: .line 50
            aload 2 /* b */
            aload 1 /* a */
            aload 2 /* b */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 51
            return
        end local 2 // org.graalvm.compiler.core.common.type.Stamp b
        end local 1 // org.graalvm.compiler.core.common.type.Stamp a
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    4     1     a  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    4     2     b  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 55
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* aNonNull */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp aNonNull
         1: .line 56
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* b */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp b
         2: .line 57
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* bNonNull */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp bNonNull
         3: .line 58
            aload 3 /* bNonNull */
            aload 1 /* aNonNull */
            aload 2 /* b */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 59
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp bNonNull
        end local 2 // org.graalvm.compiler.core.common.type.Stamp b
        end local 1 // org.graalvm.compiler.core.common.type.Stamp aNonNull
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    5     1  aNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2         b  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3  bNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 63
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* aExact */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp aExact
         1: .line 64
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* b */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp b
         2: .line 65
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 1 /* aExact */
            aload 2 /* b */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 66
            return
        end local 2 // org.graalvm.compiler.core.common.type.Stamp b
        end local 1 // org.graalvm.compiler.core.common.type.Stamp aExact
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    4     1  aExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    4     2       b  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin3();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 70
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* d */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp d
         1: .line 71
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* c */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp c
         2: .line 72
            aload 2 /* c */
            aload 1 /* d */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerAlwaysNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 73
            return
        end local 2 // org.graalvm.compiler.core.common.type.Stamp c
        end local 1 // org.graalvm.compiler.core.common.type.Stamp d
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    4     1     d  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    4     2     c  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin4();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 77
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* dExactNonNull */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
         1: .line 78
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* c */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp c
         2: .line 79
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 2 /* c */
            aload 1 /* dExactNonNull */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 80
            return
        end local 2 // org.graalvm.compiler.core.common.type.Stamp c
        end local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    4     1  dExactNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    4     2              c  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin5();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 84
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* dExact */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp dExact
         1: .line 85
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* c */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp c
         2: .line 86
            aload 2 /* c */
            aload 1 /* dExact */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 3 /* join */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 87
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerAlwaysNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 88
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeReferenceOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         5: .line 89
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isExactType:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         6: .line 90
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp join
        end local 2 // org.graalvm.compiler.core.common.type.Stamp c
        end local 1 // org.graalvm.compiler.core.common.type.Stamp dExact
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    7     1  dExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    7     2       c  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    7     3    join  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin6();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 94
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* dExactNonNull */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
         1: .line 95
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.alwaysNull:()Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 2 /* alwaysNull */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp alwaysNull
         2: .line 96
            aload 2 /* alwaysNull */
            aload 1 /* dExactNonNull */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 3 /* join */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 97
            aload 3 /* join */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.hasValues:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         4: .line 98
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerAlwaysNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         5: .line 99
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp join
        end local 2 // org.graalvm.compiler.core.common.type.Stamp alwaysNull
        end local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    6     1  dExactNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    6     2     alwaysNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    6     3           join  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin7();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 103
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* aExact */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp aExact
         1: .line 104
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$E;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* e */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp e
         2: .line 105
            aload 1 /* aExact */
            aload 2 /* e */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 3 /* join */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 106
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerAlwaysNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 107
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeReferenceOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         5: .line 108
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isExactType:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         6: .line 109
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp join
        end local 2 // org.graalvm.compiler.core.common.type.Stamp e
        end local 1 // org.graalvm.compiler.core.common.type.Stamp aExact
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    7     1  aExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    7     2       e  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    7     3    join  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin8();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 113
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* bExact */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp bExact
         1: .line 114
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* dExact */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp dExact
         2: .line 115
            aload 1 /* bExact */
            aload 2 /* dExact */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 3 /* join */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 116
            aload 3 /* join */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.hasValues:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         4: .line 117
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp join
        end local 2 // org.graalvm.compiler.core.common.type.Stamp dExact
        end local 1 // org.graalvm.compiler.core.common.type.Stamp bExact
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    5     1  bExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2  dExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3    join  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoin9();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 121
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* bExact */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp bExact
         1: .line 122
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* dExact */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp dExact
         2: .line 123
            aload 1 /* bExact */
            aload 2 /* dExact */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 3 /* join */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 124
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.isPointerAlwaysNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 125
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeReferenceOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         5: .line 126
            aload 3 /* join */
            invokestatic org.graalvm.compiler.nodes.type.StampTool.typeReferenceOrNull:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.junit.Assert.assertNull:(Ljava/lang/Object;)V
         6: .line 127
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp join
        end local 2 // org.graalvm.compiler.core.common.type.Stamp dExact
        end local 1 // org.graalvm.compiler.core.common.type.Stamp bExact
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1    7     1  bExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    7     2  dExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    7     3    join  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoinInterfaceSimple();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 132
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.testJoinInterface:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 133
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoinInterfaceArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 138
            aload 0 /* this */
            ldc [Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            ldc [Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            ldc [Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.testJoinInterface:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 139
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testJoinInterfaceMultiArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 144
            aload 0 /* this */
            ldc [[Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            ldc [[Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            ldc [[Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.testJoinInterface:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 145
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void testJoinInterface(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
        start local 1 // java.lang.Class typeA
        start local 2 // java.lang.Class typeB
        start local 3 // java.lang.Class typeI
         0: .line 148
            aload 0 /* this */
            aload 1 /* typeA */
            aload 3 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.testJoinInterface0:(Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 149
            aload 0 /* this */
            aload 1 /* typeA */
            aload 3 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.testJoinInterface1:(Ljava/lang/Class;Ljava/lang/Class;)V
         2: .line 150
            aload 0 /* this */
            aload 2 /* typeB */
            aload 3 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.testJoinInterface2:(Ljava/lang/Class;Ljava/lang/Class;)V
         3: .line 151
            aload 0 /* this */
            aload 2 /* typeB */
            aload 3 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.testJoinInterface3:(Ljava/lang/Class;Ljava/lang/Class;)V
         4: .line 152
            return
        end local 3 // java.lang.Class typeI
        end local 2 // java.lang.Class typeB
        end local 1 // java.lang.Class typeA
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            0    5     1  typeA  Ljava/lang/Class<*>;
            0    5     2  typeB  Ljava/lang/Class<*>;
            0    5     3  typeI  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      typeA  
      typeB  
      typeI  

  private void testJoinInterface0(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
        start local 1 // java.lang.Class typeA
        start local 2 // java.lang.Class typeI
         0: .line 155
            aload 0 /* this */
            aload 1 /* typeA */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* a */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp a
         1: .line 156
            aload 0 /* this */
            aload 2 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* i */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp i
         2: .line 157
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* a */
            aload 4 /* i */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertNotSame:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 158
            return
        end local 4 // org.graalvm.compiler.core.common.type.Stamp i
        end local 3 // org.graalvm.compiler.core.common.type.Stamp a
        end local 2 // java.lang.Class typeI
        end local 1 // java.lang.Class typeA
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            0    4     1  typeA  Ljava/lang/Class<*>;
            0    4     2  typeI  Ljava/lang/Class<*>;
            1    4     3      a  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    4     4      i  Lorg/graalvm/compiler/core/common/type/Stamp;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      typeA  
      typeI  

  private void testJoinInterface1(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
        start local 1 // java.lang.Class typeA
        start local 2 // java.lang.Class typeI
         0: .line 161
            aload 0 /* this */
            aload 1 /* typeA */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* aNonNull */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp aNonNull
         1: .line 162
            aload 0 /* this */
            aload 2 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* i */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp i
         2: .line 163
            aload 3 /* aNonNull */
            aload 4 /* i */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 5 /* join */
        start local 5 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 164
            aload 5 /* join */
            instanceof org.graalvm.compiler.core.common.type.ObjectStamp
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 165
            aload 5 /* join */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.nonNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         5: .line 166
            return
        end local 5 // org.graalvm.compiler.core.common.type.Stamp join
        end local 4 // org.graalvm.compiler.core.common.type.Stamp i
        end local 3 // org.graalvm.compiler.core.common.type.Stamp aNonNull
        end local 2 // java.lang.Class typeI
        end local 1 // java.lang.Class typeA
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            0    6     1     typeA  Ljava/lang/Class<*>;
            0    6     2     typeI  Ljava/lang/Class<*>;
            1    6     3  aNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    6     4         i  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    6     5      join  Lorg/graalvm/compiler/core/common/type/Stamp;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      typeA  
      typeI  

  private void testJoinInterface2(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
        start local 1 // java.lang.Class typeB
        start local 2 // java.lang.Class typeI
         0: .line 169
            aload 0 /* this */
            aload 1 /* typeB */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* bExact */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp bExact
         1: .line 170
            aload 0 /* this */
            aload 2 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* i */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp i
         2: .line 171
            aload 4 /* i */
            aload 3 /* bExact */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 5 /* join */
        start local 5 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 172
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* join */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 173
            return
        end local 5 // org.graalvm.compiler.core.common.type.Stamp join
        end local 4 // org.graalvm.compiler.core.common.type.Stamp i
        end local 3 // org.graalvm.compiler.core.common.type.Stamp bExact
        end local 2 // java.lang.Class typeI
        end local 1 // java.lang.Class typeB
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            0    5     1   typeB  Ljava/lang/Class<*>;
            0    5     2   typeI  Ljava/lang/Class<*>;
            1    5     3  bExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     4       i  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     5    join  Lorg/graalvm/compiler/core/common/type/Stamp;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      typeB  
      typeI  

  private void testJoinInterface3(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
        start local 1 // java.lang.Class typeB
        start local 2 // java.lang.Class typeI
         0: .line 176
            aload 0 /* this */
            aload 1 /* typeB */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* bExact */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp bExact
         1: .line 178
            aload 0 /* this */
            aload 2 /* typeI */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokestatic org.graalvm.compiler.core.common.type.TypeReference.createWithoutAssumptions:(Ljdk/vm/ci/meta/ResolvedJavaType;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* i */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp i
         2: .line 179
            aload 4 /* i */
            aload 3 /* bExact */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampJoinTest.join:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 5 /* join */
        start local 5 // org.graalvm.compiler.core.common.type.Stamp join
         3: .line 180
            aload 3 /* bExact */
            aload 5 /* join */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 181
            return
        end local 5 // org.graalvm.compiler.core.common.type.Stamp join
        end local 4 // org.graalvm.compiler.core.common.type.Stamp i
        end local 3 // org.graalvm.compiler.core.common.type.Stamp bExact
        end local 2 // java.lang.Class typeI
        end local 1 // java.lang.Class typeB
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            0    5     1   typeB  Ljava/lang/Class<*>;
            0    5     2   typeI  Ljava/lang/Class<*>;
            1    5     3  bExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     4       i  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     5    join  Lorg/graalvm/compiler/core/common/type/Stamp;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      typeB  
      typeI  

  public void testAlwaysArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
         0: .line 185
            aload 0 /* this */
            ldc Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* object */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp object
         1: .line 186
            aload 0 /* this */
            ldc Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* objectExact */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp objectExact
         2: .line 187
            aload 0 /* this */
            ldc [Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* objectArray */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp objectArray
         3: .line 188
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* a */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp a
         4: .line 189
            aload 0 /* this */
            ldc [Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampJoinTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 5 /* aArray */
        start local 5 // org.graalvm.compiler.core.common.type.Stamp aArray
         5: .line 191
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:()Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.asAlwaysArray:()Lorg/graalvm/compiler/core/common/type/AbstractObjectStamp;
            astore 6 /* alwaysArray */
        start local 6 // org.graalvm.compiler.core.common.type.Stamp alwaysArray
         6: .line 193
            aload 1 /* object */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         7: .line 194
            aload 2 /* objectExact */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         8: .line 195
            aload 3 /* objectArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         9: .line 196
            aload 4 /* a */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        10: .line 197
            aload 5 /* aArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        11: .line 198
            aload 6 /* alwaysArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        12: .line 204
            aload 1 /* object */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        13: .line 205
            aload 2 /* objectExact */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        14: .line 206
            aload 3 /* objectArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 15
            iconst_1
            goto 16
      StackMap locals: org.graalvm.compiler.nodes.test.ObjectStampJoinTest org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp org.graalvm.compiler.core.common.type.Stamp
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: invokestatic org.junit.Assert.assertTrue:(Z)V
        17: .line 207
            aload 4 /* a */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        18: .line 208
            aload 5 /* aArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* aArray */
            if_acmpne 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: invokestatic org.junit.Assert.assertTrue:(Z)V
        21: .line 209
            aload 6 /* alwaysArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 6 /* alwaysArray */
            if_acmpne 22
            iconst_1
            goto 23
      StackMap locals:
      StackMap stack:
        22: iconst_0
      StackMap locals:
      StackMap stack: int
        23: invokestatic org.junit.Assert.assertTrue:(Z)V
        24: .line 211
            aload 1 /* object */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 25
            iconst_1
            goto 26
      StackMap locals:
      StackMap stack:
        25: iconst_0
      StackMap locals:
      StackMap stack: int
        26: invokestatic org.junit.Assert.assertTrue:(Z)V
        27: .line 212
            aload 2 /* objectExact */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        28: .line 213
            aload 3 /* objectArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 29
            iconst_1
            goto 30
      StackMap locals:
      StackMap stack:
        29: iconst_0
      StackMap locals:
      StackMap stack: int
        30: invokestatic org.junit.Assert.assertTrue:(Z)V
        31: .line 214
            aload 4 /* a */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        32: .line 215
            aload 5 /* aArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* aArray */
            if_acmpne 33
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: invokestatic org.junit.Assert.assertTrue:(Z)V
        35: .line 216
            aload 6 /* alwaysArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 36
            iconst_1
            goto 37
      StackMap locals:
      StackMap stack:
        36: iconst_0
      StackMap locals:
      StackMap stack: int
        37: invokestatic org.junit.Assert.assertTrue:(Z)V
        38: .line 218
            aload 1 /* object */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* a */
            if_acmpne 39
            iconst_1
            goto 40
      StackMap locals:
      StackMap stack:
        39: iconst_0
      StackMap locals:
      StackMap stack: int
        40: invokestatic org.junit.Assert.assertTrue:(Z)V
        41: .line 219
            aload 2 /* objectExact */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        42: .line 220
            aload 3 /* objectArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        43: .line 221
            aload 4 /* a */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* a */
            if_acmpne 44
            iconst_1
            goto 45
      StackMap locals:
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: invokestatic org.junit.Assert.assertTrue:(Z)V
        46: .line 222
            aload 5 /* aArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        47: .line 223
            aload 6 /* alwaysArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.alwaysNull:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        48: .line 228
            aload 1 /* object */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.asNonNull:()Lorg/graalvm/compiler/core/common/type/AbstractPointerStamp;
            astore 1 /* object */
        49: .line 229
            aload 2 /* objectExact */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.asNonNull:()Lorg/graalvm/compiler/core/common/type/AbstractPointerStamp;
            astore 2 /* objectExact */
        50: .line 230
            aload 3 /* objectArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.asNonNull:()Lorg/graalvm/compiler/core/common/type/AbstractPointerStamp;
            astore 3 /* objectArray */
        51: .line 231
            aload 4 /* a */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.asNonNull:()Lorg/graalvm/compiler/core/common/type/AbstractPointerStamp;
            astore 4 /* a */
        52: .line 232
            aload 5 /* aArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.asNonNull:()Lorg/graalvm/compiler/core/common/type/AbstractPointerStamp;
            astore 5 /* aArray */
        53: .line 234
            aload 1 /* object */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        54: .line 235
            aload 2 /* objectExact */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        55: .line 236
            aload 3 /* objectArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 56
            iconst_1
            goto 57
      StackMap locals:
      StackMap stack:
        56: iconst_0
      StackMap locals:
      StackMap stack: int
        57: invokestatic org.junit.Assert.assertTrue:(Z)V
        58: .line 237
            aload 4 /* a */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        59: .line 238
            aload 5 /* aArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* aArray */
            if_acmpne 60
            iconst_1
            goto 61
      StackMap locals:
      StackMap stack:
        60: iconst_0
      StackMap locals:
      StackMap stack: int
        61: invokestatic org.junit.Assert.assertTrue:(Z)V
        62: .line 239
            aload 6 /* alwaysArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 6 /* alwaysArray */
            if_acmpne 63
            iconst_1
            goto 64
      StackMap locals:
      StackMap stack:
        63: iconst_0
      StackMap locals:
      StackMap stack: int
        64: invokestatic org.junit.Assert.assertTrue:(Z)V
        65: .line 241
            aload 1 /* object */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 66
            iconst_1
            goto 67
      StackMap locals:
      StackMap stack:
        66: iconst_0
      StackMap locals:
      StackMap stack: int
        67: invokestatic org.junit.Assert.assertTrue:(Z)V
        68: .line 242
            aload 2 /* objectExact */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        69: .line 243
            aload 3 /* objectArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 70
            iconst_1
            goto 71
      StackMap locals:
      StackMap stack:
        70: iconst_0
      StackMap locals:
      StackMap stack: int
        71: invokestatic org.junit.Assert.assertTrue:(Z)V
        72: .line 244
            aload 4 /* a */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        73: .line 245
            aload 5 /* aArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 5 /* aArray */
            if_acmpne 74
            iconst_1
            goto 75
      StackMap locals:
      StackMap stack:
        74: iconst_0
      StackMap locals:
      StackMap stack: int
        75: invokestatic org.junit.Assert.assertTrue:(Z)V
        76: .line 246
            aload 6 /* alwaysArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 3 /* objectArray */
            if_acmpne 77
            iconst_1
            goto 78
      StackMap locals:
      StackMap stack:
        77: iconst_0
      StackMap locals:
      StackMap stack: int
        78: invokestatic org.junit.Assert.assertTrue:(Z)V
        79: .line 248
            aload 1 /* object */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* a */
            if_acmpne 80
            iconst_1
            goto 81
      StackMap locals:
      StackMap stack:
        80: iconst_0
      StackMap locals:
      StackMap stack: int
        81: invokestatic org.junit.Assert.assertTrue:(Z)V
        82: .line 249
            aload 2 /* objectExact */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        83: .line 250
            aload 3 /* objectArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        84: .line 251
            aload 4 /* a */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 4 /* a */
            if_acmpne 85
            iconst_1
            goto 86
      StackMap locals:
      StackMap stack:
        85: iconst_0
      StackMap locals:
      StackMap stack: int
        86: invokestatic org.junit.Assert.assertTrue:(Z)V
        87: .line 252
            aload 5 /* aArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        88: .line 253
            aload 6 /* alwaysArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.join:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.isEmpty:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        89: .line 254
            return
        end local 6 // org.graalvm.compiler.core.common.type.Stamp alwaysArray
        end local 5 // org.graalvm.compiler.core.common.type.Stamp aArray
        end local 4 // org.graalvm.compiler.core.common.type.Stamp a
        end local 3 // org.graalvm.compiler.core.common.type.Stamp objectArray
        end local 2 // org.graalvm.compiler.core.common.type.Stamp objectExact
        end local 1 // org.graalvm.compiler.core.common.type.Stamp object
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampJoinTest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   90     0         this  Lorg/graalvm/compiler/nodes/test/ObjectStampJoinTest;
            1   90     1       object  Lorg/graalvm/compiler/core/common/type/Stamp;
            2   90     2  objectExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            3   90     3  objectArray  Lorg/graalvm/compiler/core/common/type/Stamp;
            4   90     4            a  Lorg/graalvm/compiler/core/common/type/Stamp;
            5   90     5       aArray  Lorg/graalvm/compiler/core/common/type/Stamp;
            6   90     6  alwaysArray  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ObjectStampJoinTest.java"
InnerClasses:
  protected A = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$A of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected B = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$B of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected C = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$C of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected D = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$D of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract E = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$E of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract I = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$I of org.graalvm.compiler.nodes.test.AbstractObjectStampTest