(TranslationUnit
    (SymbolTable
        1
        {
            template_lapack_01:
                (Program
                    (SymbolTable
                        23
                        {
                            cast_r:
                                (ExternalSymbol
                                    23
                                    cast_r
                                    2 cast_r
                                    template_lapack_01_m
                                    []
                                    cast_r
                                    Public
                                ),
                            external_matmul_t:
                                (ExternalSymbol
                                    23
                                    external_matmul_t
                                    2 external_matmul_t
                                    template_lapack_01_m
                                    []
                                    external_matmul_t
                                    Public
                                ),
                            gemm_r:
                                (ExternalSymbol
                                    23
                                    gemm_r
                                    2 gemm_r
                                    template_lapack_01_m
                                    []
                                    gemm_r
                                    Public
                                ),
                            my_cast_to_double:
                                (ExternalSymbol
                                    23
                                    my_cast_to_double
                                    2 my_cast_to_double
                                    template_lapack_01_m
                                    []
                                    my_cast_to_double
                                    Public
                                ),
                            my_cast_to_real:
                                (ExternalSymbol
                                    23
                                    my_cast_to_real
                                    2 my_cast_to_real
                                    template_lapack_01_m
                                    []
                                    my_cast_to_real
                                    Public
                                ),
                            my_external_matmul:
                                (ExternalSymbol
                                    23
                                    my_external_matmul
                                    2 my_external_matmul
                                    template_lapack_01_m
                                    []
                                    my_external_matmul
                                    Public
                                ),
                            my_gemm_double:
                                (ExternalSymbol
                                    23
                                    my_gemm_double
                                    2 my_gemm_double
                                    template_lapack_01_m
                                    []
                                    my_gemm_double
                                    Public
                                ),
                            my_gemm_real:
                                (ExternalSymbol
                                    23
                                    my_gemm_real
                                    2 my_gemm_real
                                    template_lapack_01_m
                                    []
                                    my_gemm_real
                                    Public
                                ),
                            simple_external_matmul:
                                (ExternalSymbol
                                    23
                                    simple_external_matmul
                                    2 simple_external_matmul
                                    template_lapack_01_m
                                    []
                                    simple_external_matmul
                                    Public
                                ),
                            test_template:
                                (ExternalSymbol
                                    23
                                    test_template
                                    2 test_template
                                    template_lapack_01_m
                                    []
                                    test_template
                                    Public
                                )
                        })
                    template_lapack_01
                    [template_lapack_01_m]
                    [(SubroutineCall
                        23 test_template
                        ()
                        []
                        ()
                    )]
                ),
            template_lapack_01_m:
                (Module
                    (SymbolTable
                        2
                        {
                            cast_r:
                                (Requirement
                                    (SymbolTable
                                        5
                                        {
                                            cast:
                                                (Function
                                                    (SymbolTable
                                                        6
                                                        {
                                                            arg:
                                                                (Variable
                                                                    6
                                                                    arg
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    6
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        u
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    cast
                                                    (FunctionType
                                                        [(TypeParameter
                                                            t
                                                        )]
                                                        (TypeParameter
                                                            u
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .true.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 6 arg)]
                                                    []
                                                    (Var 6 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            t:
                                                (Variable
                                                    5
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            u:
                                                (Variable
                                                    5
                                                    u
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        u
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    cast_r
                                    [t
                                    u
                                    cast]
                                    []
                                ),
                            external_matmul_t:
                                (Template
                                    (SymbolTable
                                        7
                                        {
                                            cast_to_t:
                                                (Function
                                                    (SymbolTable
                                                        9
                                                        {
                                                            arg:
                                                                (Variable
                                                                    9
                                                                    arg
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    9
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    cast_to_t
                                                    (FunctionType
                                                        [(Real 4)]
                                                        (TypeParameter
                                                            t
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .true.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 9 arg)]
                                                    []
                                                    (Var 9 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            gemm:
                                                (Function
                                                    (SymbolTable
                                                        8
                                                        {
                                                            a:
                                                                (Variable
                                                                    8
                                                                    a
                                                                    [lda]
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 8 lda))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            alpha:
                                                                (Variable
                                                                    8
                                                                    alpha
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    8
                                                                    b
                                                                    [ldb]
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 8 ldb))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            beta:
                                                                (Variable
                                                                    8
                                                                    beta
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    8
                                                                    c
                                                                    [ldc]
                                                                    Out
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 8 ldc))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    8
                                                                    k
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            lda:
                                                                (Variable
                                                                    8
                                                                    lda
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ldb:
                                                                (Variable
                                                                    8
                                                                    ldb
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ldc:
                                                                (Variable
                                                                    8
                                                                    ldc
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    8
                                                                    m
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    8
                                                                    n
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            transa:
                                                                (Variable
                                                                    8
                                                                    transa
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (String 1 1 () PointerString)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            transb:
                                                                (Variable
                                                                    8
                                                                    transb
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (String 1 1 () PointerString)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    gemm
                                                    (FunctionType
                                                        [(String 1 1 () PointerString)
                                                        (String 1 1 () PointerString)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (TypeParameter
                                                            t
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                7
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                9
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)
                                                        (TypeParameter
                                                            t
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                12
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)]
                                                        ()
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 8 transa)
                                                    (Var 8 transb)
                                                    (Var 8 m)
                                                    (Var 8 n)
                                                    (Var 8 k)
                                                    (Var 8 alpha)
                                                    (Var 8 a)
                                                    (Var 8 lda)
                                                    (Var 8 b)
                                                    (Var 8 ldb)
                                                    (Var 8 beta)
                                                    (Var 8 c)
                                                    (Var 8 ldc)]
                                                    []
                                                    ()
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            nonsimple_external_matmul:
                                                (Function
                                                    (SymbolTable
                                                        10
                                                        {
                                                            a:
                                                                (Variable
                                                                    10
                                                                    a
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    10
                                                                    b
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    10
                                                                    c
                                                                    [a
                                                                    b]
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 10 a)
                                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))
                                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 10 b)
                                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))]
                                                                        PointerToDataArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    10
                                                                    k
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    10
                                                                    m
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    10
                                                                    n
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    nonsimple_external_matmul
                                                    (FunctionType
                                                        [(Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )]
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    0
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            ((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    1
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))]
                                                            PointerToDataArray
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [cast_to_t
                                                    gemm]
                                                    [(Var 10 a)
                                                    (Var 10 b)]
                                                    [(Assignment
                                                        (Var 10 m)
                                                        (ArraySize
                                                            (Var 10 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 10 n)
                                                        (ArraySize
                                                            (Var 10 b)
                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 10 k)
                                                        (ArraySize
                                                            (Var 10 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (SubroutineCall
                                                        7 gemm
                                                        ()
                                                        [((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((Var 10 m))
                                                        ((Var 10 n))
                                                        ((Var 10 k))
                                                        ((FunctionCall
                                                            7 cast_to_t
                                                            ()
                                                            [((RealConstant
                                                                1.000000
                                                                (Real 4)
                                                            ))]
                                                            (TypeParameter
                                                                t
                                                            )
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 10 a)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 10 m))
                                                        ((ArrayPhysicalCast
                                                            (Var 10 b)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 10 k))
                                                        ((FunctionCall
                                                            7 cast_to_t
                                                            ()
                                                            [((RealConstant
                                                                0.000000
                                                                (Real 4)
                                                            ))]
                                                            (TypeParameter
                                                                t
                                                            )
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 10 c)
                                                            PointerToDataArray
                                                            DescriptorArray
                                                            (Array
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 10 a)
                                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))
                                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 10 b)
                                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 10 m))]
                                                        ()
                                                    )]
                                                    (Var 10 c)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            real:
                                                (Variable
                                                    7
                                                    real
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            t:
                                                (Variable
                                                    7
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    external_matmul_t
                                    [t
                                    gemm
                                    cast_to_t]
                                    [(Require
                                        gemm_r
                                        [t
                                        gemm]
                                    )
                                    (Require
                                        cast_r
                                        [real
                                        t
                                        cast_to_t]
                                    )]
                                ),
                            gemm_r:
                                (Requirement
                                    (SymbolTable
                                        3
                                        {
                                            gemm:
                                                (Function
                                                    (SymbolTable
                                                        4
                                                        {
                                                            a:
                                                                (Variable
                                                                    4
                                                                    a
                                                                    [lda]
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 4 lda))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            alpha:
                                                                (Variable
                                                                    4
                                                                    alpha
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    4
                                                                    b
                                                                    [ldb]
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 4 ldb))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            beta:
                                                                (Variable
                                                                    4
                                                                    beta
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    4
                                                                    c
                                                                    [ldc]
                                                                    Out
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 4 ldc))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    4
                                                                    k
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            lda:
                                                                (Variable
                                                                    4
                                                                    lda
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ldb:
                                                                (Variable
                                                                    4
                                                                    ldb
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ldc:
                                                                (Variable
                                                                    4
                                                                    ldc
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    4
                                                                    m
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    4
                                                                    n
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            transa:
                                                                (Variable
                                                                    4
                                                                    transa
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (String 1 1 () PointerString)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            transb:
                                                                (Variable
                                                                    4
                                                                    transb
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (String 1 1 () PointerString)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    gemm
                                                    (FunctionType
                                                        [(String 1 1 () PointerString)
                                                        (String 1 1 () PointerString)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (TypeParameter
                                                            t
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                7
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                9
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)
                                                        (TypeParameter
                                                            t
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                12
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)]
                                                        ()
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 4 transa)
                                                    (Var 4 transb)
                                                    (Var 4 m)
                                                    (Var 4 n)
                                                    (Var 4 k)
                                                    (Var 4 alpha)
                                                    (Var 4 a)
                                                    (Var 4 lda)
                                                    (Var 4 b)
                                                    (Var 4 ldb)
                                                    (Var 4 beta)
                                                    (Var 4 c)
                                                    (Var 4 ldc)]
                                                    []
                                                    ()
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            t:
                                                (Variable
                                                    3
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    gemm_r
                                    [t
                                    gemm]
                                    []
                                ),
                            my_cast_to_double:
                                (Function
                                    (SymbolTable
                                        14
                                        {
                                            a:
                                                (Variable
                                                    14
                                                    a
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            b:
                                                (Variable
                                                    14
                                                    b
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 8)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            dp:
                                                (Variable
                                                    14
                                                    dp
                                                    []
                                                    Local
                                                    (TypeInquiry
                                                        Kind
                                                        (Real 8)
                                                        (RealConstant
                                                            1.000000
                                                            (Real 8)
                                                        )
                                                        (Integer 4)
                                                        (IntegerConstant 8 (Integer 4) Decimal)
                                                    )
                                                    (IntegerConstant 8 (Integer 4) Decimal)
                                                    Parameter
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    my_cast_to_double
                                    (FunctionType
                                        [(Real 4)]
                                        (Real 8)
                                        Source
                                        Implementation
                                        ()
                                        .true.
                                        .true.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 14 a)]
                                    [(Assignment
                                        (Var 14 b)
                                        (Cast
                                            (Var 14 a)
                                            RealToReal
                                            (Real 8)
                                            ()
                                        )
                                        ()
                                    )]
                                    (Var 14 b)
                                    Private
                                    .false.
                                    .false.
                                    ()
                                ),
                            my_cast_to_real:
                                (Function
                                    (SymbolTable
                                        13
                                        {
                                            a:
                                                (Variable
                                                    13
                                                    a
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            b:
                                                (Variable
                                                    13
                                                    b
                                                    []
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    my_cast_to_real
                                    (FunctionType
                                        [(Real 4)]
                                        (Real 4)
                                        Source
                                        Implementation
                                        ()
                                        .true.
                                        .true.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 13 a)]
                                    [(Assignment
                                        (Var 13 b)
                                        (Var 13 a)
                                        ()
                                    )]
                                    (Var 13 b)
                                    Private
                                    .false.
                                    .false.
                                    ()
                                ),
                            my_external_matmul:
                                (Function
                                    (SymbolTable
                                        15
                                        {
                                            a:
                                                (Variable
                                                    15
                                                    a
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [(()
                                                        ())
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            b:
                                                (Variable
                                                    15
                                                    b
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [(()
                                                        ())
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            c:
                                                (Variable
                                                    15
                                                    c
                                                    [a
                                                    b]
                                                    ReturnVar
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (ArraySize
                                                            (Var 15 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        ))
                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                        (ArraySize
                                                            (Var 15 b)
                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        ))]
                                                        PointerToDataArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            k:
                                                (Variable
                                                    15
                                                    k
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            m:
                                                (Variable
                                                    15
                                                    m
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            n:
                                                (Variable
                                                    15
                                                    n
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    my_external_matmul
                                    (FunctionType
                                        [(Array
                                            (Real 4)
                                            [(()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                        (Array
                                            (Real 4)
                                            [(()
                                            ())
                                            (()
                                            ())]
                                            DescriptorArray
                                        )]
                                        (Array
                                            (Real 4)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (ArraySize
                                                (FunctionParam
                                                    0
                                                    (Array
                                                        (Real 4)
                                                        [(()
                                                        ())
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                )
                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                (Integer 4)
                                                ()
                                            ))
                                            ((IntegerConstant 1 (Integer 4) Decimal)
                                            (ArraySize
                                                (FunctionParam
                                                    1
                                                    (Array
                                                        (Real 4)
                                                        [(()
                                                        ())
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                )
                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                (Integer 4)
                                                ()
                                            ))]
                                            PointerToDataArray
                                        )
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    [my_cast_to_real
                                    my_gemm_real]
                                    [(Var 15 a)
                                    (Var 15 b)]
                                    [(Assignment
                                        (Var 15 m)
                                        (ArraySize
                                            (Var 15 a)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (Var 15 n)
                                        (ArraySize
                                            (Var 15 b)
                                            (IntegerConstant 2 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (Var 15 k)
                                        (ArraySize
                                            (Var 15 a)
                                            (IntegerConstant 1 (Integer 4) Decimal)
                                            (Integer 4)
                                            ()
                                        )
                                        ()
                                    )
                                    (SubroutineCall
                                        2 my_gemm_real
                                        ()
                                        [((StringConstant
                                            "n"
                                            (String 1 1 () PointerString)
                                        ))
                                        ((StringConstant
                                            "n"
                                            (String 1 1 () PointerString)
                                        ))
                                        ((Var 15 m))
                                        ((Var 15 n))
                                        ((Var 15 k))
                                        ((FunctionCall
                                            2 my_cast_to_real
                                            ()
                                            [((RealConstant
                                                1.000000
                                                (Real 4)
                                            ))]
                                            (Real 4)
                                            ()
                                            ()
                                        ))
                                        ((ArrayPhysicalCast
                                            (Var 15 a)
                                            DescriptorArray
                                            DescriptorArray
                                            (Array
                                                (Real 4)
                                                [(()
                                                ())
                                                (()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        ))
                                        ((Var 15 m))
                                        ((ArrayPhysicalCast
                                            (Var 15 b)
                                            DescriptorArray
                                            DescriptorArray
                                            (Array
                                                (Real 4)
                                                [(()
                                                ())
                                                (()
                                                ())]
                                                DescriptorArray
                                            )
                                            ()
                                        ))
                                        ((Var 15 k))
                                        ((FunctionCall
                                            2 my_cast_to_real
                                            ()
                                            [((RealConstant
                                                0.000000
                                                (Real 4)
                                            ))]
                                            (Real 4)
                                            ()
                                            ()
                                        ))
                                        ((ArrayPhysicalCast
                                            (Var 15 c)
                                            PointerToDataArray
                                            DescriptorArray
                                            (Array
                                                (Real 4)
                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                (ArraySize
                                                    (Var 15 a)
                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    ()
                                                ))
                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                (ArraySize
                                                    (Var 15 b)
                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                    (Integer 4)
                                                    ()
                                                ))]
                                                DescriptorArray
                                            )
                                            ()
                                        ))
                                        ((Var 15 m))]
                                        ()
                                    )]
                                    (Var 15 c)
                                    Private
                                    .false.
                                    .false.
                                    ()
                                ),
                            my_gemm_double:
                                (Function
                                    (SymbolTable
                                        12
                                        {
                                            a:
                                                (Variable
                                                    12
                                                    a
                                                    [lda]
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 8)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 12 lda))
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            alpha:
                                                (Variable
                                                    12
                                                    alpha
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 8)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            b:
                                                (Variable
                                                    12
                                                    b
                                                    [ldb]
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 8)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 12 ldb))
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            beta:
                                                (Variable
                                                    12
                                                    beta
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 8)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            c:
                                                (Variable
                                                    12
                                                    c
                                                    [ldc]
                                                    Out
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 8)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 12 ldc))
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            dp:
                                                (Variable
                                                    12
                                                    dp
                                                    []
                                                    Local
                                                    (TypeInquiry
                                                        Kind
                                                        (Real 8)
                                                        (RealConstant
                                                            1.000000
                                                            (Real 8)
                                                        )
                                                        (Integer 4)
                                                        (IntegerConstant 8 (Integer 4) Decimal)
                                                    )
                                                    (IntegerConstant 8 (Integer 4) Decimal)
                                                    Parameter
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            k:
                                                (Variable
                                                    12
                                                    k
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            lda:
                                                (Variable
                                                    12
                                                    lda
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            ldb:
                                                (Variable
                                                    12
                                                    ldb
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            ldc:
                                                (Variable
                                                    12
                                                    ldc
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            m:
                                                (Variable
                                                    12
                                                    m
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            n:
                                                (Variable
                                                    12
                                                    n
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            transa:
                                                (Variable
                                                    12
                                                    transa
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (String 1 1 () PointerString)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            transb:
                                                (Variable
                                                    12
                                                    transb
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (String 1 1 () PointerString)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    my_gemm_double
                                    (FunctionType
                                        [(String 1 1 () PointerString)
                                        (String 1 1 () PointerString)
                                        (Integer 4)
                                        (Integer 4)
                                        (Integer 4)
                                        (Real 8)
                                        (Array
                                            (Real 8)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (FunctionParam
                                                7
                                                (Integer 4)
                                                ()
                                            ))
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                        (Integer 4)
                                        (Array
                                            (Real 8)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (FunctionParam
                                                9
                                                (Integer 4)
                                                ()
                                            ))
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                        (Integer 4)
                                        (Real 8)
                                        (Array
                                            (Real 8)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (FunctionParam
                                                12
                                                (Integer 4)
                                                ()
                                            ))
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                        (Integer 4)]
                                        ()
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 12 transa)
                                    (Var 12 transb)
                                    (Var 12 m)
                                    (Var 12 n)
                                    (Var 12 k)
                                    (Var 12 alpha)
                                    (Var 12 a)
                                    (Var 12 lda)
                                    (Var 12 b)
                                    (Var 12 ldb)
                                    (Var 12 beta)
                                    (Var 12 c)
                                    (Var 12 ldc)]
                                    []
                                    ()
                                    Private
                                    .false.
                                    .false.
                                    ()
                                ),
                            my_gemm_real:
                                (Function
                                    (SymbolTable
                                        11
                                        {
                                            a:
                                                (Variable
                                                    11
                                                    a
                                                    [lda]
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 11 lda))
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            alpha:
                                                (Variable
                                                    11
                                                    alpha
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            b:
                                                (Variable
                                                    11
                                                    b
                                                    [ldb]
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 11 ldb))
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            beta:
                                                (Variable
                                                    11
                                                    beta
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            c:
                                                (Variable
                                                    11
                                                    c
                                                    [ldc]
                                                    Out
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (Var 11 ldc))
                                                        (()
                                                        ())]
                                                        DescriptorArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            k:
                                                (Variable
                                                    11
                                                    k
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            lda:
                                                (Variable
                                                    11
                                                    lda
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            ldb:
                                                (Variable
                                                    11
                                                    ldb
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            ldc:
                                                (Variable
                                                    11
                                                    ldc
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            m:
                                                (Variable
                                                    11
                                                    m
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            n:
                                                (Variable
                                                    11
                                                    n
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            transa:
                                                (Variable
                                                    11
                                                    transa
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (String 1 1 () PointerString)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            transb:
                                                (Variable
                                                    11
                                                    transb
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (String 1 1 () PointerString)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    my_gemm_real
                                    (FunctionType
                                        [(String 1 1 () PointerString)
                                        (String 1 1 () PointerString)
                                        (Integer 4)
                                        (Integer 4)
                                        (Integer 4)
                                        (Real 4)
                                        (Array
                                            (Real 4)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (FunctionParam
                                                7
                                                (Integer 4)
                                                ()
                                            ))
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                        (Integer 4)
                                        (Array
                                            (Real 4)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (FunctionParam
                                                9
                                                (Integer 4)
                                                ()
                                            ))
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                        (Integer 4)
                                        (Real 4)
                                        (Array
                                            (Real 4)
                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                            (FunctionParam
                                                12
                                                (Integer 4)
                                                ()
                                            ))
                                            (()
                                            ())]
                                            DescriptorArray
                                        )
                                        (Integer 4)]
                                        ()
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    [(Var 11 transa)
                                    (Var 11 transb)
                                    (Var 11 m)
                                    (Var 11 n)
                                    (Var 11 k)
                                    (Var 11 alpha)
                                    (Var 11 a)
                                    (Var 11 lda)
                                    (Var 11 b)
                                    (Var 11 ldb)
                                    (Var 11 beta)
                                    (Var 11 c)
                                    (Var 11 ldc)]
                                    []
                                    ()
                                    Private
                                    .false.
                                    .false.
                                    ()
                                ),
                            simple_external_matmul:
                                (Template
                                    (SymbolTable
                                        16
                                        {
                                            cast_to_t:
                                                (Function
                                                    (SymbolTable
                                                        18
                                                        {
                                                            arg:
                                                                (Variable
                                                                    18
                                                                    arg
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Real 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            res:
                                                                (Variable
                                                                    18
                                                                    res
                                                                    []
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    cast_to_t
                                                    (FunctionType
                                                        [(Real 4)]
                                                        (TypeParameter
                                                            t
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .true.
                                                        .true.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 18 arg)]
                                                    []
                                                    (Var 18 res)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            gemm:
                                                (Function
                                                    (SymbolTable
                                                        17
                                                        {
                                                            a:
                                                                (Variable
                                                                    17
                                                                    a
                                                                    [lda]
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 17 lda))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            alpha:
                                                                (Variable
                                                                    17
                                                                    alpha
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    17
                                                                    b
                                                                    [ldb]
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 17 ldb))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            beta:
                                                                (Variable
                                                                    17
                                                                    beta
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (TypeParameter
                                                                        t
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    17
                                                                    c
                                                                    [ldc]
                                                                    Out
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (Var 17 ldc))
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    17
                                                                    k
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            lda:
                                                                (Variable
                                                                    17
                                                                    lda
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ldb:
                                                                (Variable
                                                                    17
                                                                    ldb
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            ldc:
                                                                (Variable
                                                                    17
                                                                    ldc
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    17
                                                                    m
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    17
                                                                    n
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            transa:
                                                                (Variable
                                                                    17
                                                                    transa
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (String 1 1 () PointerString)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            transb:
                                                                (Variable
                                                                    17
                                                                    transb
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (String 1 1 () PointerString)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    gemm
                                                    (FunctionType
                                                        [(String 1 1 () PointerString)
                                                        (String 1 1 () PointerString)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (Integer 4)
                                                        (TypeParameter
                                                            t
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                7
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                9
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)
                                                        (TypeParameter
                                                            t
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (FunctionParam
                                                                12
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Integer 4)]
                                                        ()
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .true.
                                                    )
                                                    []
                                                    [(Var 17 transa)
                                                    (Var 17 transb)
                                                    (Var 17 m)
                                                    (Var 17 n)
                                                    (Var 17 k)
                                                    (Var 17 alpha)
                                                    (Var 17 a)
                                                    (Var 17 lda)
                                                    (Var 17 b)
                                                    (Var 17 ldb)
                                                    (Var 17 beta)
                                                    (Var 17 c)
                                                    (Var 17 ldc)]
                                                    []
                                                    ()
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            real:
                                                (Variable
                                                    16
                                                    real
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (Real 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            simple_external_matmul:
                                                (Function
                                                    (SymbolTable
                                                        19
                                                        {
                                                            a:
                                                                (Variable
                                                                    19
                                                                    a
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    19
                                                                    b
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    19
                                                                    c
                                                                    [a
                                                                    b]
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 19 a)
                                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))
                                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 19 b)
                                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))]
                                                                        PointerToDataArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    19
                                                                    k
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    19
                                                                    m
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    19
                                                                    n
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    simple_external_matmul
                                                    (FunctionType
                                                        [(Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )]
                                                        (Array
                                                            (TypeParameter
                                                                t
                                                            )
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    0
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            ((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    1
                                                                    (Array
                                                                        (TypeParameter
                                                                            t
                                                                        )
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))]
                                                            PointerToDataArray
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [cast_to_t
                                                    gemm]
                                                    [(Var 19 a)
                                                    (Var 19 b)]
                                                    [(Assignment
                                                        (Var 19 m)
                                                        (ArraySize
                                                            (Var 19 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 19 n)
                                                        (ArraySize
                                                            (Var 19 b)
                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 19 k)
                                                        (ArraySize
                                                            (Var 19 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (SubroutineCall
                                                        16 gemm
                                                        ()
                                                        [((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((Var 19 m))
                                                        ((Var 19 n))
                                                        ((Var 19 k))
                                                        ((FunctionCall
                                                            16 cast_to_t
                                                            ()
                                                            [((RealConstant
                                                                1.000000
                                                                (Real 4)
                                                            ))]
                                                            (TypeParameter
                                                                t
                                                            )
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 19 a)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 19 m))
                                                        ((ArrayPhysicalCast
                                                            (Var 19 b)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 19 k))
                                                        ((FunctionCall
                                                            16 cast_to_t
                                                            ()
                                                            [((RealConstant
                                                                0.000000
                                                                (Real 4)
                                                            ))]
                                                            (TypeParameter
                                                                t
                                                            )
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 19 c)
                                                            PointerToDataArray
                                                            DescriptorArray
                                                            (Array
                                                                (TypeParameter
                                                                    t
                                                                )
                                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 19 a)
                                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))
                                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 19 b)
                                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 19 m))]
                                                        ()
                                                    )]
                                                    (Var 19 c)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            t:
                                                (Variable
                                                    16
                                                    t
                                                    []
                                                    In
                                                    ()
                                                    ()
                                                    Default
                                                    (TypeParameter
                                                        t
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                )
                                        })
                                    simple_external_matmul
                                    [t
                                    gemm
                                    cast_to_t]
                                    [(Require
                                        gemm_r
                                        [t
                                        gemm]
                                    )
                                    (Require
                                        cast_r
                                        [real
                                        t
                                        cast_to_t]
                                    )]
                                ),
                            test_template:
                                (Function
                                    (SymbolTable
                                        20
                                        {
                                            __instantiated_simple_external_matmul:
                                                (Function
                                                    (SymbolTable
                                                        24
                                                        {
                                                            a:
                                                                (Variable
                                                                    24
                                                                    a
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    24
                                                                    b
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    24
                                                                    c
                                                                    [a
                                                                    b]
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 4)
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 24 a)
                                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))
                                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 24 b)
                                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))]
                                                                        PointerToDataArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    24
                                                                    k
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    24
                                                                    m
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    24
                                                                    n
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    __instantiated_simple_external_matmul
                                                    (FunctionType
                                                        [(Array
                                                            (Real 4)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Array
                                                            (Real 4)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )]
                                                        (Array
                                                            (Real 4)
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    0
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            ((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    1
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))]
                                                            PointerToDataArray
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [my_cast_to_real
                                                    my_gemm_real]
                                                    [(Var 24 a)
                                                    (Var 24 b)]
                                                    [(Assignment
                                                        (Var 24 m)
                                                        (ArraySize
                                                            (Var 24 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 24 n)
                                                        (ArraySize
                                                            (Var 24 b)
                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 24 k)
                                                        (ArraySize
                                                            (Var 24 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (SubroutineCall
                                                        2 my_gemm_real
                                                        ()
                                                        [((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((Var 24 m))
                                                        ((Var 24 n))
                                                        ((Var 24 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_real
                                                            ()
                                                            [((RealConstant
                                                                1.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 4)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 24 a)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 4)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 24 m))
                                                        ((ArrayPhysicalCast
                                                            (Var 24 b)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 4)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 24 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_real
                                                            ()
                                                            [((RealConstant
                                                                0.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 4)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 24 c)
                                                            PointerToDataArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 4)
                                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 24 a)
                                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))
                                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 24 b)
                                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 24 m))]
                                                        ()
                                                    )]
                                                    (Var 24 c)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            __instantiated_simple_external_matmul1:
                                                (Function
                                                    (SymbolTable
                                                        25
                                                        {
                                                            a:
                                                                (Variable
                                                                    25
                                                                    a
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    25
                                                                    b
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    25
                                                                    c
                                                                    [a
                                                                    b]
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 8)
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 25 a)
                                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))
                                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 25 b)
                                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))]
                                                                        PointerToDataArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    25
                                                                    k
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    25
                                                                    m
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    25
                                                                    n
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    __instantiated_simple_external_matmul1
                                                    (FunctionType
                                                        [(Array
                                                            (Real 8)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Array
                                                            (Real 8)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )]
                                                        (Array
                                                            (Real 8)
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    0
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            ((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    1
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))]
                                                            PointerToDataArray
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [my_cast_to_double
                                                    my_gemm_double]
                                                    [(Var 25 a)
                                                    (Var 25 b)]
                                                    [(Assignment
                                                        (Var 25 m)
                                                        (ArraySize
                                                            (Var 25 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 25 n)
                                                        (ArraySize
                                                            (Var 25 b)
                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 25 k)
                                                        (ArraySize
                                                            (Var 25 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (SubroutineCall
                                                        2 my_gemm_double
                                                        ()
                                                        [((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((Var 25 m))
                                                        ((Var 25 n))
                                                        ((Var 25 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_double
                                                            ()
                                                            [((RealConstant
                                                                1.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 8)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 25 a)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 8)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 25 m))
                                                        ((ArrayPhysicalCast
                                                            (Var 25 b)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 8)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 25 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_double
                                                            ()
                                                            [((RealConstant
                                                                0.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 8)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 25 c)
                                                            PointerToDataArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 8)
                                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 25 a)
                                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))
                                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 25 b)
                                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 25 m))]
                                                        ()
                                                    )]
                                                    (Var 25 c)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            adp:
                                                (Variable
                                                    20
                                                    adp
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 8)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))
                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))]
                                                        FixedSizeArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            asp:
                                                (Variable
                                                    20
                                                    asp
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))
                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))]
                                                        FixedSizeArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            bdp:
                                                (Variable
                                                    20
                                                    bdp
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 8)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))
                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))]
                                                        FixedSizeArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            bsp:
                                                (Variable
                                                    20
                                                    bsp
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))
                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))]
                                                        FixedSizeArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            cdp:
                                                (Variable
                                                    20
                                                    cdp
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 8)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))
                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))]
                                                        FixedSizeArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            csp:
                                                (Variable
                                                    20
                                                    csp
                                                    []
                                                    Local
                                                    ()
                                                    ()
                                                    Default
                                                    (Array
                                                        (Real 4)
                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))
                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                        (IntegerConstant 2 (Integer 4) Decimal))]
                                                        FixedSizeArray
                                                    )
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            dp:
                                                (Variable
                                                    20
                                                    dp
                                                    []
                                                    Local
                                                    (TypeInquiry
                                                        Kind
                                                        (Real 8)
                                                        (RealConstant
                                                            1.000000
                                                            (Real 8)
                                                        )
                                                        (Integer 4)
                                                        (IntegerConstant 8 (Integer 4) Decimal)
                                                    )
                                                    (IntegerConstant 8 (Integer 4) Decimal)
                                                    Parameter
                                                    (Integer 4)
                                                    ()
                                                    Source
                                                    Private
                                                    Required
                                                    .false.
                                                    .false.
                                                ),
                                            nonsimple_external_matmul_double:
                                                (Function
                                                    (SymbolTable
                                                        22
                                                        {
                                                            a:
                                                                (Variable
                                                                    22
                                                                    a
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    22
                                                                    b
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    22
                                                                    c
                                                                    [a
                                                                    b]
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 8)
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 22 a)
                                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))
                                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 22 b)
                                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))]
                                                                        PointerToDataArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    22
                                                                    k
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    22
                                                                    m
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    22
                                                                    n
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    nonsimple_external_matmul_double
                                                    (FunctionType
                                                        [(Array
                                                            (Real 8)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Array
                                                            (Real 8)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )]
                                                        (Array
                                                            (Real 8)
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    0
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            ((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    1
                                                                    (Array
                                                                        (Real 8)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))]
                                                            PointerToDataArray
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [my_cast_to_double
                                                    my_gemm_double]
                                                    [(Var 22 a)
                                                    (Var 22 b)]
                                                    [(Assignment
                                                        (Var 22 m)
                                                        (ArraySize
                                                            (Var 22 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 22 n)
                                                        (ArraySize
                                                            (Var 22 b)
                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 22 k)
                                                        (ArraySize
                                                            (Var 22 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (SubroutineCall
                                                        2 my_gemm_double
                                                        ()
                                                        [((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((Var 22 m))
                                                        ((Var 22 n))
                                                        ((Var 22 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_double
                                                            ()
                                                            [((RealConstant
                                                                1.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 8)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 22 a)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 8)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 22 m))
                                                        ((ArrayPhysicalCast
                                                            (Var 22 b)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 8)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 22 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_double
                                                            ()
                                                            [((RealConstant
                                                                0.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 8)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 22 c)
                                                            PointerToDataArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 8)
                                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 22 a)
                                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))
                                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 22 b)
                                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 22 m))]
                                                        ()
                                                    )]
                                                    (Var 22 c)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                ),
                                            nonsimple_external_matmul_real:
                                                (Function
                                                    (SymbolTable
                                                        21
                                                        {
                                                            a:
                                                                (Variable
                                                                    21
                                                                    a
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            b:
                                                                (Variable
                                                                    21
                                                                    b
                                                                    []
                                                                    In
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            c:
                                                                (Variable
                                                                    21
                                                                    c
                                                                    [a
                                                                    b]
                                                                    ReturnVar
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Array
                                                                        (Real 4)
                                                                        [((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 21 a)
                                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))
                                                                        ((IntegerConstant 1 (Integer 4) Decimal)
                                                                        (ArraySize
                                                                            (Var 21 b)
                                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                                            (Integer 4)
                                                                            ()
                                                                        ))]
                                                                        PointerToDataArray
                                                                    )
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            k:
                                                                (Variable
                                                                    21
                                                                    k
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            m:
                                                                (Variable
                                                                    21
                                                                    m
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                ),
                                                            n:
                                                                (Variable
                                                                    21
                                                                    n
                                                                    []
                                                                    Local
                                                                    ()
                                                                    ()
                                                                    Default
                                                                    (Integer 4)
                                                                    ()
                                                                    Source
                                                                    Private
                                                                    Required
                                                                    .false.
                                                                    .false.
                                                                )
                                                        })
                                                    nonsimple_external_matmul_real
                                                    (FunctionType
                                                        [(Array
                                                            (Real 4)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )
                                                        (Array
                                                            (Real 4)
                                                            [(()
                                                            ())
                                                            (()
                                                            ())]
                                                            DescriptorArray
                                                        )]
                                                        (Array
                                                            (Real 4)
                                                            [((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    0
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 1 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))
                                                            ((IntegerConstant 1 (Integer 4) Decimal)
                                                            (ArraySize
                                                                (FunctionParam
                                                                    1
                                                                    (Array
                                                                        (Real 4)
                                                                        [(()
                                                                        ())
                                                                        (()
                                                                        ())]
                                                                        DescriptorArray
                                                                    )
                                                                    ()
                                                                )
                                                                (IntegerConstant 2 (Integer 4) Decimal)
                                                                (Integer 4)
                                                                ()
                                                            ))]
                                                            PointerToDataArray
                                                        )
                                                        Source
                                                        Implementation
                                                        ()
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        .false.
                                                        []
                                                        .false.
                                                    )
                                                    [my_cast_to_real
                                                    my_gemm_real]
                                                    [(Var 21 a)
                                                    (Var 21 b)]
                                                    [(Assignment
                                                        (Var 21 m)
                                                        (ArraySize
                                                            (Var 21 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 21 n)
                                                        (ArraySize
                                                            (Var 21 b)
                                                            (IntegerConstant 2 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (Assignment
                                                        (Var 21 k)
                                                        (ArraySize
                                                            (Var 21 a)
                                                            (IntegerConstant 1 (Integer 4) Decimal)
                                                            (Integer 4)
                                                            ()
                                                        )
                                                        ()
                                                    )
                                                    (SubroutineCall
                                                        2 my_gemm_real
                                                        ()
                                                        [((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((StringConstant
                                                            "n"
                                                            (String 1 1 () PointerString)
                                                        ))
                                                        ((Var 21 m))
                                                        ((Var 21 n))
                                                        ((Var 21 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_real
                                                            ()
                                                            [((RealConstant
                                                                1.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 4)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 21 a)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 4)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 21 m))
                                                        ((ArrayPhysicalCast
                                                            (Var 21 b)
                                                            DescriptorArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 4)
                                                                [(()
                                                                ())
                                                                (()
                                                                ())]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 21 k))
                                                        ((FunctionCall
                                                            2 my_cast_to_real
                                                            ()
                                                            [((RealConstant
                                                                0.000000
                                                                (Real 4)
                                                            ))]
                                                            (Real 4)
                                                            ()
                                                            ()
                                                        ))
                                                        ((ArrayPhysicalCast
                                                            (Var 21 c)
                                                            PointerToDataArray
                                                            DescriptorArray
                                                            (Array
                                                                (Real 4)
                                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 21 a)
                                                                    (IntegerConstant 1 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))
                                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                                (ArraySize
                                                                    (Var 21 b)
                                                                    (IntegerConstant 2 (Integer 4) Decimal)
                                                                    (Integer 4)
                                                                    ()
                                                                ))]
                                                                DescriptorArray
                                                            )
                                                            ()
                                                        ))
                                                        ((Var 21 m))]
                                                        ()
                                                    )]
                                                    (Var 21 c)
                                                    Private
                                                    .false.
                                                    .false.
                                                    ()
                                                )
                                        })
                                    test_template
                                    (FunctionType
                                        []
                                        ()
                                        Source
                                        Implementation
                                        ()
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        .false.
                                        []
                                        .false.
                                    )
                                    []
                                    []
                                    [(Assignment
                                        (Var 20 csp)
                                        (FunctionCall
                                            20 __instantiated_simple_external_matmul
                                            ()
                                            [((ArrayPhysicalCast
                                                (Var 20 asp)
                                                FixedSizeArray
                                                DescriptorArray
                                                (Array
                                                    (Real 4)
                                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))
                                                    ((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))]
                                                    DescriptorArray
                                                )
                                                ()
                                            ))
                                            ((ArrayPhysicalCast
                                                (Var 20 bsp)
                                                FixedSizeArray
                                                DescriptorArray
                                                (Array
                                                    (Real 4)
                                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))
                                                    ((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))]
                                                    DescriptorArray
                                                )
                                                ()
                                            ))]
                                            (Array
                                                (Real 4)
                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                (IntegerConstant 2 (Integer 4) Decimal))
                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                (IntegerConstant 2 (Integer 4) Decimal))]
                                                FixedSizeArray
                                            )
                                            ()
                                            ()
                                        )
                                        ()
                                    )
                                    (Assignment
                                        (Var 20 cdp)
                                        (FunctionCall
                                            20 __instantiated_simple_external_matmul1
                                            ()
                                            [((ArrayPhysicalCast
                                                (Var 20 adp)
                                                FixedSizeArray
                                                DescriptorArray
                                                (Array
                                                    (Real 8)
                                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))
                                                    ((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))]
                                                    DescriptorArray
                                                )
                                                ()
                                            ))
                                            ((ArrayPhysicalCast
                                                (Var 20 bdp)
                                                FixedSizeArray
                                                DescriptorArray
                                                (Array
                                                    (Real 8)
                                                    [((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))
                                                    ((IntegerConstant 1 (Integer 4) Decimal)
                                                    (IntegerConstant 2 (Integer 4) Decimal))]
                                                    DescriptorArray
                                                )
                                                ()
                                            ))]
                                            (Array
                                                (Real 8)
                                                [((IntegerConstant 1 (Integer 4) Decimal)
                                                (IntegerConstant 2 (Integer 4) Decimal))
                                                ((IntegerConstant 1 (Integer 4) Decimal)
                                                (IntegerConstant 2 (Integer 4) Decimal))]
                                                FixedSizeArray
                                            )
                                            ()
                                            ()
                                        )
                                        ()
                                    )]
                                    ()
                                    Public
                                    .false.
                                    .false.
                                    ()
                                )
                        })
                    template_lapack_01_m
                    [template_lapack_01_m]
                    .false.
                    .false.
                )
        })
    []
)
