// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/test_src/sljitTest.c
// Function: test13
static void test13(void)
{
	/* Test fpu monadic functions. */
	executable_code code;
	struct sljit_compiler* compiler = sljit_create_compiler();
	double buf[7];
	long buf2[6];

	if (verbose)
		printf("Run test13\n");

	if (!sljit_is_fpu_available()) {
		if (verbose)
			printf("no fpu available, test13 skipped\n");
		successful_tests++;
		if (compiler)
			sljit_free_compiler(compiler);
		return;
	}

	FAILED(!compiler, "cannot create compiler\n");
	buf[0] = 7.75;
	buf[1] = -4.5;
	buf[2] = 0.0;
	buf[3] = 0.0;
	buf[4] = 0.0;
	buf[5] = 0.0;
	buf[6] = 0.0;

	buf2[0] = 10;
	buf2[1] = 10;
	buf2[2] = 10;
	buf2[3] = 10;
	buf2[4] = 10;
	buf2[5] = 10;

	sljit_emit_enter(compiler, 0, 2, 3, 2, 6, 0, 0);
	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_MEM0(), (long)&buf[2], SLJIT_MEM0(), (long)&buf[1]);
	sljit_emit_fop1(compiler, SLJIT_DABS, SLJIT_MEM1(SLJIT_S0), 3 * sizeof(double), SLJIT_MEM1(SLJIT_S0), sizeof(double));
	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_FR0, 0, SLJIT_MEM0(), (long)&buf[0]);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 2 * sizeof(double));
	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_FR1, 0, SLJIT_MEM2(SLJIT_S0, SLJIT_R0), 0);
	sljit_emit_fop1(compiler, SLJIT_DNEG, SLJIT_FR2, 0, SLJIT_FR0, 0);
	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_FR3, 0, SLJIT_FR2, 0);
	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_MEM0(), (long)&buf[4], SLJIT_FR3, 0);
	sljit_emit_fop1(compiler, SLJIT_DABS, SLJIT_FR4, 0, SLJIT_FR1, 0);
	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_MEM1(SLJIT_S0), 5 * sizeof(double), SLJIT_FR4, 0);
	sljit_emit_fop1(compiler, SLJIT_DNEG, SLJIT_MEM1(SLJIT_S0), 6 * sizeof(double), SLJIT_FR4, 0);

	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_FR5, 0, SLJIT_MEM1(SLJIT_S0), 0);
	sljit_emit_fop1(compiler, SLJIT_DCMP | SLJIT_SET_S, SLJIT_FR5, 0, SLJIT_MEM1(SLJIT_S0), sizeof(double));
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S1), 0, SLJIT_UNUSED, 0, SLJIT_D_GREATER);
	sljit_emit_fop1(compiler, SLJIT_DCMP | SLJIT_SET_S, SLJIT_MEM1(SLJIT_S0), sizeof(double), SLJIT_FR5, 0);
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S1), sizeof(long), SLJIT_UNUSED, 0, SLJIT_D_GREATER);
	sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_FR1, 0, SLJIT_FR5, 0);
	sljit_emit_fop1(compiler, SLJIT_DCMP | SLJIT_SET_E | SLJIT_SET_S, SLJIT_FR1, 0, SLJIT_FR1, 0);
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S1), 2 * sizeof(long), SLJIT_UNUSED, 0, SLJIT_D_EQUAL);
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S1), 3 * sizeof(long), SLJIT_UNUSED, 0, SLJIT_D_LESS);
	sljit_emit_fop1(compiler, SLJIT_DCMP | SLJIT_SET_E, SLJIT_FR1, 0, SLJIT_MEM1(SLJIT_S0), sizeof(double));
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S1), 4 * sizeof(long), SLJIT_UNUSED, 0, SLJIT_D_EQUAL);
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S1), 5 * sizeof(long), SLJIT_UNUSED, 0, SLJIT_D_NOT_EQUAL);

	sljit_emit_return(compiler, SLJIT_UNUSED, 0, 0);

	code.code = sljit_generate_code(compiler);
	CHECK(compiler);
	sljit_free_compiler(compiler);

	code.func2((long)&buf, (long)&buf2);
	FAILED(buf[2] != -4.5, "test13 case 1 failed\n");
	FAILED(buf[3] != 4.5, "test13 case 2 failed\n");
	FAILED(buf[4] != -7.75, "test13 case 3 failed\n");
	FAILED(buf[5] != 4.5, "test13 case 4 failed\n");
	FAILED(buf[6] != -4.5, "test13 case 5 failed\n");

	FAILED(buf2[0] != 1, "test13 case 6 failed\n");
	FAILED(buf2[1] != 0, "test13 case 7 failed\n");
	FAILED(buf2[2] != 1, "test13 case 8 failed\n");
	FAILED(buf2[3] != 0, "test13 case 9 failed\n");
	FAILED(buf2[4] != 0, "test13 case 10 failed\n");
	FAILED(buf2[5] != 1, "test13 case 11 failed\n");

	sljit_free_code(code.code);
	successful_tests++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x2d939(%rip)     # 0x34354
