public final class org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest extends org.graalvm.compiler.core.test.GraalCompilerTest
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest
  super_class: org.graalvm.compiler.core.test.GraalCompilerTest
{
  public double input0;
    descriptor: D
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 0)

  public double input1;
    descriptor: D
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 1)

  public double input2;
    descriptor: D
    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 // org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest this
         0: .line 46
            aload 0 /* this */
            invokespecial org.graalvm.compiler.core.test.GraalCompilerTest.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/jdk9/test/MathDoubleFMATest;

  public void checkNotSPARC();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest this
         0: .line 50
            ldc "skipping tests on SPARC"
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest.getTarget:()Ljdk/vm/ci/code/TargetDescription;
            getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
            invokestatic org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest.isSPARC:(Ljdk/vm/ci/code/Architecture;)Z
            invokestatic org.junit.Assume.assumeFalse:(Ljava/lang/String;Z)V
         1: .line 51
            ldc Lorg/graalvm/compiler/runtime/RuntimeProvider;
            invokestatic org.graalvm.compiler.api.test.Graal.getRequiredCapability:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider
            astore 1 /* rt */
        start local 1 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider rt
         2: .line 52
            ldc "skipping FMA specific test"
            aload 1 /* rt */
            invokeinterface org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider.getVMConfig:()Lorg/graalvm/compiler/hotspot/GraalHotSpotVMConfig;
            getfield org.graalvm.compiler.hotspot.GraalHotSpotVMConfig.useFMAIntrinsics:Z
            invokestatic org.junit.Assume.assumeTrue:(Ljava/lang/String;Z)V
         3: .line 53
            return
        end local 1 // org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider rt
        end local 0 // org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/compiler/hotspot/jdk9/test/MathDoubleFMATest;
            2    4     1    rt  Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
    RuntimeVisibleAnnotations: 
      org.junit.Before()

  public static java.util.Collection<java.lang.Object[]> data();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=17, args_size=0
         0: .line 57
            bipush 12
            newarray 7
            dup
            iconst_0
            dconst_0
            dastore
            dup
            iconst_1
            dconst_1
            dastore
            dup
            iconst_2
            ldc 4.0
            dastore
            dup
            iconst_3
            ldc -0.0
            dastore
            dup
            iconst_4
            ldc -1.0
            dastore
            dup
            iconst_5
            ldc -4.0
            dastore
            dup
            bipush 6
            ldc 4.9E-324
            dastore
            dup
            bipush 7
            ldc 1.7976931348623157E308
            dastore
            dup
            bipush 8
            ldc -Infinity
            dastore
            dup
            bipush 9
            ldc Infinity
            dastore
            dup
            bipush 10
         1: .line 58
            ldc NaN
            dastore
            dup
            bipush 11
            ldc -4503599627370495
            invokestatic java.lang.Double.longBitsToDouble:(J)D
            dastore
         2: .line 57
            astore 0 /* inputs */
        start local 0 // double[] inputs
         3: .line 60
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* tests */
        start local 1 // java.util.List tests
         4: .line 61
            aload 0 /* inputs */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 16
      StackMap locals: double[] java.util.List top top int int double[]
      StackMap stack:
         5: aload 6
            iload 4
            daload
            dstore 2 /* a */
        start local 2 // double a
         6: .line 62
            aload 0 /* inputs */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 14
      StackMap locals: double[] java.util.List double int int double[] top top int int double[]
      StackMap stack:
         7: aload 11
            iload 9
            daload
            dstore 7 /* b */
        start local 7 // double b
         8: .line 63
            aload 0 /* inputs */
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 12
      StackMap locals: double[] java.util.List double int int double[] double int int double[] top top int int double[]
      StackMap stack:
         9: aload 16
            iload 14
            daload
            dstore 12 /* c */
        start local 12 // double c
        10: .line 64
            aload 1 /* tests */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            dload 2 /* a */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            dload 7 /* b */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_2
            dload 12 /* c */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // double c
        11: .line 63
            iinc 14 1
      StackMap locals:
      StackMap stack:
        12: iload 14
            iload 15
            if_icmplt 9
        end local 7 // double b
        13: .line 62
            iinc 9 1
      StackMap locals: double[] java.util.List double int int double[] top top int int double[]
      StackMap stack:
        14: iload 9
            iload 10
            if_icmplt 7
        end local 2 // double a
        15: .line 61
            iinc 4 1
      StackMap locals: double[] java.util.List top top int int double[]
      StackMap stack:
        16: iload 4
            iload 5
            if_icmplt 5
        17: .line 68
            aload 1 /* tests */
            areturn
        end local 1 // java.util.List tests
        end local 0 // double[] inputs
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            3   18     0  inputs  [D
            4   18     1   tests  Ljava/util/List<[Ljava/lang/Object;>;
            6   15     2       a  D
            8   13     7       b  D
           10   11    12       c  D
    Signature: ()Ljava/util/Collection<[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameters(name = "{0}, {1}, {2}")

  public static double fma(double, double, double);
    descriptor: (DDD)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // double a
        start local 2 // double b
        start local 4 // double c
         0: .line 76
            dload 0 /* a */
            dload 2 /* b */
            dload 4 /* c */
            invokestatic java.lang.Math.fma:(DDD)D
            dreturn
        end local 4 // double c
        end local 2 // double b
        end local 0 // double a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  D
            0    1     2     b  D
            0    1     4     c  D
    MethodParameters:
      Name  Flags
      a     
      b     
      c     

  public void testFMA();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest this
         0: .line 81
            aload 0 /* this */
            ldc "fma"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest.input0:D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest.input1:D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest.input2:D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokevirtual org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest.test:(Ljava/lang/String;[Ljava/lang/Object;)Lorg/graalvm/compiler/core/test/GraalCompilerTest$Result;
            pop
         1: .line 82
            return
        end local 0 // org.graalvm.compiler.hotspot.jdk9.test.MathDoubleFMATest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/hotspot/jdk9/test/MathDoubleFMATest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "MathDoubleFMATest.java"
InnerClasses:
  public Result = org.graalvm.compiler.core.test.GraalCompilerTest$Result of org.graalvm.compiler.core.test.GraalCompilerTest
  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
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)