public final class com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest extends com.oracle.truffle.llvm.tests.interop.InteropTestBase
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest
  super_class: com.oracle.truffle.llvm.tests.interop.InteropTestBase
{
  private static org.graalvm.polyglot.Value testLibrary;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.graalvm.polyglot.Value freeSeq;
    descriptor: Lorg/graalvm/polyglot/Value;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 0)

  public java.lang.Number start;
    descriptor: Ljava/lang/Number;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 1)

  public java.lang.Number step;
    descriptor: Ljava/lang/Number;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 2)

  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.PrimitiveArrayInteropTest 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.PrimitiveArrayInteropTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/tests/interop/PrimitiveArrayInteropTest;

  public static void loadTestBitcode();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 55
            ldc "primitiveArrayInterop.c"
            invokestatic com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.loadTestBitcodeValue:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            putstatic com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.testLibrary:Lorg/graalvm/polyglot/Value;
         1: .line 56
            getstatic com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.testLibrary:Lorg/graalvm/polyglot/Value;
            ldc "free_seq"
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            putstatic com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.freeSeq:Lorg/graalvm/polyglot/Value;
         2: .line 57
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.junit.BeforeClass()

  public static java.util.Collection<java.lang.Object[]> data();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 61
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* tests */
        start local 0 // java.util.ArrayList tests
         1: .line 62
            aload 0 /* tests */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "i8"
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            dup
            iconst_2
            iconst_3
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 63
            aload 0 /* tests */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "i16"
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            aastore
            dup
            iconst_2
            iconst_3
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 64
            aload 0 /* tests */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "i32"
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 65
            aload 0 /* tests */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "i64"
            aastore
            dup
            iconst_1
            ldc 5
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            ldc 3
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 66
            aload 0 /* tests */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "float"
            aastore
            dup
            iconst_1
            ldc 5.5
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            aastore
            dup
            iconst_2
            ldc 3.125
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 67
            aload 0 /* tests */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "double"
            aastore
            dup
            iconst_1
            ldc 5.7
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_2
            ldc 3.1
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 68
            aload 0 /* tests */
            areturn
        end local 0 // java.util.ArrayList tests
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    8     0  tests  Ljava/util/ArrayList<[Ljava/lang/Object;>;
    Signature: ()Ljava/util/Collection<[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameters(name = "{0}")

  public void testFromArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest this
         0: .line 77
            getstatic com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.testLibrary:Lorg/graalvm/polyglot/Value;
            new java.lang.StringBuilder
            dup
            ldc "alloc_seq_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.start:Ljava/lang/Number;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.step:Ljava/lang/Number;
            aastore
            dup
            iconst_2
            bipush 20
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 1 /* seq */
        start local 1 // org.graalvm.polyglot.Value seq
         1: .line 78
            ldc "hasArrayElements"
            aload 1 /* seq */
            invokevirtual org.graalvm.polyglot.Value.hasArrayElements:()Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         2: .line 79
            ldc "arraySize"
            ldc 20
            aload 1 /* seq */
            invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;JJ)V
         3: .line 80
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 8
         5: .line 81
      StackMap locals: org.graalvm.polyglot.Value int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.start:Ljava/lang/Number;
            invokevirtual java.lang.Number.doubleValue:()D
            iload 2 /* i */
            i2d
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.step:Ljava/lang/Number;
            invokevirtual java.lang.Number.doubleValue:()D
            dmul
            dadd
            dstore 3 /* expected */
        start local 3 // double expected
         6: .line 82
            new java.lang.StringBuilder
            dup
            ldc "seq["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            dload 3 /* expected */
            aload 1 /* seq */
            iload 2 /* i */
            i2l
            invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
            invokevirtual org.graalvm.polyglot.Value.asDouble:()D
            dconst_0
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;DDD)V
        end local 3 // double expected
         7: .line 80
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            bipush 20
            if_icmplt 5
        end local 2 // int i
         9: .line 84
            getstatic com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.freeSeq:Lorg/graalvm/polyglot/Value;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* seq */
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            pop
        10: .line 85
            return
        end local 1 // org.graalvm.polyglot.Value seq
        end local 0 // com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/oracle/truffle/llvm/tests/interop/PrimitiveArrayInteropTest;
            1   11     1       seq  Lorg/graalvm/polyglot/Value;
            4    9     2         i  I
            6    7     3  expected  D
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAsArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest this
         0: .line 89
            bipush 15
            newarray 10
            astore 1 /* arr */
        start local 1 // int[] arr
         1: .line 90
            iconst_0
            istore 2 /* sum */
        start local 2 // int sum
         2: .line 91
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 92
      StackMap locals: int[] int int
      StackMap stack:
            aload 1 /* arr */
            iload 3 /* i */
            iconst_2
            iload 3 /* i */
            imul
            bipush 7
            isub
            iastore
         5: .line 93
            iload 2 /* sum */
            aload 1 /* arr */
            iload 3 /* i */
            iaload
            iadd
            istore 2 /* sum */
         6: .line 91
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 1 /* arr */
            arraylength
            if_icmplt 4
        end local 3 // int i
         8: .line 96
            getstatic com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.testLibrary:Lorg/graalvm/polyglot/Value;
            new java.lang.StringBuilder
            dup
            ldc "sum_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.graalvm.polyglot.Value.getMember:(Ljava/lang/String;)Lorg/graalvm/polyglot/Value;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arr */
            aastore
            invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
            astore 3 /* ret */
        start local 3 // org.graalvm.polyglot.Value ret
         9: .line 97
            ldc "sum"
            iload 2 /* sum */
            i2d
            aload 3 /* ret */
            invokevirtual org.graalvm.polyglot.Value.asDouble:()D
            dconst_0
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;DDD)V
        10: .line 98
            return
        end local 3 // org.graalvm.polyglot.Value ret
        end local 2 // int sum
        end local 1 // int[] arr
        end local 0 // com.oracle.truffle.llvm.tests.interop.PrimitiveArrayInteropTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/oracle/truffle/llvm/tests/interop/PrimitiveArrayInteropTest;
            1   11     1   arr  [I
            2   11     2   sum  I
            3    8     3     i  I
            9   11     3   ret  Lorg/graalvm/polyglot/Value;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "PrimitiveArrayInteropTest.java"
InnerClasses:
  public abstract Parameter = org.junit.runners.Parameterized$Parameter of org.junit.runners.Parameterized
  public abstract Parameters = org.junit.runners.Parameterized$Parameters of org.junit.runners.Parameterized
  public abstract UseParametersRunnerFactory = org.junit.runners.Parameterized$UseParametersRunnerFactory of org.junit.runners.Parameterized
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)
      org.junit.runners.Parameterized$UseParametersRunnerFactory(value = Lcom/oracle/truffle/tck/TruffleRunner$ParametersFactory;)