#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ cm_nmatrix_copy__copy__is_copied();
int /*<<< orphan*/ cm_nmatrix_create__create__is_created();
int /*<<< orphan*/ cm_nmatrix_get_determinant__get_determinant__is_retrieved();
int /*<<< orphan*/
cm_nmatrix_get_primary_diagonal_as_array__get_diagonal__is_retrieved();
int /*<<< orphan*/
cm_nmatrix_get_secondary_diagonal_as_array__get_diagonal__is_retrieved();
int /*<<< orphan*/
cm_nmatrix_multiply_with_scalar__multiply_with_scalar__is_calculated();
int /*<<< orphan*/ cm_nmatrix_product__product__is_calculated();
int /*<<< orphan*/ cm_nmatrix_sum__sum__is_calculated();
int /*<<< orphan*/ cn_nmatrix_adjugate__get_adjugate__is_retrieved();
int /*<<< orphan*/ cn_nmatrix_inverse__get_inverse__is_retrieved();
int /*<<< orphan*/ cn_nmatrix_minor__get_minor__is_retrieved();
int /*<<< orphan*/ cn_nmatrix_transpose__get_transpose__is_retrieved();
void cn_matrix_run_tests(void) {
  cm_nmatrix_create__create__is_created();
  cm_nmatrix_copy__copy__is_copied();
  cm_nmatrix_sum__sum__is_calculated();
  cm_nmatrix_multiply_with_scalar__multiply_with_scalar__is_calculated();
  cm_nmatrix_product__product__is_calculated();
  cm_nmatrix_get_primary_diagonal_as_array__get_diagonal__is_retrieved();
  cm_nmatrix_get_secondary_diagonal_as_array__get_diagonal__is_retrieved();
  cn_nmatrix_minor__get_minor__is_retrieved();
  cm_nmatrix_get_determinant__get_determinant__is_retrieved();
  cn_nmatrix_transpose__get_transpose__is_retrieved();
  cn_nmatrix_adjugate__get_adjugate__is_retrieved();
  cn_nmatrix_inverse__get_inverse__is_retrieved();
}


x86 assembly (clang, -O0):
<cn_matrix_run_tests>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1050 <cm_nmatrix_create__create__is_created@plt>
mov    $0x0,%al
call   1030 <cm_nmatrix_copy__copy__is_copied@plt>
mov    $0x0,%al
call   1090 <cm_nmatrix_sum__sum__is_calculated@plt>
mov    $0x0,%al
call   10e0 <cm_nmatrix_multiply_with_scalar__multiply_with_scalar__is_calculated@plt>
mov    $0x0,%al
call   10c0 <cm_nmatrix_product__product__is_calculated@plt>
mov    $0x0,%al
call   10b0 <cm_nmatrix_get_primary_diagonal_as_array__get_diagonal__is_retrieved@plt>
mov    $0x0,%al
call   10d0 <cm_nmatrix_get_secondary_diagonal_as_array__get_diagonal__is_retrieved@plt>
mov    $0x0,%al
call   1070 <cn_nmatrix_minor__get_minor__is_retrieved@plt>
mov    $0x0,%al
call   1060 <cm_nmatrix_get_determinant__get_determinant__is_retrieved@plt>
mov    $0x0,%al
call   1080 <cn_nmatrix_transpose__get_transpose__is_retrieved@plt>
mov    $0x0,%al
call   1040 <cn_nmatrix_adjugate__get_adjugate__is_retrieved@plt>
mov    $0x0,%al
call   10a0 <cn_nmatrix_inverse__get_inverse__is_retrieved@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<cn_matrix_run_tests>:
push   %rax
xor    %eax,%eax
call   1050 <cm_nmatrix_create__create__is_created@plt>
xor    %eax,%eax
call   1030 <cm_nmatrix_copy__copy__is_copied@plt>
xor    %eax,%eax
call   1090 <cm_nmatrix_sum__sum__is_calculated@plt>
xor    %eax,%eax
call   10e0 <cm_nmatrix_multiply_with_scalar__multiply_with_scalar__is_calculated@plt>
xor    %eax,%eax
call   10c0 <cm_nmatrix_product__product__is_calculated@plt>
xor    %eax,%eax
call   10b0 <cm_nmatrix_get_primary_diagonal_as_array__get_diagonal__is_retrieved@plt>
xor    %eax,%eax
call   10d0 <cm_nmatrix_get_secondary_diagonal_as_array__get_diagonal__is_retrieved@plt>
xor    %eax,%eax
call   1070 <cn_nmatrix_minor__get_minor__is_retrieved@plt>
xor    %eax,%eax
call   1060 <cm_nmatrix_get_determinant__get_determinant__is_retrieved@plt>
xor    %eax,%eax
call   1080 <cn_nmatrix_transpose__get_transpose__is_retrieved@plt>
xor    %eax,%eax
call   1040 <cn_nmatrix_adjugate__get_adjugate__is_retrieved@plt>
xor    %eax,%eax
pop    %rcx
jmp    10a0 <cn_nmatrix_inverse__get_inverse__is_retrieved@plt>

LLVM IR (-O0):
define void @cn_matrix_run_tests() {
%1 = call i32 (...) @cm_nmatrix_create__create__is_created()
%2 = call i32 (...) @cm_nmatrix_copy__copy__is_copied()
%3 = call i32 (...) @cm_nmatrix_sum__sum__is_calculated()
%4 = call i32 (...) @cm_nmatrix_multiply_with_scalar__multiply_with_scalar__is_calculated()
%5 = call i32 (...) @cm_nmatrix_product__product__is_calculated()
%6 = call i32 (...) @cm_nmatrix_get_primary_diagonal_as_array__get_diagonal__is_retrieved()
%7 = call i32 (...) @cm_nmatrix_get_secondary_diagonal_as_array__get_diagonal__is_retrieved()
%8 = call i32 (...) @cn_nmatrix_minor__get_minor__is_retrieved()
%9 = call i32 (...) @cm_nmatrix_get_determinant__get_determinant__is_retrieved()
%10 = call i32 (...) @cn_nmatrix_transpose__get_transpose__is_retrieved()
%11 = call i32 (...) @cn_nmatrix_adjugate__get_adjugate__is_retrieved()
%12 = call i32 (...) @cn_nmatrix_inverse__get_inverse__is_retrieved()
ret void
}

LLVM IR (-O2):
define void @cn_matrix_run_tests() {
%1 = tail call i32 (...) @cm_nmatrix_create__create__is_created()
%2 = tail call i32 (...) @cm_nmatrix_copy__copy__is_copied()
%3 = tail call i32 (...) @cm_nmatrix_sum__sum__is_calculated()
%4 = tail call i32 (...) @cm_nmatrix_multiply_with_scalar__multiply_with_scalar__is_calculated()
%5 = tail call i32 (...) @cm_nmatrix_product__product__is_calculated()
%6 = tail call i32 (...) @cm_nmatrix_get_primary_diagonal_as_array__get_diagonal__is_retrieved()
%7 = tail call i32 (...) @cm_nmatrix_get_secondary_diagonal_as_array__get_diagonal__is_retrieved()
%8 = tail call i32 (...) @cn_nmatrix_minor__get_minor__is_retrieved()
%9 = tail call i32 (...) @cm_nmatrix_get_determinant__get_determinant__is_retrieved()
%10 = tail call i32 (...) @cn_nmatrix_transpose__get_transpose__is_retrieved()
%11 = tail call i32 (...) @cn_nmatrix_adjugate__get_adjugate__is_retrieved()
%12 = tail call i32 (...) @cn_nmatrix_inverse__get_inverse__is_retrieved()
ret void
}