// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/intset_8.c
// Function: gt_intset_8_unit_test
int gt_intset_8_unit_test(GtError *err)
{
  int had_err = 0;
  GtIntset *is;
  GtUword num_of_elems = gt_rand_max(((GtUword) 1) << 10) + 1,
          *arr = gt_malloc(sizeof (*arr) * num_of_elems),
          stepsize = GT_DIV2(num_of_elems <<4 / num_of_elems),
          idx;
  size_t is_size;

  gt_error_check(err);

  arr[0] = gt_rand_max(stepsize) + 1;
  for (idx = (GtUword) 1; idx < num_of_elems; ++idx) {
    arr[idx] = arr[idx - 1] + gt_rand_max(stepsize) + 1;
  }

  is_size = gt_intset_8_size_of_rep(arr[num_of_elems - 1], num_of_elems);

  if (!had_err) {
    if (is_size < (size_t) UINT_MAX) {
      is = gt_intset_8_new(arr[num_of_elems - 1], num_of_elems);
      for (idx = 0; idx < num_of_elems; idx++) {
        gt_intset_8_add(is, arr[idx]);
        gt_ensure(idx + 1 == gt_intset_8_size(is));
        if (idx < num_of_elems - 1)
          gt_ensure(gt_intset_8_get_idx_smallest_geq(is,
                                                     arr[idx] + 1) ==
                    num_of_elems);
      }

      gt_ensure(gt_intset_8_elems_is_valid(is));
      gt_ensure(gt_intset_8_secstart_is_valid(is));

      GT_INTSET_TEST_8_BINSEARCH(0);
      for (idx = 1; !had_err && idx < num_of_elems; idx++) {
        GtUword to_find = (arr[idx - 1] == (arr[idx] - 1)) ? idx - 1 : idx;
        gt_ensure(
          gt_intset_8_get_idx_smallest_geq_test(is, arr[idx] - 1) ==
          to_find);
        gt_ensure(
          gt_intset_8_get_idx_smallest_geq(is, arr[idx] - 1) ==
          to_find);
        GT_INTSET_TEST_8_BINSEARCH(idx);
      }
      if (!had_err)
        had_err = gt_intset_unit_test_notinset(is, 0, arr[0] - 1, err);
      if (!had_err)
        had_err = gt_intset_unit_test_check_seqnum(is, 0, arr[0] - 1, 0, err);
      for (idx = (GtUword) 1; !had_err && idx < num_of_elems; idx++) {
        had_err = gt_intset_unit_test_notinset(is, arr[idx - 1] + 1,
                                               arr[idx] - 1, err);
        if (!had_err)
          had_err = gt_intset_unit_test_check_seqnum(is, arr[idx - 1] + 1,
                                                     arr[idx] - 1, idx, err);
      }
      gt_intset_delete(is);
    }
  }
  gt_free(arr);
  return had_err;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movl $0x0, 0x6c(%rsp)
movl $0x400, %edi            # imm = 0x400
callq 0xec350
addq $0x1, %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rdi
shlq $0x3, %rdi
leaq 0x11c131(%rip), %rsi    # 0x5b3fc5
movl $0x1e7, %edx            # imm = 0x1E7
callq 0xe80f0
movq %rax, 0x50(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x28(%rsp)
movl $0x4, %eax
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x58(%rsp)
movq %rax, %rcx
movq 0x28(%rsp), %rax
shlq %cl, %rax
shrq %rax
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x497f1e
movq 0x70(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x497ee6
jmp 0x497f1e
movq 0x1a40b3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x7e11c(%rip), %rsi     # 0x516013
leaq 0x7e2c1(%rip), %rdx     # 0x5161bf
leaq 0x11c1a8(%rip), %rcx    # 0x5b40ad
leaq 0x11c0b9(%rip), %r8     # 0x5b3fc5
movl $0x1ec, %r9d            # imm = 0x1EC
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x497f20
movq 0x48(%rsp), %rdi
callq 0xec350
movq %rax, %rcx
addq $0x1, %rcx
movq 0x50(%rsp), %rax
movq %rcx, (%rax)
movq $0x1, 0x40(%rsp)
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x497f99
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rdi
callq 0xec350
movq 0x20(%rsp), %rdx
addq %rax, %rdx
addq $0x1, %rdx
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x497f42
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x58(%rsp), %rsi
callq 0x497da0
movq %rax, 0x38(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x49875f
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x38(%rsp)
jae 0x49875d
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x58(%rsp), %rsi
callq 0x496bc0
movq %rax, 0x60(%rsp)
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x49811d
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x497440
cmpl $0x0, 0x6c(%rsp)
jne 0x49808b
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rdi
callq 0x497940
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
je 0x498089
movq 0x70(%rsp), %rdi
leaq 0x9759b(%rip), %rsi     # 0x52f5fa
leaq 0x11c05d(%rip), %rdx    # 0x5b40c3
leaq 0x11c040(%rip), %rcx    # 0x5b40ad
leaq 0x11bf51(%rip), %r8     # 0x5b3fc5
movl $0x1fa, %r9d            # imm = 0x1FA
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49808b
jmp 0x49808d
movq 0x40(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x498108
jmp 0x4980a2
cmpl $0x0, 0x6c(%rsp)
jne 0x498104
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x497b00
cmpq 0x58(%rsp), %rax
je 0x498102
movq 0x70(%rsp), %rdi
leaq 0x97522(%rip), %rsi     # 0x52f5fa
leaq 0x11c004(%rip), %rdx    # 0x5b40e3
leaq 0x11bfc7(%rip), %rcx    # 0x5b40ad
leaq 0x11bed8(%rip), %r8     # 0x5b3fc5
movl $0x1fe, %r9d            # imm = 0x1FE
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x498104
jmp 0x498106
jmp 0x498108
jmp 0x49810a
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x497fff
jmp 0x49811f
cmpl $0x0, 0x6c(%rsp)
jne 0x49816c
movq 0x60(%rsp), %rdi
callq 0x498780
testb $0x1, %al
jne 0x49816a
movq 0x70(%rsp), %rdi
leaq 0x974ba(%rip), %rsi     # 0x52f5fa
leaq 0x11bfdf(%rip), %rdx    # 0x5b4126
leaq 0x11bf5f(%rip), %rcx    # 0x5b40ad
leaq 0x11be70(%rip), %r8     # 0x5b3fc5
movl $0x201, %r9d            # imm = 0x201
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49816c
jmp 0x49816e
jmp 0x498170
cmpl $0x0, 0x6c(%rsp)
jne 0x4981bd
movq 0x60(%rsp), %rdi
callq 0x498870
testb $0x1, %al
jne 0x4981bb
movq 0x70(%rsp), %rdi
leaq 0x97469(%rip), %rsi     # 0x52f5fa
leaq 0x11bfad(%rip), %rdx    # 0x5b4145
leaq 0x11bf0e(%rip), %rcx    # 0x5b40ad
leaq 0x11be1f(%rip), %r8     # 0x5b3fc5
movl $0x202, %r9d            # imm = 0x202
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4981bd
jmp 0x4981bf
jmp 0x4981c1
cmpl $0x0, 0x6c(%rsp)
jne 0x498218
movq 0x60(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4988f0
movq 0x50(%rsp), %rcx
cmpq (%rcx), %rax
je 0x498216
movq 0x70(%rsp), %rdi
leaq 0x9740e(%rip), %rsi     # 0x52f5fa
leaq 0x11bf74(%rip), %rdx    # 0x5b4167
leaq 0x11beb3(%rip), %rcx    # 0x5b40ad
leaq 0x11bdc4(%rip), %r8     # 0x5b3fc5
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x498218
jmp 0x49821a
jmp 0x49821c
cmpl $0x0, 0x6c(%rsp)
jne 0x498273
movq 0x60(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x497700
movq 0x50(%rsp), %rcx
cmpq (%rcx), %rax
je 0x498271
movq 0x70(%rsp), %rdi
leaq 0x973b3(%rip), %rsi     # 0x52f5fa
leaq 0x11bf3f(%rip), %rdx    # 0x5b418d
leaq 0x11be58(%rip), %rcx    # 0x5b40ad
leaq 0x11bd69(%rip), %r8     # 0x5b3fc5
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x498273
jmp 0x498275
jmp 0x498277
cmpl $0x0, 0x6c(%rsp)
jne 0x4982d2
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
addq $0x1, %rsi
callq 0x4989b0
cmpq $0x1, %rax
je 0x4982d0
movq 0x70(%rsp), %rdi
leaq 0x97354(%rip), %rsi     # 0x52f5fa
leaq 0x11bf01(%rip), %rdx    # 0x5b41ae
leaq 0x11bdf9(%rip), %rcx    # 0x5b40ad
leaq 0x11bd0a(%rip), %r8     # 0x5b3fc5
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4982d2
jmp 0x4982d4
jmp 0x4982d6
cmpl $0x0, 0x6c(%rsp)
jne 0x498331
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
addq $0x1, %rsi
callq 0x497b00
cmpq $0x1, %rax
je 0x49832f
movq 0x70(%rsp), %rdi
leaq 0x972f5(%rip), %rsi     # 0x52f5fa
leaq 0x11bee1(%rip), %rdx    # 0x5b41ed
leaq 0x11bd9a(%rip), %rcx    # 0x5b40ad
leaq 0x11bcab(%rip), %r8     # 0x5b3fc5
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x498331
jmp 0x498333
movq $0x1, 0x40(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x6c(%rsp)
movb %al, 0x17(%rsp)
jne 0x49835a
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
setb %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x498367
jmp 0x498631
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
movq (%rcx,%rdx,8), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x4983a0
movq 0x40(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x4983aa
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x498416
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
subq $0x1, %rsi
callq 0x4989b0
cmpq 0x30(%rsp), %rax
je 0x498414
movq 0x70(%rsp), %rdi
leaq 0x97210(%rip), %rsi     # 0x52f5fa
leaq 0x11be36(%rip), %rdx    # 0x5b4227
leaq 0x11bcb5(%rip), %rcx    # 0x5b40ad
leaq 0x11bbc6(%rip), %r8     # 0x5b3fc5
movl $0x209, %r9d            # imm = 0x209
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x498416
jmp 0x498418
jmp 0x49841a
cmpl $0x0, 0x6c(%rsp)
jne 0x49847c
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
subq $0x1, %rsi
callq 0x497b00
cmpq 0x30(%rsp), %rax
je 0x49847a
movq 0x70(%rsp), %rdi
leaq 0x971aa(%rip), %rsi     # 0x52f5fa
leaq 0x11be13(%rip), %rdx    # 0x5b426a
leaq 0x11bc4f(%rip), %rcx    # 0x5b40ad
leaq 0x11bb60(%rip), %r8     # 0x5b3fc5
movl $0x20c, %r9d            # imm = 0x20C
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49847c
jmp 0x49847e
jmp 0x498480
cmpl $0x0, 0x6c(%rsp)
jne 0x4984de
movq 0x60(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x4988f0
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x4984dc
movq 0x70(%rsp), %rdi
leaq 0x97148(%rip), %rsi     # 0x52f5fa
leaq 0x11bdef(%rip), %rdx    # 0x5b42a8
leaq 0x11bbed(%rip), %rcx    # 0x5b40ad
leaq 0x11bafe(%rip), %r8     # 0x5b3fc5
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4984de
jmp 0x4984e0
jmp 0x4984e2
cmpl $0x0, 0x6c(%rsp)
jne 0x498540
movq 0x60(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x497700
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x49853e
movq 0x70(%rsp), %rdi
leaq 0x970e6(%rip), %rsi     # 0x52f5fa
leaq 0x11bdb7(%rip), %rdx    # 0x5b42d2
leaq 0x11bb8b(%rip), %rcx    # 0x5b40ad
leaq 0x11ba9c(%rip), %r8     # 0x5b3fc5
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x498540
jmp 0x498542
jmp 0x498544
cmpl $0x0, 0x6c(%rsp)
jne 0x4985ad
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x4989b0
movq 0x40(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0x4985ab
movq 0x70(%rsp), %rdi
leaq 0x97079(%rip), %rsi     # 0x52f5fa
leaq 0x11bd6f(%rip), %rdx    # 0x5b42f7
leaq 0x11bb1e(%rip), %rcx    # 0x5b40ad
leaq 0x11ba2f(%rip), %r8     # 0x5b3fc5
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4985ad
jmp 0x4985af
jmp 0x4985b1
cmpl $0x0, 0x6c(%rsp)
jne 0x49861a
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x497b00
movq 0x40(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0x498618
movq 0x70(%rsp), %rdi
leaq 0x9700c(%rip), %rsi     # 0x52f5fa
leaq 0x11bd45(%rip), %rdx    # 0x5b433a
leaq 0x11bab1(%rip), %rcx    # 0x5b40ad
leaq 0x11b9c2(%rip), %r8     # 0x5b3fc5
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49861a
jmp 0x49861c
jmp 0x49861e
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x49833c
cmpl $0x0, 0x6c(%rsp)
jne 0x49865b
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
callq 0x197230
movl %eax, 0x6c(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x498688
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %r8
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rsi
callq 0x1972e0
movl %eax, 0x6c(%rsp)
movq $0x1, 0x40(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x6c(%rsp)
movb %al, 0x7(%rsp)
jne 0x4986af
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
setb %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x4986bc
jmp 0x498753
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %rcx
callq 0x197230
movl %eax, 0x6c(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x49873e
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
subq $0x1, %rdx
movq 0x40(%rsp), %rcx
movq 0x70(%rsp), %r8
callq 0x1972e0
movl %eax, 0x6c(%rsp)
jmp 0x498740
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x498691
movq 0x60(%rsp), %rdi
callq 0x197140
jmp 0x49875f
movq 0x50(%rsp), %rdi
leaq 0x11b85a(%rip), %rsi    # 0x5b3fc5
movl $0x21d, %edx            # imm = 0x21D
callq 0xe88c0
movl 0x6c(%rsp), %eax
addq $0x78, %rsp
retq
nop