// File: /workspace/github_cpp_makefile_star2_O2/jswaff[P]prophet3/test/movegen__test.cpp
// Function: test_gen_queen_noncaptures()
void test_gen_queen_noncaptures() {
    position pos;
    set_pos(&pos,"8/8/3bk3/8/8/2K3Q1/8/8 w - - 0 1");

    move moves[20];
    move *mp = gen_queen_moves(moves,&pos,G3,false,true);

    assert((mp - moves) == 17);
    assert(is_in_move_list(to_move(QUEEN,G3,G4),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G5),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G6),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G7),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G8),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,H4),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,H3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,H2),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G2),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G1),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,F2),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,E1),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,F3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,E3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,D3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,F4),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,E5),moves,mp));
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
leaq 0x17682(%rip), %rsi     # 0x317ad
leaq 0xa0(%rsp), %rbx
movq %rbx, %rdi
callq 0xa1b8
movq %rsp, %r14
pushq $0x2e
popq %rdx
pushq $0x1
popq %r8
movq %r14, %rdi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x8292
movq %rax, %rbx
subq %r14, %rax
cmpq $0x88, %rax
jne 0x1a3d3
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x26
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a3f2
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x1e
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a411
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x16
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a430
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0xe
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a44f
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x6
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a46e
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x27
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a48d
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x2f
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a4ac
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x37
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a4cb
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x36
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a4ea
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x3e
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a509
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x35
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a528
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x3c
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a547
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x2d
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a566
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x2c
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a585
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x2b
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a5a4
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x25
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a5c3
pushq $0x5
popq %rdi
pushq $0x2e
popq %rsi
pushq $0x1c
popq %rdx
callq 0x7284
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xdacb
testb %al, %al
je 0x1a5e2
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r14
retq
leaq 0x17787(%rip), %rdi     # 0x31b61
leaq 0x16a30(%rip), %rsi     # 0x30e11
leaq 0x1778c(%rip), %rcx     # 0x31b74
movl $0xeb, %edx
callq 0x20c0
leaq 0x173f1(%rip), %rdi     # 0x317ea
leaq 0x16a11(%rip), %rsi     # 0x30e11
leaq 0x1776d(%rip), %rcx     # 0x31b74
movl $0xec, %edx
callq 0x20c0
leaq 0x17401(%rip), %rdi     # 0x31819
leaq 0x169f2(%rip), %rsi     # 0x30e11
leaq 0x1774e(%rip), %rcx     # 0x31b74
movl $0xed, %edx
callq 0x20c0
leaq 0x17411(%rip), %rdi     # 0x31848
leaq 0x169d3(%rip), %rsi     # 0x30e11
leaq 0x1772f(%rip), %rcx     # 0x31b74
movl $0xee, %edx
callq 0x20c0
leaq 0x17421(%rip), %rdi     # 0x31877
leaq 0x169b4(%rip), %rsi     # 0x30e11
leaq 0x17710(%rip), %rcx     # 0x31b74
movl $0xef, %edx
callq 0x20c0
leaq 0x17431(%rip), %rdi     # 0x318a6
leaq 0x16995(%rip), %rsi     # 0x30e11
leaq 0x176f1(%rip), %rcx     # 0x31b74
movl $0xf0, %edx
callq 0x20c0
leaq 0x17441(%rip), %rdi     # 0x318d5
leaq 0x16976(%rip), %rsi     # 0x30e11
leaq 0x176d2(%rip), %rcx     # 0x31b74
movl $0xf1, %edx
callq 0x20c0
leaq 0x17451(%rip), %rdi     # 0x31904
leaq 0x16957(%rip), %rsi     # 0x30e11
leaq 0x176b3(%rip), %rcx     # 0x31b74
movl $0xf2, %edx
callq 0x20c0
leaq 0x17461(%rip), %rdi     # 0x31933
leaq 0x16938(%rip), %rsi     # 0x30e11
leaq 0x17694(%rip), %rcx     # 0x31b74
movl $0xf3, %edx
callq 0x20c0
leaq 0x17471(%rip), %rdi     # 0x31962
leaq 0x16919(%rip), %rsi     # 0x30e11
leaq 0x17675(%rip), %rcx     # 0x31b74
movl $0xf4, %edx
callq 0x20c0
leaq 0x17481(%rip), %rdi     # 0x31991
leaq 0x168fa(%rip), %rsi     # 0x30e11
leaq 0x17656(%rip), %rcx     # 0x31b74
movl $0xf5, %edx
callq 0x20c0
leaq 0x17491(%rip), %rdi     # 0x319c0
leaq 0x168db(%rip), %rsi     # 0x30e11
leaq 0x17637(%rip), %rcx     # 0x31b74
movl $0xf6, %edx
callq 0x20c0
leaq 0x174a1(%rip), %rdi     # 0x319ef
leaq 0x168bc(%rip), %rsi     # 0x30e11
leaq 0x17618(%rip), %rcx     # 0x31b74
movl $0xf7, %edx
callq 0x20c0
leaq 0x174b1(%rip), %rdi     # 0x31a1e
leaq 0x1689d(%rip), %rsi     # 0x30e11
leaq 0x175f9(%rip), %rcx     # 0x31b74
movl $0xf8, %edx
callq 0x20c0
leaq 0x174c1(%rip), %rdi     # 0x31a4d
leaq 0x1687e(%rip), %rsi     # 0x30e11
leaq 0x175da(%rip), %rcx     # 0x31b74
movl $0xf9, %edx
callq 0x20c0
leaq 0x174d1(%rip), %rdi     # 0x31a7c
leaq 0x1685f(%rip), %rsi     # 0x30e11
leaq 0x175bb(%rip), %rcx     # 0x31b74
movl $0xfa, %edx
callq 0x20c0
leaq 0x174e1(%rip), %rdi     # 0x31aab
leaq 0x16840(%rip), %rsi     # 0x30e11
leaq 0x1759c(%rip), %rcx     # 0x31b74
movl $0xfb, %edx
callq 0x20c0
leaq 0x174f1(%rip), %rdi     # 0x31ada
leaq 0x16821(%rip), %rsi     # 0x30e11
leaq 0x1757d(%rip), %rcx     # 0x31b74
movl $0xfc, %edx
callq 0x20c0