// File: /workspace/github_c_makefile_star2_O0/FastFilter[P]BlockBloomSimulator/src/blockmodel.c
// Function: compute
void compute(size_t HowManyKeys) {
  bool verbose = false;
  printf("Number of keys %zu \n", HowManyKeys);
  printf("Bloom \n");
  assessBloomCase(HowManyKeys, verbose);
  printf("\n");
  printf("Two full cache lines (1024-bits) \n");
  assessBlockSize(HowManyKeys, 1024, verbose);
  printf("lanes:\n");
  assessBlockSizeLanes(HowManyKeys, 1024, verbose);
  printf("\n");
  printf("Full cache line (512-bits) \n");
  assessBlockSize(HowManyKeys, 512, verbose);
  printf("lanes:\n");
  assessBlockSizeLanes(HowManyKeys, 512, verbose);
  printf("\n");
  printf("half cache line  (256-bits) \n");
  assessBlockSize(HowManyKeys, 256, verbose);
  printf("soft:\n");
  assessBlockSizeLanes(HowManyKeys, 256, verbose);

  printf("\n");
  printf("quarter cache line  (128-bits) \n");
  assessBlockSize(HowManyKeys, 128, verbose);
  printf("lanes:\n");
  assessBlockSizeLanes(HowManyKeys, 128, verbose);
  printf("\n");
  printf("single word (64-bits) \n");
  assessBlockSize(HowManyKeys, 64, verbose);
  printf("lanes:\n");
  assessBlockSizeLanes(HowManyKeys, 64, verbose);
  printf("\n");
  printf("single word (32-bits) \n");
  assessBlockSize(HowManyKeys, 32, verbose);
  printf("lanes:\n");
  assessBlockSizeLanes(HowManyKeys, 32, verbose);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movb $0x0, 0xf(%rsp)
movq 0x10(%rsp), %rsi
leaq 0x32c3(%rip), %rdi      # 0x632d
movb $0x0, %al
callq 0x1060
leaq 0x32ca(%rip), %rdi      # 0x6342
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x1b50
leaq 0x348a(%rip), %rdi      # 0x6523
movb $0x0, %al
callq 0x1060
leaq 0x32a3(%rip), %rdi      # 0x634a
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x400, %esi            # imm = 0x400
andb $0x1, %al
movzbl %al, %edx
callq 0x18a0
leaq 0x32a0(%rip), %rdi      # 0x636d
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x400, %esi            # imm = 0x400
andb $0x1, %al
movzbl %al, %edx
callq 0x2450
leaq 0x3430(%rip), %rdi      # 0x6523
movb $0x0, %al
callq 0x1060
leaq 0x3274(%rip), %rdi      # 0x6375
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x200, %esi            # imm = 0x200
andb $0x1, %al
movzbl %al, %edx
callq 0x18a0
leaq 0x3246(%rip), %rdi      # 0x636d
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x200, %esi            # imm = 0x200
andb $0x1, %al
movzbl %al, %edx
callq 0x2450
leaq 0x33d6(%rip), %rdi      # 0x6523
movb $0x0, %al
callq 0x1060
leaq 0x3237(%rip), %rdi      # 0x6392
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x100, %esi            # imm = 0x100
andb $0x1, %al
movzbl %al, %edx
callq 0x18a0
leaq 0x322f(%rip), %rdi      # 0x63b0
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x100, %esi            # imm = 0x100
andb $0x1, %al
movzbl %al, %edx
callq 0x2450
leaq 0x337c(%rip), %rdi      # 0x6523
movb $0x0, %al
callq 0x1060
leaq 0x3202(%rip), %rdi      # 0x63b7
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x80, %esi
andb $0x1, %al
movzbl %al, %edx
callq 0x18a0
leaq 0x3192(%rip), %rdi      # 0x636d
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x80, %esi
andb $0x1, %al
movzbl %al, %edx
callq 0x2450
leaq 0x3322(%rip), %rdi      # 0x6523
movb $0x0, %al
callq 0x1060
leaq 0x31c9(%rip), %rdi      # 0x63d8
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x40, %esi
andb $0x1, %al
movzbl %al, %edx
callq 0x18a0
leaq 0x3138(%rip), %rdi      # 0x636d
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x40, %esi
andb $0x1, %al
movzbl %al, %edx
callq 0x2450
leaq 0x32c8(%rip), %rdi      # 0x6523
movb $0x0, %al
callq 0x1060
leaq 0x3187(%rip), %rdi      # 0x63f0
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x20, %esi
andb $0x1, %al
movzbl %al, %edx
callq 0x18a0
leaq 0x30de(%rip), %rdi      # 0x636d
movb $0x0, %al
callq 0x1060
movq 0x10(%rsp), %rdi
movb 0xf(%rsp), %al
movl $0x20, %esi
andb $0x1, %al
movzbl %al, %edx
callq 0x2450
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)