// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/test_src/sljitTest.c
// Function: test18
static void test18(void)
{
	/* Test 64 bit. */
	executable_code code;
	struct sljit_compiler* compiler = sljit_create_compiler();
	long buf[11];

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

	FAILED(!compiler, "cannot create compiler\n");
	buf[0] = 0;
	buf[1] = 0;
	buf[2] = 0;
	buf[3] = 0;
	buf[4] = 0;
	buf[5] = 100;
	buf[6] = 100;
	buf[7] = 100;
	buf[8] = 100;
	buf[9] = 0;
#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE) && (defined SLJIT_BIG_ENDIAN && SLJIT_BIG_ENDIAN)
	buf[10] = SLJIT_W(1) << 32;
#else
	buf[10] = 1;
#endif

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

#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE)
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_IMM, SLJIT_W(0x1122334455667788));
	sljit_emit_op1(compiler, SLJIT_MOV_UI, SLJIT_MEM1(SLJIT_S0), sizeof(long), SLJIT_IMM, SLJIT_W(0x1122334455667788));

	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(1000000000000));
	sljit_emit_op2(compiler, SLJIT_ADD, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 2, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(1000000000000));
	sljit_emit_op2(compiler, SLJIT_SUB, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 3, SLJIT_IMM, SLJIT_W(5000000000000), SLJIT_R0, 0);

	sljit_emit_op1(compiler, SLJIT_IMOV, SLJIT_R1, 0, SLJIT_IMM, SLJIT_W(0x1108080808));
	sljit_emit_op2(compiler, SLJIT_IADD, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 4, SLJIT_R1, 0, SLJIT_IMM, SLJIT_W(0x1120202020));

	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(0x1108080808));
	sljit_emit_op2(compiler, SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(0x1120202020));
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_S1, 0, SLJIT_UNUSED, 0, SLJIT_ZERO);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 5, SLJIT_S1, 0);
	sljit_emit_op1(compiler, SLJIT_IMOV, SLJIT_R0, 0, SLJIT_R0, 0);
	sljit_emit_op2(compiler, SLJIT_IAND | SLJIT_SET_E, SLJIT_UNUSED, 0, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(0x1120202020));
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 6, SLJIT_UNUSED, 0, SLJIT_I_ZERO);

	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(0x1108080808));
	sljit_emit_op2(compiler, SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(0x2208080808));
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 7, SLJIT_UNUSED, 0, SLJIT_LESS);
	sljit_emit_op1(compiler, SLJIT_MOV_SI | SLJIT_INT_OP, SLJIT_R0, 0, SLJIT_R0, 0);
	sljit_emit_op2(compiler, SLJIT_IAND | SLJIT_SET_E, SLJIT_UNUSED, 0, SLJIT_R0, 0, SLJIT_IMM, SLJIT_W(0x1104040404));
	sljit_emit_op_flags(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 8, SLJIT_UNUSED, 0, SLJIT_I_NOT_ZERO);

	sljit_emit_op1(compiler, SLJIT_IMOV, SLJIT_R0, 0, SLJIT_IMM, 4);
	sljit_emit_op2(compiler, SLJIT_ISHL, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 9, SLJIT_IMM, SLJIT_W(0xffff0000), SLJIT_R0, 0);

	sljit_emit_op2(compiler, SLJIT_IMUL, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 10, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 10, SLJIT_IMM, -1);
#else
	/* 32 bit operations. */

	sljit_emit_op1(compiler, SLJIT_IMOV, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_IMM, 0x11223344);
	sljit_emit_op2(compiler, SLJIT_IADD, SLJIT_MEM1(SLJIT_S0), sizeof(long), SLJIT_MEM1(SLJIT_S0), sizeof(long), SLJIT_IMM, 0x44332211);

#endif

	sljit_emit_return(compiler, SLJIT_UNUSED, 0, 0);

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

	code.func1((long)&buf);
#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE)
	FAILED(buf[0] != SLJIT_W(0x1122334455667788), "test18 case 1 failed\n");
#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN)
	FAILED(buf[1] != 0x55667788, "test18 case 2 failed\n");
#else
	FAILED(buf[1] != SLJIT_W(0x5566778800000000), "test18 case 2 failed\n");
#endif
	FAILED(buf[2] != SLJIT_W(2000000000000), "test18 case 3 failed\n");
	FAILED(buf[3] != SLJIT_W(4000000000000), "test18 case 4 failed\n");
#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN)
	FAILED(buf[4] != 0x28282828, "test18 case 5 failed\n");
#else
	FAILED(buf[4] != SLJIT_W(0x2828282800000000), "test18 case 5 failed\n");
#endif
	FAILED(buf[5] != 0, "test18 case 6 failed\n");
	FAILED(buf[6] != 1, "test18 case 7 failed\n");
	FAILED(buf[7] != 1, "test18 case 8 failed\n");
	FAILED(buf[8] != 0, "test18 case 9 failed\n");
#if (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN)
	FAILED(buf[9] != 0xfff00000, "test18 case 10 failed\n");
	FAILED(buf[10] != 0xffffffff, "test18 case 11 failed\n");
#else
	FAILED(buf[9] != SLJIT_W(0xfff0000000000000), "test18 case 10 failed\n");
	FAILED(buf[10] != SLJIT_W(0xffffffff00000000), "test18 case 11 failed\n");
#endif
#else
	FAILED(buf[0] != 0x11223344, "test18 case 1 failed\n");
	FAILED(buf[1] != 0x44332211, "test18 case 2 failed\n");
