// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/compressed_bitsequence.c
// Function: gt_compressed_bitsequence_unit_test_variable_field
static int gt_compressed_bitsequence_unit_test_variable_field(
                                                          GtError *err,
                                                          GtBitsequence *bitseq,
                                                          GtUword size)
{
  int had_err = 0;
  GtBitsequence result,
                value = ((GtBitsequence) 0xff) << 12;

  gt_error_check(err);

  result = gt_compressed_bitsequence_get_variable_field(bitseq, 0, 16U);
  gt_ensure(result == (GtBitsequence) 0xaaaa);
  result = gt_compressed_bitsequence_get_variable_field(bitseq, 16UL, 16U);
  gt_ensure(result == (GtBitsequence) 0xcccc);
  result = gt_compressed_bitsequence_get_variable_field(bitseq, 32UL, 32U);
  gt_ensure(result == (GtBitsequence) 0xaaaaccccUL);
  if (GT_LOGWORDSIZE == 6) {
    result = gt_compressed_bitsequence_get_variable_field(bitseq, 32UL, 64U);
    gt_ensure(result == (GtBitsequence) 0xaaaaccccaaaaccccULL);
  }

  gt_compressed_bitsequence_set_variable_field(bitseq, size, 16UL, 32U, value);
  result = gt_compressed_bitsequence_get_variable_field(bitseq, 0, 32U);
  gt_ensure(result == (GtBitsequence) 0xaaaa000fUL);
  result = gt_compressed_bitsequence_get_variable_field(bitseq, 32UL, 32U);
  gt_ensure(result == (GtBitsequence) 0xf000ccccUL);
  gt_compressed_bitsequence_set_variable_field(bitseq, size,
                                               16UL, 32U,
                                               (GtBitsequence) 0xccccaaaaUL);
  gt_compressed_bitsequence_set_variable_field(bitseq, size, 128UL, 8U,
                                               (GtBitsequence) 0xFF);
  result = gt_compressed_bitsequence_get_variable_field(bitseq, 128UL, 32U);
  gt_ensure(result == (GtBitsequence) 0xffaaccccUL);

  if (GT_LOGWORDSIZE == 6) {
    value <<= 16; /* total of << 28 = 0x0000000FF0000000 */
    gt_compressed_bitsequence_set_variable_field(bitseq, size,
                                                 32UL, 64U, value);
    result = gt_compressed_bitsequence_get_variable_field(bitseq, 0, 64U);
    gt_ensure(result == (GtBitsequence) 0xaaaacccc0000000fULL);
    result = gt_compressed_bitsequence_get_variable_field(bitseq, 64UL, 64U);
    gt_ensure(result == (GtBitsequence) 0xf0000000aaaaccccULL);
    gt_compressed_bitsequence_set_variable_field(
                bitseq, size, 32UL, 64U, (GtBitsequence) 0xaaaaccccaaaaccccULL);
    result = gt_compressed_bitsequence_get_variable_field(bitseq, 120UL, 64U);
    gt_ensure(result == (GtBitsequence) 0xccffaaccccaaaaccULL);
  }

  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movl $0x0, 0x1c(%rsp)
movq $0xff000, 0x8(%rsp)     # imm = 0xFF000
cmpq $0x0, 0x30(%rsp)
je 0x13d9a4
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x13d96c
jmp 0x13d9a4
movq 0x4fe62d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d8696(%rip), %rsi    # 0x516013
leaq 0x3d883b(%rip), %rdx    # 0x5161bf
leaq 0x40d36b(%rip), %rcx    # 0x54acf6
leaq 0x40ce74(%rip), %r8     # 0x54a806
movl $0x43c, %r9d            # imm = 0x43C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x13d9a6
movq 0x28(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x10, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13da08
cmpq $0xaaaa, 0x10(%rsp)     # imm = 0xAAAA
je 0x13da06
movq 0x30(%rsp), %rdi
leaq 0x3f1c1e(%rip), %rsi    # 0x52f5fa
leaq 0x40d346(%rip), %rdx    # 0x54ad29
leaq 0x40d30c(%rip), %rcx    # 0x54acf6
leaq 0x40ce15(%rip), %r8     # 0x54a806
movl $0x43f, %r9d            # imm = 0x43F
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13da08
jmp 0x13da0a
movq 0x28(%rsp), %rdi
movl $0x10, %esi
movl $0x10, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13da6d
cmpq $0xcccc, 0x10(%rsp)     # imm = 0xCCCC
je 0x13da6b
movq 0x30(%rsp), %rdi
leaq 0x3f1bb9(%rip), %rsi    # 0x52f5fa
leaq 0x40d302(%rip), %rdx    # 0x54ad4a
leaq 0x40d2a7(%rip), %rcx    # 0x54acf6
leaq 0x40cdb0(%rip), %r8     # 0x54a806
movl $0x441, %r9d            # imm = 0x441
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13da6d
jmp 0x13da6f
movq 0x28(%rsp), %rdi
movl $0x20, %esi
movl $0x20, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13dad3
movl $0xaaaacccc, %eax       # imm = 0xAAAACCCC
cmpq %rax, 0x10(%rsp)
je 0x13dad1
movq 0x30(%rsp), %rdi
leaq 0x3f1b53(%rip), %rsi    # 0x52f5fa
leaq 0x40d2bd(%rip), %rdx    # 0x54ad6b
leaq 0x40d241(%rip), %rcx    # 0x54acf6
leaq 0x40cd4a(%rip), %r8     # 0x54a806
movl $0x443, %r9d            # imm = 0x443
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13dad3
jmp 0x13dad5
movq 0x28(%rsp), %rdi
movl $0x20, %esi
movl $0x40, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13db3e
movabsq $-0x5555333355553334, %rax # imm = 0xAAAACCCCAAAACCCC
cmpq %rax, 0x10(%rsp)
je 0x13db3c
movq 0x30(%rsp), %rdi
leaq 0x3f1ae8(%rip), %rsi    # 0x52f5fa
leaq 0x40d279(%rip), %rdx    # 0x54ad92
leaq 0x40d1d6(%rip), %rcx    # 0x54acf6
leaq 0x40ccdf(%rip), %r8     # 0x54a806
movl $0x446, %r9d            # imm = 0x446
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13db3e
jmp 0x13db40
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x8(%rsp), %r8
movl $0x10, %edx
movl $0x20, %ecx
callq 0x13e200
movq 0x28(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x20, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13dbc1
movl $0xaaaa000f, %eax       # imm = 0xAAAA000F
cmpq %rax, 0x10(%rsp)
je 0x13dbbf
movq 0x30(%rsp), %rdi
leaq 0x3f1a65(%rip), %rsi    # 0x52f5fa
leaq 0x40d226(%rip), %rdx    # 0x54adc2
leaq 0x40d153(%rip), %rcx    # 0x54acf6
leaq 0x40cc5c(%rip), %r8     # 0x54a806
movl $0x44b, %r9d            # imm = 0x44B
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13dbc1
jmp 0x13dbc3
movq 0x28(%rsp), %rdi
movl $0x20, %esi
movl $0x20, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13dc27
movl $0xf000cccc, %eax       # imm = 0xF000CCCC
cmpq %rax, 0x10(%rsp)
je 0x13dc25
movq 0x30(%rsp), %rdi
leaq 0x3f19ff(%rip), %rsi    # 0x52f5fa
leaq 0x40d1e7(%rip), %rdx    # 0x54ade9
leaq 0x40d0ed(%rip), %rcx    # 0x54acf6
leaq 0x40cbf6(%rip), %r8     # 0x54a806
movl $0x44d, %r9d            # imm = 0x44D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13dc27
jmp 0x13dc29
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movl $0x10, %edx
movl $0x20, %ecx
movl $0xccccaaaa, %r8d       # imm = 0xCCCCAAAA
callq 0x13e200
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movl $0x80, %edx
movl $0x8, %ecx
movl $0xff, %r8d
callq 0x13e200
movq 0x28(%rsp), %rdi
movl $0x80, %esi
movl $0x20, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13dccb
movl $0xffaacccc, %eax       # imm = 0xFFAACCCC
cmpq %rax, 0x10(%rsp)
je 0x13dcc9
movq 0x30(%rsp), %rdi
leaq 0x3f195b(%rip), %rsi    # 0x52f5fa
leaq 0x40d16a(%rip), %rdx    # 0x54ae10
leaq 0x40d049(%rip), %rcx    # 0x54acf6
leaq 0x40cb52(%rip), %r8     # 0x54a806
movl $0x454, %r9d            # imm = 0x454
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13dccb
jmp 0x13dccd
movq 0x8(%rsp), %rax
shlq $0x10, %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x8(%rsp), %r8
movl $0x20, %edx
movl $0x40, %ecx
callq 0x13e200
movq 0x28(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0x40, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13dd61
movabsq $-0x55553333fffffff1, %rax # imm = 0xAAAACCCC0000000F
cmpq %rax, 0x10(%rsp)
je 0x13dd5f
movq 0x30(%rsp), %rdi
leaq 0x3f18c5(%rip), %rsi    # 0x52f5fa
leaq 0x40d0fb(%rip), %rdx    # 0x54ae37
leaq 0x40cfb3(%rip), %rcx    # 0x54acf6
leaq 0x40cabc(%rip), %r8     # 0x54a806
movl $0x45b, %r9d            # imm = 0x45B
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13dd61
jmp 0x13dd63
movq 0x28(%rsp), %rdi
movl $0x40, %esi
movl $0x40, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13ddcc
movabsq $-0xfffffff55553334, %rax # imm = 0xF0000000AAAACCCC
cmpq %rax, 0x10(%rsp)
je 0x13ddca
movq 0x30(%rsp), %rdi
leaq 0x3f185a(%rip), %rsi    # 0x52f5fa
leaq 0x40d0c0(%rip), %rdx    # 0x54ae67
leaq 0x40cf48(%rip), %rcx    # 0x54acf6
leaq 0x40ca51(%rip), %r8     # 0x54a806
movl $0x45d, %r9d            # imm = 0x45D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13ddcc
jmp 0x13ddce
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movl $0x20, %edx
movl $0x40, %ecx
movabsq $-0x5555333355553334, %r8 # imm = 0xAAAACCCCAAAACCCC
callq 0x13e200
movq 0x28(%rsp), %rdi
movl $0x78, %esi
movl $0x40, %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x1c(%rsp)
jne 0x13de5a
movabsq $-0x3300553333555534, %rax # imm = 0xCCFFAACCCCAAAACC
cmpq %rax, 0x10(%rsp)
je 0x13de58
movq 0x30(%rsp), %rdi
leaq 0x3f17cc(%rip), %rsi    # 0x52f5fa
leaq 0x40d062(%rip), %rdx    # 0x54ae97
leaq 0x40ceba(%rip), %rcx    # 0x54acf6
leaq 0x40c9c3(%rip), %r8     # 0x54a806
movl $0x461, %r9d            # imm = 0x461
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0x13de5a
jmp 0x13de5c
movl 0x1c(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)