// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/test_src/sljitTest.c
// Function: test26
static void test26(void)
{
	/* Aligned access without aligned offsets. */
	executable_code code;
	struct sljit_compiler* compiler = sljit_create_compiler();
	long buf[4];
	int ibuf[4];
	double dbuf[4];

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

	FAILED(!compiler, "cannot create compiler\n");

	buf[0] = -2789;
	buf[1] = 0;
	buf[2] = 4;
	buf[3] = -4;

	ibuf[0] = -689;
	ibuf[1] = 0;
	ibuf[2] = -6;
	ibuf[3] = 3;

	dbuf[0] = 5.75;
	dbuf[1] = 0.0;
	dbuf[2] = 0.0;
	dbuf[3] = -4.0;

	sljit_emit_enter(compiler, 0, 3, 3, 3, 0, 0, 0);

	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_S0, 0, SLJIT_S0, 0, SLJIT_IMM, 3);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_S1, 0, SLJIT_S1, 0, SLJIT_IMM, 1);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_S0), -3);
	sljit_emit_op1(compiler, SLJIT_MOV_SI, SLJIT_MEM1(SLJIT_S1), sizeof(int) - 1, SLJIT_R0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV_SI, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_S1), -1);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long) - 3, SLJIT_R0, 0);

	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_S0, 0, SLJIT_IMM, 100);
	sljit_emit_op2(compiler, SLJIT_MUL, SLJIT_MEM1(SLJIT_R0), sizeof(long) * 2 - 103, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 2 - 3, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 3 - 3);
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_S1, 0, SLJIT_IMM, 100);
	sljit_emit_op2(compiler, SLJIT_IMUL, SLJIT_MEM1(SLJIT_R0), sizeof(int) * 2 - 101, SLJIT_MEM1(SLJIT_S1), sizeof(int) * 2 - 1, SLJIT_MEM1(SLJIT_S1), sizeof(int) * 3 - 1);

	if (sljit_is_fpu_available()) {
		sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_S2, 0, SLJIT_S2, 0, SLJIT_IMM, 3);
		sljit_emit_fop1(compiler, SLJIT_DMOV, SLJIT_MEM1(SLJIT_S2), sizeof(double) - 3, SLJIT_MEM1(SLJIT_S2), -3);
		sljit_emit_fop2(compiler, SLJIT_DADD, SLJIT_MEM1(SLJIT_S2), sizeof(double) * 2 - 3, SLJIT_MEM1(SLJIT_S2), -3, SLJIT_MEM1(SLJIT_S2), sizeof(double) - 3);
		sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R0, 0, SLJIT_S2, 0, SLJIT_IMM, 2);
		sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, (sizeof(double) * 3 - 4) >> 1);
		sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_R2, 0, SLJIT_S2, 0, SLJIT_IMM, 1);
		sljit_emit_fop2(compiler, SLJIT_DDIV, SLJIT_MEM1(SLJIT_R0), sizeof(double) * 3 - 5, SLJIT_MEM1(SLJIT_S2), sizeof(double) * 2 - 3, SLJIT_MEM2(SLJIT_R2, SLJIT_R1), 1);
	}

	sljit_emit_return(compiler, SLJIT_UNUSED, 0, 0);

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

	code.func3((long)&buf, (long)&ibuf, (long)&dbuf);

	FAILED(buf[1] != -689, "test26 case 1 failed\n");
	FAILED(buf[2] != -16, "test26 case 2 failed\n");
	FAILED(ibuf[1] != -2789, "test26 case 3 failed\n");
	FAILED(ibuf[2] != -18, "test26 case 4 failed\n");

	if (sljit_is_fpu_available()) {
		FAILED(dbuf[1] != 5.75, "test26 case 5 failed\n");
		FAILED(dbuf[2] != 11.5, "test26 case 6 failed\n");
		FAILED(dbuf[3] != -2.875, "test26 case 7 failed\n");
	}

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x28bdc(%rip)     # 0x34354
je 0xb788
leaq 0x2307c(%rip), %rdi     # 0x2e7fd
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0xb7a2
leaq 0x21c3d(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0xbcac
movq $-0xae5, -0x30(%rbp)    # imm = 0xF51B
movq $0x0, -0x28(%rbp)
movq $0x4, -0x20(%rbp)
movq $-0x4, -0x18(%rbp)
movl $0xfffffd4f, -0x40(%rbp) # imm = 0xFFFFFD4F
movl $0x0, -0x3c(%rbp)
movl $0xfffffffa, -0x38(%rbp) # imm = 0xFFFFFFFA
movl $0x3, -0x34(%rbp)
movsd 0x2195a(%rip), %xmm0    # 0x2d140
movsd %xmm0, -0x60(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x50(%rbp)
movsd 0x21935(%rip), %xmm0    # 0x2d138
movsd %xmm0, -0x48(%rbp)
movq -0x10(%rbp), %rdi
xorl %r9d, %r9d
movl $0x3, %r8d
movl %r9d, %esi
movl %r8d, %edx
movl %r8d, %ecx
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0x19b20
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0xc, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x3, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0xb, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x1, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8c, %r8d
movq $-0x3, %r9
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x26, %esi
movl $0x8b, %edx
movl $0x3, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x26, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8b, %r8d
movq $-0x1, %r9
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x5, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0xc, %r8d
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x64, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x64, %esi
movl $0x81, %edx
movq $-0x57, %rcx
movl $0x8c, %r8d
movl $0xd, %r9d
movl $0x8c, (%rsp)
movq $0x15, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0xb, %r8d
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x64, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x164, %esi            # imm = 0x164
movl $0x81, %edx
movq $-0x5d, %rcx
movl $0x8b, %r8d
movl $0x7, %r9d
movl $0x8b, (%rsp)
movq $0xb, 0x8(%rsp)
callq 0x1f8d0
callq 0x23a30
testb $0x1, %al
jne 0xb9fa
jmp 0xbb38
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0xa, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x3, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x80, %esi
movl $0x8a, %r8d
movl $0x5, %ecx
movq $-0x3, %r9
movl %r8d, %edx
callq 0x23a40
movq -0x10(%rbp), %rdi
movl $0xa0, %esi
movl $0x8a, %r8d
movl $0xd, %ecx
movq $-0x3, %r9
movl %r8d, %edx
movl $0x8a, (%rsp)
movq $0x5, 0x8(%rsp)
callq 0x26fb0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0xa, %r8d
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x2, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0xa, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x3, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0xa, %r8d
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x1, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0xa3, %esi
movl $0x81, %edx
movl $0x13, %ecx
movl $0x8a, %r8d
movl $0xd, %r9d
movl $0x283, (%rsp)          # imm = 0x283
movq $0x1, 0x8(%rsp)
callq 0x26fb0
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 0xbb8b
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x218a2(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0xbcac
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x30(%rbp), %rdi
leaq -0x40(%rbp), %rsi
leaq -0x60(%rbp), %rdx
callq *%rax
cmpq $-0x2b1, -0x28(%rbp)    # imm = 0xFD4F
je 0xbbc3
leaq 0x22c52(%rip), %rdi     # 0x2e809
movb $0x0, %al
callq 0x2070
jmp 0xbcac
cmpq $-0x10, -0x20(%rbp)
je 0xbbdd
leaq 0x22c4e(%rip), %rdi     # 0x2e81f
movb $0x0, %al
callq 0x2070
jmp 0xbcac
cmpl $0xfffff51b, -0x3c(%rbp) # imm = 0xFFFFF51B
je 0xbbf9
leaq 0x22c48(%rip), %rdi     # 0x2e835
movb $0x0, %al
callq 0x2070
jmp 0xbcac
cmpl $-0x12, -0x38(%rbp)
je 0xbc12
leaq 0x22c45(%rip), %rdi     # 0x2e84b
movb $0x0, %al
callq 0x2070
jmp 0xbcac
callq 0x23a30
testb $0x1, %al
jne 0xbc1d
jmp 0xbc94
movsd -0x58(%rbp), %xmm0
movsd 0x21516(%rip), %xmm1    # 0x2d140
ucomisd %xmm1, %xmm0
jne 0xbc34
jp 0xbc34
jmp 0xbc44
leaq 0x22c26(%rip), %rdi     # 0x2e861
movb $0x0, %al
callq 0x2070
jmp 0xbcac
movsd -0x50(%rbp), %xmm0
movsd 0x214f7(%rip), %xmm1    # 0x2d148
ucomisd %xmm1, %xmm0
jne 0xbc5b
jp 0xbc5b
jmp 0xbc6b
leaq 0x22c15(%rip), %rdi     # 0x2e877
movb $0x0, %al
callq 0x2070
jmp 0xbcac
movsd -0x48(%rbp), %xmm0
movsd 0x214d8(%rip), %xmm1    # 0x2d150
ucomisd %xmm1, %xmm0
jne 0xbc82
jp 0xbc82
jmp 0xbc92
leaq 0x22c04(%rip), %rdi     # 0x2e88d
movb $0x0, %al
callq 0x2070
jmp 0xbcac
jmp 0xbc94
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x286b9(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x286b0(%rip)     # 0x3435c
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)