#endif

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x2bd89(%rip)     # 0x34354
je 0x85db
leaq 0x25a06(%rip), %rdi     # 0x2dfda
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0x85f5
leaq 0x24dea(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
movq $0x0, -0x70(%rbp)
movq $0x0, -0x68(%rbp)
movq $0x0, -0x60(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x64, -0x48(%rbp)
movq $0x64, -0x40(%rbp)
movq $0x64, -0x38(%rbp)
movq $0x64, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x1, -0x20(%rbp)
movq -0x10(%rbp), %rdi
xorl %r9d, %r9d
movl $0x1, %edx
movl $0x3, %ecx
movl $0x2, %r8d
movl %r9d, %esi
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0x19b20
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movabsq $0x1122334455667788, %r9 # imm = 0x1122334455667788
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x25, %esi
movl $0x8c, %edx
movl $0x8, %ecx
movl $0x40, %r8d
movabsq $0x1122334455667788, %r9 # imm = 0x1122334455667788
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movabsq $0xe8d4a51000, %r9      # imm = 0xE8D4A51000
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x60, %esi
movl $0x8c, %edx
movl $0x10, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movabsq $0xe8d4a51000, %rax     # imm = 0xE8D4A51000
movl $0x40, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x62, %esi
movl $0x8c, %edx
movl $0x18, %ecx
movl $0x40, %r8d
movabsq $0x48c27395000, %r9     # imm = 0x48C27395000
xorl %eax, %eax
movl $0x1, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x126, %esi            # imm = 0x126
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movabsq $0x1108080808, %r9      # imm = 0x1108080808
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x160, %esi            # imm = 0x160
movl $0x8c, %edx
movl $0x20, %ecx
movl $0x2, %r8d
xorl %eax, %eax
movl %eax, %r9d
movabsq $0x1120202020, %rax     # imm = 0x1120202020
movl $0x40, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movabsq $0x1108080808, %r9      # imm = 0x1108080808
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x265, %esi            # imm = 0x265
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movabsq $0x1120202020, %rax     # imm = 0x1120202020
movq %r9, %rcx
movl $0x40, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0xb, %edx
xorl %eax, %eax
movl %eax, %r9d
xorl %r8d, %r8d
movq %r9, %rcx
movl $0x0, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x28, %ecx
movl $0xb, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x126, %esi            # imm = 0x126
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x365, %esi            # imm = 0x365
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movabsq $0x1120202020, %rax     # imm = 0x1120202020
movq %r9, %rcx
movl $0x40, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x30, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x100, (%rsp)          # imm = 0x100
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movabsq $0x1108080808, %r9      # imm = 0x1108080808
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x462, %esi            # imm = 0x462
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movabsq $0x2208080808, %rax     # imm = 0x2208080808
movq %r9, %rcx
movl $0x40, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x38, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x2, (%rsp)
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x126, %esi            # imm = 0x126
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x365, %esi            # imm = 0x365
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movabsq $0x1104040404, %rax     # imm = 0x1104040404
movq %r9, %rcx
movl $0x40, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x40, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x101, (%rsp)          # imm = 0x101
callq 0x29010
movq -0x10(%rbp), %rdi
movl $0x126, %esi            # imm = 0x126
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x4, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x168, %esi            # imm = 0x168
movl $0x8c, %edx
movl $0x48, %ecx
movl $0x40, %r8d
movl $0xffff0000, %r9d       # imm = 0xFFFF0000
xorl %eax, %eax
movl $0x1, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x164, %esi            # imm = 0x164
movl $0x8c, %r8d
movl $0x50, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $-0x1, 0x8(%rsp)
callq 0x1f8d0
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 0x8ab9
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x24974(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x8c1c
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x70(%rbp), %rdi
callq *%rax
movabsq $0x1122334455667788, %rax # imm = 0x1122334455667788
cmpq %rax, -0x70(%rbp)
je 0x8aef
leaq 0x25503(%rip), %rdi     # 0x2dfe6
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
cmpq $0x55667788, -0x68(%rbp) # imm = 0x55667788
je 0x8b0c
leaq 0x254fc(%rip), %rdi     # 0x2dffc
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
movabsq $0x1d1a94a2000, %rax    # imm = 0x1D1A94A2000
cmpq %rax, -0x60(%rbp)
je 0x8b2f
leaq 0x254ef(%rip), %rdi     # 0x2e012
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
movabsq $0x3a352944000, %rax    # imm = 0x3A352944000
cmpq %rax, -0x58(%rbp)
je 0x8b52
leaq 0x254e2(%rip), %rdi     # 0x2e028
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
cmpq $0x28282828, -0x50(%rbp) # imm = 0x28282828
je 0x8b6f
leaq 0x254db(%rip), %rdi     # 0x2e03e
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
cmpq $0x0, -0x48(%rbp)
je 0x8b89
leaq 0x254d7(%rip), %rdi     # 0x2e054
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
cmpq $0x1, -0x40(%rbp)
je 0x8ba0
leaq 0x254d3(%rip), %rdi     # 0x2e06a
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
cmpq $0x1, -0x38(%rbp)
je 0x8bb7
leaq 0x254d2(%rip), %rdi     # 0x2e080
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
cmpq $0x0, -0x30(%rbp)
je 0x8bce
leaq 0x254d1(%rip), %rdi     # 0x2e096
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
movl $0xfff00000, %eax       # imm = 0xFFF00000
cmpq %rax, -0x28(%rbp)
je 0x8be9
leaq 0x254cc(%rip), %rdi     # 0x2e0ac
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, -0x20(%rbp)
je 0x8c04
leaq 0x254c8(%rip), %rdi     # 0x2e0c3
movb $0x0, %al
callq 0x2070
jmp 0x8c1c
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x2b749(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x2b740(%rip)     # 0x3435c
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)