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

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

	FAILED(!compiler, "cannot create compiler\n");
	buf[0] = 0;
	buf[1] = 0;
	buf[2] = 0;

	sljit_emit_enter(compiler, 0, 1, 3, 1, 0, 0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0x3a5c6f);
	sljit_emit_op2(compiler, SLJIT_SUB | SLJIT_SET_U, SLJIT_UNUSED, 0, SLJIT_R0, 0, SLJIT_IMM, 3);
	sljit_set_target(sljit_emit_jump(compiler, SLJIT_LESS), 0x11223344);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_R0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0xd37c10);
#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE)
	sljit_set_target(sljit_emit_jump(compiler, SLJIT_LESS), SLJIT_W(0x112233445566));
#endif
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long), SLJIT_R0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0x59b48e);
#if (defined SLJIT_64BIT_ARCHITECTURE && SLJIT_64BIT_ARCHITECTURE)
	sljit_set_target(sljit_emit_jump(compiler, SLJIT_LESS), SLJIT_W(0x1122334455667788));
#endif
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), 2 * sizeof(long), SLJIT_R0, 0);
	sljit_emit_return(compiler, SLJIT_MOV, SLJIT_RETURN_REG, 0);

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

	code.func1((long)&buf);
	FAILED(buf[0] != 0x3a5c6f, "test47 case 1 failed\n");
	FAILED(buf[1] != 0xd37c10, "test47 case 2 failed\n");
	FAILED(buf[2] != 0x59b48e, "test47 case 3 failed\n");

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x1eecc(%rip)     # 0x34354
je 0x15498
leaq 0x1a7c1(%rip), %rdi     # 0x2fc52
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0x154b2
leaq 0x17f2d(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0x1571e
movq $0x0, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rdi
xorl %r9d, %r9d
movl $0x1, %r8d
movl $0x3, %ecx
movl %r9d, %esi
movl %r8d, %edx
movl $0x0, (%rsp)
movl $0x0, 0x8(%rsp)
callq 0x19b20
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x3a5c6f, %r9d         # imm = 0x3A5C6F
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x462, %esi            # imm = 0x462
xorl %edx, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0x3, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x2, %esi
callq 0x283d0
movq %rax, %rdi
movl $0x11223344, %esi       # imm = 0x11223344
callq 0x18e80
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movq %r9, %rcx
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0xd37c10, %r9d         # imm = 0xD37C10
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x2, %esi
callq 0x283d0
movq %rax, %rdi
movabsq $0x112233445566, %rsi   # imm = 0x112233445566
callq 0x18e80
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x8, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x59b48e, %r9d         # imm = 0x59B48E
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x2, %esi
callq 0x283d0
movq %rax, %rdi
movabsq $0x1122334455667788, %rsi # imm = 0x1122334455667788
callq 0x18e80
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x10, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x1a7c0
movq -0x10(%rbp), %rdi
callq 0x19070
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x18030
cmpl $0x1, %eax
je 0x156a5
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x17d85(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x1571e
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x30(%rbp), %rdi
callq *%rax
cmpq $0x3a5c6f, -0x30(%rbp)  # imm = 0x3A5C6F
je 0x156d2
leaq 0x1a595(%rip), %rdi     # 0x2fc5e
movb $0x0, %al
callq 0x2070
jmp 0x1571e
cmpq $0xd37c10, -0x28(%rbp)  # imm = 0xD37C10
je 0x156ec
leaq 0x1a591(%rip), %rdi     # 0x2fc74
movb $0x0, %al
callq 0x2070
jmp 0x1571e
cmpq $0x59b48e, -0x20(%rbp)  # imm = 0x59B48E
je 0x15706
leaq 0x1a58d(%rip), %rdi     # 0x2fc8a
movb $0x0, %al
callq 0x2070
jmp 0x1571e
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x1ec47(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x1ec3e(%rip)     # 0x3435c
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)