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

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

	FAILED(!compiler, "cannot create compiler\n");
	buf[0] = 0xff80;
	buf[1] = 0x0f808080;
	buf[2] = 0;
	buf[3] = 0xaaaaaa;
	buf[4] = 0;
	buf[5] = 0x4040;
	buf[6] = 0;
	buf[7] = 0xc43a7f95;

	sljit_emit_enter(compiler, 0, 1, 3, 1, 0, 0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0xf0C000);
	sljit_emit_op2(compiler, SLJIT_OR, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 2, SLJIT_R0, 0, SLJIT_IMM, 0x308f);
	sljit_emit_op2(compiler, SLJIT_XOR, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_MEM1(SLJIT_S0), 0, SLJIT_MEM1(SLJIT_S0), sizeof(long));
	sljit_emit_op2(compiler, SLJIT_AND, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 3, SLJIT_IMM, 0xf0f0f0, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 3);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0xC0F0);
	sljit_emit_op2(compiler, SLJIT_XOR, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 5);
	sljit_emit_op2(compiler, SLJIT_OR, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, 0xff0000);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 4, SLJIT_R0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R2, 0, SLJIT_IMM, 0xC0F0);
	sljit_emit_op2(compiler, SLJIT_AND, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 5);
	sljit_emit_op2(compiler, SLJIT_OR, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 5, SLJIT_R2, 0, SLJIT_IMM, 0xff0000);
	sljit_emit_op2(compiler, SLJIT_XOR, SLJIT_MEM1(SLJIT_S0), sizeof(long), SLJIT_IMM, 0xFFFFFF, SLJIT_MEM1(SLJIT_S0), sizeof(long));
	sljit_emit_op2(compiler, SLJIT_OR, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 6, SLJIT_IMM, 0xa56c82c0, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 6);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 7);
	sljit_emit_op2(compiler, SLJIT_XOR, SLJIT_MEM1(SLJIT_S0), sizeof(long) * 7, SLJIT_IMM, 0xff00ff00, SLJIT_R0, 0);
	sljit_emit_op1(compiler, SLJIT_MOV, SLJIT_R0, 0, SLJIT_IMM, 0xff00ff00);
	sljit_emit_op2(compiler, SLJIT_OR, SLJIT_R1, 0, SLJIT_R0, 0, SLJIT_IMM, 0x0f);
	sljit_emit_op2(compiler, SLJIT_AND, SLJIT_RETURN_REG, 0, SLJIT_IMM, 0x888888, SLJIT_R1, 0);
	sljit_emit_return(compiler, SLJIT_MOV, SLJIT_RETURN_REG, 0);

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

	FAILED(code.func1((long)&buf) != 0x8808, "test7 case 1 failed\n");
	FAILED(buf[0] != 0x0F807F00, "test7 case 2 failed\n");
	FAILED(buf[1] != 0x0F7F7F7F, "test7 case 3 failed\n");
	FAILED(buf[2] != 0x00F0F08F, "test7 case 4 failed\n");
	FAILED(buf[3] != 0x00A0A0A0, "test7 case 5 failed\n");
	FAILED(buf[4] != 0x00FF80B0, "test7 case 6 failed\n");
	FAILED(buf[5] != 0x00FF4040, "test7 case 7 failed\n");
	FAILED(buf[6] != 0xa56c82c0, "test7 case 8 failed\n");
	FAILED(buf[7] != 0x3b3a8095, "test7 case 9 failed\n");

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
callq 0x18ba0
movq %rax, -0x10(%rbp)
cmpl $0x0, 0x3002c(%rip)     # 0x34354
je 0x4338
leaq 0x29428(%rip), %rdi     # 0x2d759
movb $0x0, %al
callq 0x2070
cmpq $0x0, -0x10(%rbp)
jne 0x4352
leaq 0x2908d(%rip), %rdi     # 0x2d3d3
movb $0x0, %al
callq 0x2070
jmp 0x4865
movq $0xff80, -0x50(%rbp)    # imm = 0xFF80
movq $0xf808080, -0x48(%rbp) # imm = 0xF808080
movq $0x0, -0x40(%rbp)
movq $0xaaaaaa, -0x38(%rbp)  # imm = 0xAAAAAA
movq $0x0, -0x30(%rbp)
movq $0x4040, -0x28(%rbp)    # imm = 0x4040
movq $0x0, -0x20(%rbp)
movl $0xc43a7f95, %eax       # imm = 0xC43A7F95
movq %rax, -0x18(%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 $0xf0c000, %r9d         # imm = 0xF0C000
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x66, %esi
movl $0x8c, %edx
movl $0x10, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x40, (%rsp)
movq $0x308f, 0x8(%rsp)      # imm = 0x308F
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x67, %esi
movl $0x8c, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x8c, (%rsp)
movq $0x8, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x65, %esi
movl $0x8c, %edx
movl $0x18, %ecx
movl $0x40, %r8d
movl $0xf0f0f0, %r9d         # imm = 0xF0F0F0
movl $0x8c, (%rsp)
movq $0x18, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0xc0f0, %r9d           # imm = 0xC0F0
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x67, %esi
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x8c, (%rsp)
movq $0x28, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x66, %esi
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0xff0000, 0x8(%rsp)    # imm = 0xFF0000
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x8c, %edx
movl $0x20, %ecx
movl $0x1, %r8d
xorl %eax, %eax
movl %eax, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x3, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0xc0f0, %r9d           # imm = 0xC0F0
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x65, %esi
movl $0x3, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl %r8d, %edx
movq %r9, %rcx
movl $0x8c, (%rsp)
movq $0x28, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x66, %esi
movl $0x8c, %edx
movl $0x28, %ecx
movl $0x3, %r8d
xorl %eax, %eax
movl %eax, %r9d
movl $0x40, (%rsp)
movq $0xff0000, 0x8(%rsp)    # imm = 0xFF0000
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x67, %esi
movl $0x8c, %edx
movl $0x8, %ecx
movl $0x40, %r8d
movl $0xffffff, %r9d         # imm = 0xFFFFFF
movl $0x8c, (%rsp)
movq $0x8, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x66, %esi
movl $0x8c, %edx
movl $0x30, %ecx
movl $0x40, %r8d
movl $0xa56c82c0, %r9d       # imm = 0xA56C82C0
movl $0x8c, (%rsp)
movq $0x30, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x8c, %r8d
movl $0x38, %r9d
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x67, %esi
movl $0x8c, %edx
movl $0x38, %ecx
movl $0x40, %r8d
movl $0xff00ff00, %r9d       # imm = 0xFF00FF00
xorl %eax, %eax
movl $0x1, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x20, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0xff00ff00, %r9d       # imm = 0xFF00FF00
callq 0x1d3d0
movq -0x10(%rbp), %rdi
movl $0x66, %esi
movl $0x2, %edx
xorl %eax, %eax
movl %eax, %r9d
movl $0x1, %r8d
movq %r9, %rcx
movl $0x40, (%rsp)
movq $0xf, 0x8(%rsp)
callq 0x1f8d0
movq -0x10(%rbp), %rdi
movl $0x65, %esi
movl $0x1, %edx
xorl %eax, %eax
movl %eax, %ecx
movl $0x40, %r8d
movl $0x888888, %r9d         # imm = 0x888888
movl $0x2, (%rsp)
movq $0x0, 0x8(%rsp)
callq 0x1f8d0
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 0x4742
movq -0x10(%rbp), %rdi
callq 0x18030
movl %eax, %esi
leaq 0x28ceb(%rip), %rdi     # 0x2d418
movb $0x0, %al
callq 0x2070
movq -0x10(%rbp), %rdi
callq 0x18d90
jmp 0x4865
movq -0x10(%rbp), %rdi
callq 0x18d90
movq -0x8(%rbp), %rax
leaq -0x50(%rbp), %rdi
callq *%rax
cmpq $0x8808, %rax           # imm = 0x8808
je 0x4770
leaq 0x29000(%rip), %rdi     # 0x2d764
movb $0x0, %al
callq 0x2070
jmp 0x4865
cmpq $0xf807f00, -0x50(%rbp) # imm = 0xF807F00
je 0x478d
leaq 0x28ff8(%rip), %rdi     # 0x2d779
movb $0x0, %al
callq 0x2070
jmp 0x4865
cmpq $0xf7f7f7f, -0x48(%rbp) # imm = 0xF7F7F7F
je 0x47aa
leaq 0x28ff0(%rip), %rdi     # 0x2d78e
movb $0x0, %al
callq 0x2070
jmp 0x4865
cmpq $0xf0f08f, -0x40(%rbp)  # imm = 0xF0F08F
je 0x47c7
leaq 0x28fe8(%rip), %rdi     # 0x2d7a3
movb $0x0, %al
callq 0x2070
jmp 0x4865
cmpq $0xa0a0a0, -0x38(%rbp)  # imm = 0xA0A0A0
je 0x47e4
leaq 0x28fe0(%rip), %rdi     # 0x2d7b8
movb $0x0, %al
callq 0x2070
jmp 0x4865
cmpq $0xff80b0, -0x30(%rbp)  # imm = 0xFF80B0
je 0x47fe
leaq 0x28fd8(%rip), %rdi     # 0x2d7cd
movb $0x0, %al
callq 0x2070
jmp 0x4865
cmpq $0xff4040, -0x28(%rbp)  # imm = 0xFF4040
je 0x4818
leaq 0x28fd3(%rip), %rdi     # 0x2d7e2
movb $0x0, %al
callq 0x2070
jmp 0x4865
movl $0xa56c82c0, %eax       # imm = 0xA56C82C0
cmpq %rax, -0x20(%rbp)
je 0x4833
leaq 0x28fcd(%rip), %rdi     # 0x2d7f7
movb $0x0, %al
callq 0x2070
jmp 0x4865
cmpq $0x3b3a8095, -0x18(%rbp) # imm = 0x3B3A8095
je 0x484d
leaq 0x28fc8(%rip), %rdi     # 0x2d80c
movb $0x0, %al
callq 0x2070
jmp 0x4865
movq -0x8(%rbp), %rdi
callq 0x18e10
movl 0x2fb00(%rip), %eax     # 0x3435c
addl $0x1, %eax
movl %eax, 0x2faf7(%rip)     # 0x3435c
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)