je 0x6a2b
leaq 0x27203(%rip), %rdi     # 0x2dc27
movb $0x0, %al
callq 0x2070
callq 0x23a30
testb $0x1, %al
jne 0x6a6f
cmpl $0x0, 0x2d919(%rip)     # 0x34354
je 0x6a4b
leaq 0x271ef(%rip), %rdi     # 0x2dc33
movb $0x0, %al
callq 0x2070
movl 0x2d90b(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x2d902(%rip)     # 0x3435c
cmpq $0x0, -0x10(%rbp)
je 0x6a6a
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x7032
cmpq $0x0, -0x10(%rbp)
jne 0x6a89
leaq 0x26956(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0x7032
movsd 0x26617(%rip), %xmm0    # 0x2d0a8
movsd %xmm0, -0x50(%rbp)
movsd 0x26602(%rip), %xmm0    # 0x2d0a0
movsd %xmm0, -0x48(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x38(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x30(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x20(%rbp)
movq $0xa, -0x80(%rbp)
movq $0xa, -0x78(%rbp)
movq $0xa, -0x70(%rbp)
movq $0xa, -0x68(%rbp)
movq $0xa, -0x60(%rbp)
movq $0xa, -0x58(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x2, %r8d
movl $0x3, %ecx
movl $0x6, %r9d
movl %r8d, %edx
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0x19b20
movq -0x10(%rbp), %rdi
leaq -0x50(%rbp), %rcx
addq $0x10, %rcx
leaq -0x50(%rbp), %r9
addq $0x8, %r9
movl $0x80, %r8d
movl %r8d, %esi
movl %r8d, %edx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x88, %esi
movl $0x8c, %r8d
movl $0x18, %ecx
movl $0x8, %r9d
movl %r8d, %edx
callq 0x23a40
movq -0x10(%rbp), %rdi
leaq -0x50(%rbp), %r9
movl $0x80, %r8d
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl %r8d, %esi
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x10, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x80, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x18c, %r8d            # imm = 0x18C
movq %r9, %rcx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x87, %esi
movl $0x3, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movq %r9, %rcx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x80, %esi
movl $0x4, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x3, %r8d
movq %r9, %rcx
callq 0x23a40
movq -0x10(%rbp), %rdi
leaq -0x50(%rbp), %rcx
addq $0x20, %rcx
movl $0x80, %edx
movl $0x4, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %edx, %esi
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x88, %esi
movl $0x5, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x2, %r8d
movq %r9, %rcx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x80, %esi
movl $0x8c, %edx
movl $0x28, %ecx
movl $0x5, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x87, %esi
movl $0x8c, %edx
movl $0x30, %ecx
movl $0x5, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x80, %esi
movl $0x6, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x8c, %r8d
movq %r9, %rcx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x886, %esi            # imm = 0x886
movl $0x6, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8c, %r8d
movl $0x8, %r9d
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8b, %edx
xorl %eax, %eax
movl %eax, %r9d
xorl %r8d, %r8d
movq %r9, %rcx
movl $0x12, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x886, %esi            # imm = 0x886
movl $0x8c, %edx
movl $0x8, %ecx
movl $0x6, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8b, %edx
movl $0x8, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x12, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x80, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x6, %r8d
movq %r9, %rcx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0xa86, %esi            # imm = 0xA86
movl $0x2, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8b, %edx
movl $0x10, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0xe, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8b, %edx
movl $0x18, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x10, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x286, %esi            # imm = 0x286
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8c, %r8d
movl $0x8, %r9d
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8b, %edx
movl $0x20, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0xe, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8b, %edx
movl $0x28, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0xf, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %ecx
movl %edx, %esi
callq 0x1a7c0
movq -0x10(%rbp), %rdi
callq 0x19070
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x18030
cmpl $0x1, %eax
je 0x6ea4
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x26589(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x7032
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x50(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq *%rax
movsd -0x40(%rbp), %xmm0
movsd 0x261d8(%rip), %xmm1    # 0x2d0a0
ucomisd %xmm1, %xmm0
jne 0x6ed2
jp 0x6ed2
jmp 0x6ee5
leaq 0x26d7c(%rip), %rdi     # 0x2dc55
movb $0x0, %al
callq 0x2070
jmp 0x7032
movsd -0x38(%rbp), %xmm0
movsd 0x261be(%rip), %xmm1    # 0x2d0b0
ucomisd %xmm1, %xmm0
jne 0x6efc
jp 0x6efc
jmp 0x6f0f
leaq 0x26d68(%rip), %rdi     # 0x2dc6b
movb $0x0, %al
callq 0x2070
jmp 0x7032
movsd -0x30(%rbp), %xmm0
movsd 0x2619c(%rip), %xmm1    # 0x2d0b8
ucomisd %xmm1, %xmm0
jne 0x6f26
jp 0x6f26
jmp 0x6f39
leaq 0x26d54(%rip), %rdi     # 0x2dc81
movb $0x0, %al
callq 0x2070
jmp 0x7032
movsd -0x28(%rbp), %xmm0
movsd 0x2616a(%rip), %xmm1    # 0x2d0b0
ucomisd %xmm1, %xmm0
jne 0x6f50
jp 0x6f50
jmp 0x6f63
leaq 0x26d40(%rip), %rdi     # 0x2dc97
movb $0x0, %al
callq 0x2070
jmp 0x7032
movsd -0x20(%rbp), %xmm0
movsd 0x26130(%rip), %xmm1    # 0x2d0a0
ucomisd %xmm1, %xmm0
jne 0x6f7a
jp 0x6f7a
jmp 0x6f8d
leaq 0x26d2c(%rip), %rdi     # 0x2dcad
movb $0x0, %al
callq 0x2070
jmp 0x7032
cmpq $0x1, -0x80(%rbp)
je 0x6fa7
leaq 0x26d28(%rip), %rdi     # 0x2dcc3
movb $0x0, %al
callq 0x2070
jmp 0x7032
cmpq $0x0, -0x78(%rbp)
je 0x6fbe
leaq 0x26d24(%rip), %rdi     # 0x2dcd9
movb $0x0, %al
callq 0x2070
jmp 0x7032
cmpq $0x1, -0x70(%rbp)
je 0x6fd5
leaq 0x26d23(%rip), %rdi     # 0x2dcef
movb $0x0, %al
callq 0x2070
jmp 0x7032
cmpq $0x0, -0x68(%rbp)
je 0x6fec
leaq 0x26d22(%rip), %rdi     # 0x2dd05
movb $0x0, %al
callq 0x2070
jmp 0x7032
cmpq $0x0, -0x60(%rbp)
je 0x7003
leaq 0x26d21(%rip), %rdi     # 0x2dd1b
movb $0x0, %al
callq 0x2070
jmp 0x7032
cmpq $0x1, -0x58(%rbp)
je 0x701a
leaq 0x26d21(%rip), %rdi     # 0x2dd32
movb $0x0, %al
callq 0x2070
jmp 0x7032
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x2d333(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x2d32a(%rip)     # 0x3435c
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax,%rax)