// File: /workspace/github_c_makefile_star2_O1/deplinenoise[P]tundra/unittest/Test_BitFuncs.cpp
// Function: BitFuncs_PopLsb_Test::TestBody()
TEST(BitFuncs, PopLsb)
{
  ASSERT_EQ(32, CountTrailingZeroes(0));

  ASSERT_EQ(1, CountTrailingZeroes(2));

  ASSERT_EQ(0, CountTrailingZeroes(1));

  ASSERT_EQ(0, CountTrailingZeroes(0xffffffff));
  ASSERT_EQ(1, CountTrailingZeroes(0xfffffffe));
  ASSERT_EQ(31, CountTrailingZeroes(0x80000000));
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
leaq 0x8(%rsp), %rbx
movl $0x20, (%rbx)
xorl %edi, %edi
callq 0x41c1e
leaq 0x10(%rsp), %r8
movl %eax, (%r8)
leaq 0x260e6(%rip), %rsi     # 0x57b3e
leaq 0x23837(%rip), %rdx     # 0x55296
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32072
movb (%r14), %bl
testb %bl, %bl
jne 0x31afd
leaq 0x8(%rsp), %rdi
callq 0x12eee
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x31a93
movq (%rax), %r8
jmp 0x31a9a
leaq 0x273b9(%rip), %r8      # 0x58e53
leaq 0x237da(%rip), %rdx     # 0x5527b
leaq 0x10(%rsp), %rdi
movl $0x2, %esi
movl $0x8, %ecx
callq 0x10bb8
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x10c56
leaq 0x10(%rsp), %rdi
callq 0x10c24
cmpq $0x0, 0x8(%rsp)
je 0x31afd
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x31af4
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x31af4
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
testb %bl, %bl
je 0x31f30
leaq 0x8(%rsp), %rbx
movl $0x1, (%rbx)
movl $0x2, %edi
callq 0x41c1e
leaq 0x10(%rsp), %r8
movl %eax, (%r8)
leaq 0x22612(%rip), %rsi     # 0x54147
leaq 0x23771(%rip), %rdx     # 0x552ad
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32072
movb (%r14), %bl
testb %bl, %bl
jne 0x31bda
leaq 0x8(%rsp), %rdi
callq 0x12eee
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x31b70
movq (%rax), %r8
jmp 0x31b77
leaq 0x272dc(%rip), %r8      # 0x58e53
leaq 0x236fd(%rip), %rdx     # 0x5527b
leaq 0x10(%rsp), %rdi
movl $0x2, %esi
movl $0xa, %ecx
callq 0x10bb8
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x10c56
leaq 0x10(%rsp), %rdi
callq 0x10c24
cmpq $0x0, 0x8(%rsp)
je 0x31bda
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x31bd1
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x31bd1
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
testb %bl, %bl
je 0x31f30
leaq 0x8(%rsp), %rbx
movl $0x0, (%rbx)
movl $0x1, %edi
callq 0x41c1e
leaq 0x10(%rsp), %r8
movl %eax, (%r8)
leaq 0x22ef6(%rip), %rsi     # 0x54b08
leaq 0x236ab(%rip), %rdx     # 0x552c4
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32072
movb (%r14), %bl
testb %bl, %bl
jne 0x31cb7
leaq 0x8(%rsp), %rdi
callq 0x12eee
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x31c4d
movq (%rax), %r8
jmp 0x31c54
leaq 0x271ff(%rip), %r8      # 0x58e53
leaq 0x23620(%rip), %rdx     # 0x5527b
leaq 0x10(%rsp), %rdi
movl $0x2, %esi
movl $0xc, %ecx
callq 0x10bb8
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x10c56
leaq 0x10(%rsp), %rdi
callq 0x10c24
cmpq $0x0, 0x8(%rsp)
je 0x31cb7
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x31cae
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x31cae
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
testb %bl, %bl
je 0x31f30
leaq 0x8(%rsp), %rbx
movl $0x0, (%rbx)
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x41c1e
leaq 0x10(%rsp), %r8
movl %eax, (%r8)
leaq 0x22e19(%rip), %rsi     # 0x54b08
leaq 0x235e5(%rip), %rdx     # 0x552db
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32072
movb (%r14), %bl
testb %bl, %bl
jne 0x31d94
leaq 0x8(%rsp), %rdi
callq 0x12eee
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x31d2a
movq (%rax), %r8
jmp 0x31d31
leaq 0x27122(%rip), %r8      # 0x58e53
leaq 0x23543(%rip), %rdx     # 0x5527b
leaq 0x10(%rsp), %rdi
movl $0x2, %esi
movl $0xe, %ecx
callq 0x10bb8
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x10c56
leaq 0x10(%rsp), %rdi
callq 0x10c24
cmpq $0x0, 0x8(%rsp)
je 0x31d94
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x31d8b
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x31d8b
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
testb %bl, %bl
je 0x31f30
leaq 0x8(%rsp), %rbx
movl $0x1, (%rbx)
movl $0xfffffffe, %edi       # imm = 0xFFFFFFFE
callq 0x41c1e
leaq 0x10(%rsp), %r8
movl %eax, (%r8)
leaq 0x2237b(%rip), %rsi     # 0x54147
leaq 0x23528(%rip), %rdx     # 0x552fb
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32072
movb (%r14), %bl
testb %bl, %bl
jne 0x31e71
leaq 0x8(%rsp), %rdi
callq 0x12eee
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x31e07
movq (%rax), %r8
jmp 0x31e0e
leaq 0x27045(%rip), %r8      # 0x58e53
leaq 0x23466(%rip), %rdx     # 0x5527b
leaq 0x10(%rsp), %rdi
movl $0x2, %esi
movl $0xf, %ecx
callq 0x10bb8
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x10c56
leaq 0x10(%rsp), %rdi
callq 0x10c24
cmpq $0x0, 0x8(%rsp)
je 0x31e71
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x31e68
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x31e68
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
testb %bl, %bl
je 0x31f30
leaq 0x8(%rsp), %rbx
movl $0x1f, (%rbx)
movl $0x80000000, %edi       # imm = 0x80000000
callq 0x41c1e
leaq 0x10(%rsp), %r8
movl %eax, (%r8)
leaq 0x23472(%rip), %rsi     # 0x5531b
leaq 0x2346e(%rip), %rdx     # 0x5531e
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
callq 0x32072
cmpb $0x0, (%r14)
jne 0x31f24
leaq 0x8(%rsp), %rdi
callq 0x12eee
movq 0x20(%rsp), %rax
testq %rax, %rax
je 0x31edf
movq (%rax), %r8
jmp 0x31ee6
leaq 0x26f6d(%rip), %r8      # 0x58e53
leaq 0x2338e(%rip), %rdx     # 0x5527b
leaq 0x10(%rsp), %rdi
movl $0x2, %esi
movl $0x10, %ecx
callq 0x10bb8
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x10c56
leaq 0x10(%rsp), %rdi
callq 0x10c24
leaq 0x8(%rsp), %rdi
callq 0x31faa
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
addq $0x28, %rsp
popq %rbx
popq %r14
retq
jmp 0x31f6a
jmp 0x31f79
jmp 0x31f88
jmp 0x31f9d
jmp 0x31f9d
jmp 0x31f6a
jmp 0x31f79
jmp 0x31f88
jmp 0x31f9d
jmp 0x31f9d
jmp 0x31f6a
jmp 0x31f79
jmp 0x31f88
jmp 0x31f9d
jmp 0x31f9d
jmp 0x31f6a
jmp 0x31f79
jmp 0x31f88
jmp 0x31f9d
jmp 0x31f9d
jmp 0x31f6a
jmp 0x31f79
jmp 0x31f88
jmp 0x31f9d
jmp 0x31f9d
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x10c24
jmp 0x31f7c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x31faa
jmp 0x31f8b
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x31fbc
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x28baf
nop