// File: /workspace/github_cpp_makefile_star2_O2/yanniss[P]souffle-num-addon/num256_test.cpp
// Function: test_shr::test_method()
BOOST_AUTO_TEST_CASE(test_shr) {
	BOOST_TEST(
			   shr_256("0x0",
					   "0x0000000000000000000000000000000000000000000000000000000000000001")
			   ==
			   "0x1");
	BOOST_TEST(
			   shr_256("0x1",
					   "0x0000000000000000000000000000000000000000000000000000000000000001")
			   ==
			   "0x0");
	BOOST_TEST(
			   shr_256("0x01",
					   "0x8000000000000000000000000000000000000000000000000000000000000000")
			   ==
			   "0x4000000000000000000000000000000000000000000000000000000000000000");
	BOOST_TEST(
			   shr_256("0xff",
					   "0x8000000000000000000000000000000000000000000000000000000000000000")
			   ==
			   "0x1");
	BOOST_TEST(
			   shr_256("0x100",
					   "0x8000000000000000000000000000000000000000000000000000000000000000")
			   ==
			   "0x0");
	BOOST_TEST(
			   shr_256("0x0101",
					   "0x8000000000000000000000000000000000000000000000000000000000000000")
			   ==
			   "0x0");
	BOOST_TEST(
			   shr_256("0x00",
					   "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
			   ==
			   "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
	BOOST_TEST(
			   shr_256("0x01",
					   "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
			   ==
			   "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
	BOOST_TEST(
			   shr_256("0xff",
					   "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
			   ==
			   "0x1");
	BOOST_TEST(
			   shr_256("0x0100",
					   "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
			   ==
			   "0x0");
	BOOST_TEST(
			   shr_256("0x01",
					   "0x0000000000000000000000000000000000000000000000000000000000000000")
			   ==
			   "0x0");
	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x278, %rsp            # imm = 0x278
leaq 0x3290a(%rip), %r12     # 0x5a873
leaq -0x290(%rbp), %rsi
movq %r12, (%rsi)
leaq 0x32908(%rip), %r13     # 0x5a882
movq %r13, 0x8(%rsi)
leaq 0x3e267(%rip), %rax     # 0x661ec
leaq -0x280(%rbp), %rcx
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
pushq $0x76
popq %r14
movq %r14, %rdx
callq 0x1cad0
leaq 0x32ce4(%rip), %rbx     # 0x5ac8a
leaq 0x32ce1(%rip), %rsi     # 0x5ac8e
movq %rbx, %rdi
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x32d0e(%rip), %rax     # 0x5acd1
movq %rax, 0x8(%rsi)
leaq -0x50(%rbp), %r15
movq %r15, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x33422(%rip), %rax     # 0x5b3fe
leaq -0x38(%rbp), %rcx
movq %rax, (%rcx)
leaq 0x33471(%rip), %rax     # 0x5b45b
movq %rax, 0x8(%rcx)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x64d53(%rip), %rax     # 0x8cd50
movq %rax, (%rsi)
leaq 0x65a69(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
movq %rcx, 0x18(%rsi)
leaq -0x270(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movq %r15, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x260(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x250(%rbp), %rcx
leaq 0x3e190(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
pushq $0x7b
popq %r15
movq %r15, %rdx
callq 0x1cad0
leaq 0x32c5b(%rip), %rdi     # 0x5acd1
leaq 0x32c11(%rip), %rsi     # 0x5ac8e
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, 0x8(%rsi)
movq %r12, %r14
leaq -0x50(%rbp), %r12
movq %r12, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x333b7(%rip), %rax     # 0x5b45c
movq %rax, -0x38(%rbp)
leaq 0x33409(%rip), %rax     # 0x5b4b9
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x64c8d(%rip), %rbx     # 0x8cd50
movq %rbx, (%rsi)
leaq 0x659a3(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
leaq -0x38(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0x240(%rbp), %rdx
movq %r13, %rax
movq %r14, %r13
movq %r14, (%rdx)
movq %rax, %r14
movq %rax, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movq %r12, %rdi
movq %r15, %rcx
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x230(%rbp), %rsi
movq %r13, %r12
movq %r13, (%rsi)
movq %r14, %r13
movq %r14, 0x8(%rsi)
leaq -0x220(%rbp), %rcx
leaq 0x3e0b7(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x80, %edx
callq 0x1cad0
leaq 0x32ee0(%rip), %rdi     # 0x5b02d
leaq 0x32c46(%rip), %rsi     # 0x5ad9a
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x33353(%rip), %rax     # 0x5b4ba
movq %rax, 0x8(%rsi)
leaq -0x50(%rbp), %r15
movq %r15, %rdi
xorl %edx, %edx
callq 0x34160
leaq 0x3337d(%rip), %rax     # 0x5b4fd
movq %rax, -0x38(%rbp)
leaq 0x3340f(%rip), %rax     # 0x5b59a
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
movq %rbx, (%rsi)
leaq 0x658cf(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
leaq -0x38(%rbp), %r14
movq %r14, 0x18(%rsi)
leaq -0x210(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0x80, %ecx
movq %r15, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x200(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x1f0(%rbp), %rcx
leaq 0x3dff0(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x85, %edx
callq 0x1cad0
leaq 0x32b81(%rip), %rdi     # 0x5ad95
leaq 0x32b7f(%rip), %rsi     # 0x5ad9a
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x32aa3(%rip), %rax     # 0x5acd1
movq %rax, 0x8(%rsi)
movq %r15, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x33358(%rip), %rax     # 0x5b59b
movq %rax, -0x38(%rbp)
leaq 0x333ab(%rip), %rax     # 0x5b5f9
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
movq %rbx, (%rsi)
leaq 0x6580c(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x1e0(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0x85, %ecx
movq %r15, %rdi
xorl %eax, %eax
callq 0x194c8
leaq 0x329ed(%rip), %rbx     # 0x5ac8a
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x1d0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x1c0(%rbp), %rcx
leaq 0x3df2a(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x8a, %edx
callq 0x1cad0
leaq 0x32ba1(%rip), %rdi     # 0x5ae7b
leaq 0x32ab9(%rip), %rsi     # 0x5ad9a
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, 0x8(%rsi)
movq %r15, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x332f8(%rip), %rax     # 0x5b5fa
movq %rax, -0x38(%rbp)
leaq 0x3334c(%rip), %rax     # 0x5b659
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x64a30(%rip), %rax     # 0x8cd50
movq %rax, (%rsi)
leaq 0x65746(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x1b0(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0x8a, %ecx
movq %r15, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x1a0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x190(%rbp), %rcx
leaq 0x3de6b(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x8f, %edx
callq 0x1cad0
leaq 0x332c1(%rip), %rdi     # 0x5b65a
leaq 0x329fa(%rip), %rsi     # 0x5ad9a
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, 0x8(%rsi)
movq %r15, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x332a0(%rip), %rax     # 0x5b661
movq %rax, -0x38(%rbp)
leaq 0x332f5(%rip), %rax     # 0x5b6c1
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x64971(%rip), %rbx     # 0x8cd50
movq %rbx, (%rsi)
leaq 0x65687(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x180(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0x8f, %ecx
movq %r15, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x170(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x160(%rbp), %rcx
leaq 0x3ddac(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x94, %edx
callq 0x1cad0
leaq 0x32aef(%rip), %rdi     # 0x5af47
leaq 0x32aed(%rip), %r15     # 0x5af4c
movq %r15, %rsi
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
movq %r15, 0x8(%rsi)
leaq -0x50(%rbp), %r15
movq %r15, %rdi
xorl %edx, %edx
callq 0x34160
leaq 0x3323b(%rip), %rax     # 0x5b6c2
movq %rax, -0x38(%rbp)
leaq 0x332cd(%rip), %rax     # 0x5b75f
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
movq %rbx, (%rsi)
leaq 0x655c8(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x150(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0x94, %ecx
movq %r15, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x140(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x130(%rbp), %rcx
leaq 0x3dced(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x99, %edx
callq 0x1cad0
leaq 0x32b16(%rip), %rdi     # 0x5b02d
leaq 0x32a2e(%rip), %rsi     # 0x5af4c
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x32d82(%rip), %rax     # 0x5b2b3
movq %rax, 0x8(%rsi)
movq %r15, %rdi
xorl %edx, %edx
callq 0x34160
leaq 0x3321a(%rip), %rax     # 0x5b760
movq %rax, -0x38(%rbp)
leaq 0x332ac(%rip), %rax     # 0x5b7fd
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
movq %rbx, (%rsi)
leaq 0x65509(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x120(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0x99, %ecx
movq %r15, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0x110(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x100(%rbp), %rcx
leaq 0x3dc2e(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x9e, %edx
callq 0x1cad0
leaq 0x327bf(%rip), %rdi     # 0x5ad95
leaq 0x3296f(%rip), %rsi     # 0x5af4c
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x326e1(%rip), %rax     # 0x5acd1
movq %rax, 0x8(%rsi)
leaq -0x50(%rbp), %r14
movq %r14, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x331f5(%rip), %rax     # 0x5b7fe
movq %rax, -0x38(%rbp)
leaq 0x33248(%rip), %rax     # 0x5b85c
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
movq %rbx, (%rsi)
leaq 0x65446(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
leaq -0x38(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0xf0(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0x9e, %ecx
movq %r14, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0xe0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0xd0(%rbp), %rcx
leaq 0x3db67(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0xa3, %edx
callq 0x1cad0
leaq 0x331c0(%rip), %rdi     # 0x5b85d
leaq 0x328a8(%rip), %rsi     # 0x5af4c
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x325d3(%rip), %rbx     # 0x5ac8a
movq %rbx, 0x8(%rsi)
movq %r14, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x33198(%rip), %rax     # 0x5b864
movq %rax, -0x38(%rbp)
leaq 0x331ed(%rip), %rax     # 0x5b8c4
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x64666(%rip), %rax     # 0x8cd50
movq %rax, (%rsi)
leaq 0x6537c(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
leaq -0x38(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0xc0(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0xa3, %ecx
movq %r14, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
leaq -0xb0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0xa0(%rbp), %rcx
leaq 0x3da9d(%rip), %rax     # 0x661ec
movq %rax, (%rcx)
movq %rax, 0x8(%rcx)
movl $0xa8, %edx
callq 0x1cad0
leaq 0x328c6(%rip), %rdi     # 0x5b02d
leaq 0x32aa3(%rip), %rsi     # 0x5b211
callq 0x259f5
leaq -0x60(%rbp), %rsi
movq %rax, (%rsi)
movq %rbx, 0x8(%rsi)
leaq -0x50(%rbp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x34496
leaq 0x33132(%rip), %rax     # 0x5b8c5
movq %rax, -0x38(%rbp)
leaq 0x33185(%rip), %rax     # 0x5b923
movq %rax, -0x30(%rbp)
leaq -0x80(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x6459f(%rip), %rax     # 0x8cd50
movq %rax, (%rsi)
leaq 0x652b5(%rip), %rax     # 0x8da70
movq %rax, 0x10(%rsi)
leaq -0x38(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0x90(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x1
popq %r8
pushq $0xe
popq %r9
movl $0xa8, %ecx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x194c8
leaq -0x40(%rbp), %rdi
callq 0x373c8
addq $0x278, %rsp            # imm = 0x278
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x28820
jmp 0x28820
jmp 0x28820
jmp 0x28820
jmp 0x28820
jmp 0x28820
jmp 0x28820
jmp 0x28820
jmp 0x28820
jmp 0x28820
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x373c8
movq %rbx, %rdi
callq 0xf9a0