	.file	"918820.c"
	.intel_syntax noprefix
	.text
	.globl	popcount_1_data
	.type	popcount_1_data, @function
popcount_1_data:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L2
.L3:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	shr	QWORD PTR -24[rbp]
	add	DWORD PTR -4[rbp], 1
.L2:
	cmp	DWORD PTR -4[rbp], 63
	jle	.L3
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	popcount_1_data, .-popcount_1_data
	.globl	popcount_1_control
	.type	popcount_1_control, @function
popcount_1_control:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L6
.L8:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 1
	test	rax, rax
	je	.L7
	add	DWORD PTR -8[rbp], 1
.L7:
	shr	QWORD PTR -24[rbp]
	add	DWORD PTR -4[rbp], 1
.L6:
	cmp	DWORD PTR -4[rbp], 63
	jle	.L8
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	popcount_1_control, .-popcount_1_control
	.section	.rodata
	.align 32
	.type	pop4, @object
	.size	pop4, 64
pop4:
	.long	0
	.long	1
	.long	1
	.long	2
	.long	1
	.long	2
	.long	2
	.long	3
	.long	1
	.long	2
	.long	2
	.long	3
	.long	2
	.long	3
	.long	3
	.long	4
	.text
	.globl	popcount_4_data
	.type	popcount_4_data, @function
popcount_4_data:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L11
.L12:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 15
	lea	rdx, 0[0+rax*4]
	lea	rax, pop4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	DWORD PTR -8[rbp], eax
	shr	QWORD PTR -24[rbp], 4
	add	DWORD PTR -4[rbp], 1
.L11:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L12
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	popcount_4_data, .-popcount_4_data
	.globl	popcount_4_control
	.type	popcount_4_control, @function
popcount_4_control:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L15
.L34:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 15
	cmp	rax, 15
	ja	.L16
	lea	rdx, 0[0+rax*4]
	lea	rax, .L18[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L18[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L18:
	.long	.L36-.L18
	.long	.L32-.L18
	.long	.L31-.L18
	.long	.L30-.L18
	.long	.L29-.L18
	.long	.L28-.L18
	.long	.L27-.L18
	.long	.L26-.L18
	.long	.L25-.L18
	.long	.L24-.L18
	.long	.L23-.L18
	.long	.L22-.L18
	.long	.L21-.L18
	.long	.L20-.L18
	.long	.L19-.L18
	.long	.L17-.L18
	.text
.L32:
	add	DWORD PTR -8[rbp], 1
	jmp	.L16
.L31:
	add	DWORD PTR -8[rbp], 1
	jmp	.L16
.L30:
	add	DWORD PTR -8[rbp], 2
	jmp	.L16
.L29:
	add	DWORD PTR -8[rbp], 1
	jmp	.L16
.L28:
	add	DWORD PTR -8[rbp], 2
	jmp	.L16
.L27:
	add	DWORD PTR -8[rbp], 2
	jmp	.L16
.L26:
	add	DWORD PTR -8[rbp], 3
	jmp	.L16
.L25:
	add	DWORD PTR -8[rbp], 1
	jmp	.L16
.L24:
	add	DWORD PTR -8[rbp], 2
	jmp	.L16
.L23:
	add	DWORD PTR -8[rbp], 2
	jmp	.L16
.L22:
	add	DWORD PTR -8[rbp], 3
	jmp	.L16
.L21:
	add	DWORD PTR -8[rbp], 2
	jmp	.L16
.L20:
	add	DWORD PTR -8[rbp], 3
	jmp	.L16
.L19:
	add	DWORD PTR -8[rbp], 3
	jmp	.L16
.L17:
	add	DWORD PTR -8[rbp], 4
	jmp	.L16
.L36:
	nop
.L16:
	shr	QWORD PTR -24[rbp], 4
	add	DWORD PTR -4[rbp], 1
.L15:
	cmp	DWORD PTR -4[rbp], 15
	jle	.L34
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	popcount_4_control, .-popcount_4_control
	.local	pop8
	.comm	pop8,1024,32
	.globl	popcount_8_data
	.type	popcount_8_data, @function
popcount_8_data:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L38
.L39:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, al
	lea	rdx, 0[0+rax*4]
	lea	rax, pop8[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	DWORD PTR -8[rbp], eax
	shr	QWORD PTR -24[rbp], 8
	add	DWORD PTR -4[rbp], 1
.L38:
	cmp	DWORD PTR -4[rbp], 7
	jle	.L39
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	popcount_8_data, .-popcount_8_data
	.local	pop16
	.comm	pop16,262144,32
	.globl	__popcountdi2
	.type	init, @function
init:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], 0
	jmp	.L42
.L44:
	cmp	DWORD PTR -4[rbp], 255
	jg	.L43
	mov	eax, DWORD PTR -4[rbp]
	mov	eax, eax
	mov	rdi, rax
	call	__popcountdi2@PLT
	mov	ecx, eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, pop8[rip]
	mov	DWORD PTR [rdx+rax], ecx
.L43:
	mov	eax, DWORD PTR -4[rbp]
	mov	eax, eax
	mov	rdi, rax
	call	__popcountdi2@PLT
	mov	ecx, eax
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, pop16[rip]
	mov	DWORD PTR [rdx+rax], ecx
	add	DWORD PTR -4[rbp], 1
.L42:
	cmp	DWORD PTR -4[rbp], 65535
	jle	.L44
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	init, .-init
	.globl	popcount_16_data
	.type	popcount_16_data, @function
popcount_16_data:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR -4[rbp], 0
	jmp	.L46
.L47:
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, ax
	lea	rdx, 0[0+rax*4]
	lea	rax, pop16[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	DWORD PTR -8[rbp], eax
	shr	QWORD PTR -24[rbp], 16
	add	DWORD PTR -4[rbp], 1
.L46:
	cmp	DWORD PTR -4[rbp], 3
	jle	.L47
	mov	eax, DWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	popcount_16_data, .-popcount_16_data
	.globl	popcount_kernighan
	.type	popcount_kernighan, @function
popcount_kernighan:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L50
.L51:
	mov	rax, QWORD PTR -24[rbp]
	and	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	shr	QWORD PTR -24[rbp]
.L50:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L51
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	popcount_kernighan, .-popcount_kernighan
	.section	.rodata
	.align 8
	.type	m1, @object
	.size	m1, 8
m1:
	.quad	6148914691236517205
	.align 8
	.type	m2, @object
	.size	m2, 8
m2:
	.quad	3689348814741910323
	.align 8
	.type	m4, @object
	.size	m4, 8
m4:
	.quad	1085102592571150095
	.align 8
	.type	m8, @object
	.size	m8, 8
m8:
	.quad	71777214294589695
	.align 8
	.type	m16, @object
	.size	m16, 8
m16:
	.quad	281470681808895
	.align 8
	.type	m32, @object
	.size	m32, 8
m32:
	.quad	4294967295
	.align 8
	.type	h01, @object
	.size	h01, 8
h01:
	.quad	72340172838076673
	.text
	.globl	popcount64a
	.type	popcount64a, @function
popcount64a:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	movabs	rax, 6148914691236517205
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax
	mov	rcx, rax
	movabs	rax, 6148914691236517205
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	movabs	rax, 3689348814741910323
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 2
	mov	rcx, rax
	movabs	rax, 3689348814741910323
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	movabs	rax, 1085102592571150095
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 4
	mov	rcx, rax
	movabs	rax, 1085102592571150095
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	movabs	rax, 71777214294589695
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 8
	mov	rcx, rax
	movabs	rax, 71777214294589695
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	movabs	rax, 281470681808895
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 16
	mov	rcx, rax
	movabs	rax, 281470681808895
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	eax, 4294967295
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 32
	mov	rcx, rax
	mov	eax, 4294967295
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	popcount64a, .-popcount64a
	.globl	popcount64b
	.type	popcount64b, @function
popcount64b:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	shr	rax
	mov	rdx, rax
	movabs	rax, 6148914691236517205
	and	rax, rdx
	sub	QWORD PTR -8[rbp], rax
	movabs	rax, 3689348814741910323
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 2
	mov	rcx, rax
	movabs	rax, 3689348814741910323
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	movabs	rax, 1085102592571150095
	and	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 8
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 16
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 32
	add	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 127
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	popcount64b, .-popcount64b
	.globl	popcount64c
	.type	popcount64c, @function
popcount64c:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	shr	rax
	mov	rdx, rax
	movabs	rax, 6148914691236517205
	and	rax, rdx
	sub	QWORD PTR -8[rbp], rax
	movabs	rax, 3689348814741910323
	and	rax, QWORD PTR -8[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 2
	mov	rcx, rax
	movabs	rax, 3689348814741910323
	and	rax, rcx
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	add	rdx, rax
	movabs	rax, 1085102592571150095
	and	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	movabs	rax, 72340172838076673
	imul	rax, QWORD PTR -8[rbp]
	shr	rax, 56
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	popcount64c, .-popcount64c
	.globl	popcount64_fast
	.type	popcount64_fast, @function
popcount64_fast:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rdi, QWORD PTR -8[rbp]
	call	__popcountdi2@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	popcount64_fast, .-popcount64_fast
	.section	.data.rel.local,"aw"
	.align 32
	.type	popcounts, @object
	.size	popcounts, 96
popcounts:
	.quad	popcount_1_data
	.quad	popcount_1_control
	.quad	popcount_4_data
	.quad	popcount_4_control
	.quad	popcount_8_data
	.quad	popcount_16_data
	.quad	popcount_kernighan
	.quad	popcount64a
	.quad	popcount64b
	.quad	popcount64c
	.quad	popcount64_fast
	.quad	0
	.section	.rodata
.LC0:
	.string	"/dev/urandom"
	.text
	.type	rand64, @function
rand64:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	esi, 0
	lea	rdi, .LC0[rip]
	mov	eax, 0
	call	open@PLT
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 0
	jns	.L62
	call	abort@PLT
.L62:
	lea	rcx, -24[rbp]
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, 8
	mov	rsi, rcx
	mov	edi, eax
	call	read@PLT
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 8
	je	.L63
	call	abort@PLT
.L63:
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	call	close@PLT
	test	eax, eax
	je	.L64
	call	abort@PLT
.L64:
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	sub	rdx, QWORD PTR fs:40
	je	.L66
	call	__stack_chk_fail@PLT
.L66:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	rand64, .-rand64
	.type	timespecDiff, @function
timespecDiff:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	movsd	xmm0, QWORD PTR .LC1[rip]
	mulsd	xmm1, xmm0
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 8[rax]
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, rax
	addsd	xmm0, xmm1
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	pxor	xmm2, xmm2
	cvtsi2sd	xmm2, rax
	movsd	xmm1, QWORD PTR .LC1[rip]
	mulsd	xmm2, xmm1
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR 8[rax]
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, rax
	addsd	xmm1, xmm2
	subsd	xmm0, xmm1
	movq	rax, xmm0
	movq	xmm0, rax
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	timespecDiff, .-timespecDiff
	.section	.rodata
.LC2:
	.string	"%lf ns / op\n"
.LC3:
	.string	"the_stack_data/918820.c"
.LC4:
	.string	"sum == last_sum"
	.text
	.type	test_popcounts, @function
test_popcounts:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 120
	.cfi_offset 3, -24
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, rsp
	mov	rbx, rax
	mov	DWORD PTR -100[rbp], 10000
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sub	rax, 1
	mov	QWORD PTR -96[rbp], rax
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	mov	r8, rax
	mov	r9d, 0
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	mov	rsi, rax
	mov	edi, 0
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	eax, 16
	sub	rax, 1
	add	rax, rdx
	mov	esi, 16
	mov	edx, 0
	div	rsi
	imul	rax, rax, 16
	mov	rcx, rax
	and	rcx, -4096
	mov	rdx, rsp
	sub	rdx, rcx
.L70:
	cmp	rsp, rdx
	je	.L71
	sub	rsp, 4096
	or	QWORD PTR 4088[rsp], 0
	jmp	.L70
.L71:
	mov	rdx, rax
	and	edx, 4095
	sub	rsp, rdx
	mov	rdx, rax
	and	edx, 4095
	test	rdx, rdx
	je	.L72
	and	eax, 4095
	sub	rax, 8
	add	rax, rsp
	or	QWORD PTR [rax], 0
.L72:
	mov	rax, rsp
	add	rax, 7
	shr	rax, 3
	sal	rax, 3
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR 8[rax], -1
	mov	DWORD PTR -104[rbp], 2
	jmp	.L73
.L74:
	call	rand64
	mov	rdx, QWORD PTR -88[rbp]
	mov	ecx, DWORD PTR -104[rbp]
	movsx	rcx, ecx
	mov	QWORD PTR [rdx+rcx*8], rax
	add	DWORD PTR -104[rbp], 1
.L73:
	mov	eax, DWORD PTR -104[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jl	.L74
	mov	DWORD PTR -112[rbp], 0
	jmp	.L75
.L79:
	mov	DWORD PTR -116[rbp], 0
	lea	rax, -64[rbp]
	mov	rsi, rax
	mov	edi, 1
	call	clock_gettime@PLT
	mov	DWORD PTR -120[rbp], 0
	jmp	.L76
.L77:
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, popcounts[rip]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -88[rbp]
	mov	ecx, DWORD PTR -120[rbp]
	movsx	rcx, ecx
	mov	rax, QWORD PTR [rax+rcx*8]
	mov	rdi, rax
	call	rdx
	add	DWORD PTR -116[rbp], eax
	add	DWORD PTR -120[rbp], 1
.L76:
	mov	eax, DWORD PTR -120[rbp]
	cmp	eax, DWORD PTR -100[rbp]
	jl	.L77
	lea	rax, -48[rbp]
	mov	rsi, rax
	mov	edi, 1
	call	clock_gettime@PLT
	lea	rdx, -64[rbp]
	lea	rax, -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	timespecDiff
	movq	rax, xmm0
	mov	QWORD PTR -80[rbp], rax
	pxor	xmm1, xmm1
	cvtsi2sd	xmm1, DWORD PTR -100[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	divsd	xmm0, xmm1
	movsd	QWORD PTR -72[rbp], xmm0
	mov	rax, QWORD PTR -72[rbp]
	movq	xmm0, rax
	lea	rdi, .LC2[rip]
	mov	eax, 1
	call	printf@PLT
	cmp	DWORD PTR -112[rbp], 0
	je	.L78
	mov	eax, DWORD PTR -116[rbp]
	cmp	eax, DWORD PTR -108[rbp]
	je	.L78
	lea	rcx, __PRETTY_FUNCTION__.0[rip]
	mov	edx, 236
	lea	rsi, .LC3[rip]
	lea	rdi, .LC4[rip]
	call	__assert_fail@PLT
.L78:
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -108[rbp], eax
	add	DWORD PTR -112[rbp], 1
.L75:
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, popcounts[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	jne	.L79
	mov	rsp, rbx
	nop
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L80
	call	__stack_chk_fail@PLT
.L80:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	test_popcounts, .-test_popcounts
	.globl	main
	.type	main, @function
main:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	init
	call	test_popcounts
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	main, .-main
	.section	.rodata
	.align 8
	.type	__PRETTY_FUNCTION__.0, @object
	.size	__PRETTY_FUNCTION__.0, 15
__PRETTY_FUNCTION__.0:
	.string	"test_popcounts"
	.align 8
.LC1:
	.long	0
	.long	1104006501
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"918820.c"
	.text
	.align	2
	.global	popcount_1_data
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount_1_data, %function
popcount_1_data:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L2
.L3:
	ldr	r3, [fp, #-20]
	and	r2, r3, #1
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #1
	orr	r2, r2, r1, lsl #31
	lsr	r3, r1, #1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L2:
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	ble	.L3
	ldr	r3, [fp, #-12]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	popcount_1_data, .-popcount_1_data
	.align	2
	.global	popcount_1_control
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount_1_control, %function
popcount_1_control:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L6
.L8:
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	r0, #1
	mov	r1, #0
	and	r4, r2, r0
	and	r5, r3, r1
	orrs	r3, r4, r5
	beq	.L7
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L7:
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #1
	orr	r2, r2, r1, lsl #31
	lsr	r3, r1, #1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L6:
	ldr	r3, [fp, #-16]
	cmp	r3, #63
	ble	.L8
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
	.size	popcount_1_control, .-popcount_1_control
	.section	.rodata
	.align	2
	.type	pop4, %object
	.size	pop4, 64
pop4:
	.word	0
	.word	1
	.word	1
	.word	2
	.word	1
	.word	2
	.word	2
	.word	3
	.word	1
	.word	2
	.word	2
	.word	3
	.word	2
	.word	3
	.word	3
	.word	4
	.text
	.align	2
	.global	popcount_4_data
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount_4_data, %function
popcount_4_data:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L11
.L12:
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	r0, #15
	mov	r1, #0
	and	r4, r2, r0
	and	r5, r3, r1
	ldr	r3, .L14
	mov	r2, r4
	ldr	r3, [r3, r2, lsl #2]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #4
	orr	r2, r2, r1, lsl #28
	lsr	r3, r1, #4
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L11:
	ldr	r3, [fp, #-16]
	cmp	r3, #15
	ble	.L12
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
.L15:
	.align	2
.L14:
	.word	pop4
	.size	popcount_4_data, .-popcount_4_data
	.align	2
	.global	popcount_4_control
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount_4_control, %function
popcount_4_control:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, fp}
	add	fp, sp, #16
	sub	sp, sp, #20
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L17
.L36:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #15
	mov	r1, #0
	and	r4, r2, r0
	and	r5, r3, r1
	adds	r6, r4, #0
	adc	r7, r5, #0
	cmp	r7, #0
	cmpeq	r6, #15
	bhi	.L18
	cmp	r6, #15
	ldrls	pc, [pc, r6, asl #2]
	b	.L18
.L20:
	.word	.L18
	.word	.L34
	.word	.L33
	.word	.L32
	.word	.L31
	.word	.L30
	.word	.L29
	.word	.L28
	.word	.L27
	.word	.L26
	.word	.L25
	.word	.L24
	.word	.L23
	.word	.L22
	.word	.L21
	.word	.L19
.L34:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L18
.L33:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L18
.L32:
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
	b	.L18
.L31:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L18
.L30:
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
	b	.L18
.L29:
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
	b	.L18
.L28:
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	str	r3, [fp, #-28]
	b	.L18
.L27:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L18
.L26:
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
	b	.L18
.L25:
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
	b	.L18
.L24:
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	str	r3, [fp, #-28]
	b	.L18
.L23:
	ldr	r3, [fp, #-28]
	add	r3, r3, #2
	str	r3, [fp, #-28]
	b	.L18
.L22:
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	str	r3, [fp, #-28]
	b	.L18
.L21:
	ldr	r3, [fp, #-28]
	add	r3, r3, #3
	str	r3, [fp, #-28]
	b	.L18
.L19:
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-28]
	nop
.L18:
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #4
	orr	r2, r2, r1, lsl #28
	lsr	r3, r1, #4
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L17:
	ldr	r3, [fp, #-24]
	cmp	r3, #15
	ble	.L36
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, r7, fp}
	bx	lr
	.size	popcount_4_control, .-popcount_4_control
	.local	pop8
	.comm	pop8,1024,4
	.align	2
	.global	popcount_8_data
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount_8_data, %function
popcount_8_data:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L39
.L40:
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	r0, #255
	mov	r1, #0
	and	r4, r2, r0
	and	r5, r3, r1
	ldr	r3, .L42
	mov	r2, r4
	ldr	r3, [r3, r2, lsl #2]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L39:
	ldr	r3, [fp, #-16]
	cmp	r3, #7
	ble	.L40
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
.L43:
	.align	2
.L42:
	.word	pop8
	.size	popcount_8_data, .-popcount_8_data
	.local	pop16
	.comm	pop16,262144,4
	.global	__popcountsi2
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	init, %function
init:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L45
.L47:
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	bgt	.L46
	ldr	r3, [fp, #-8]
	mov	r0, r3
	bl	__popcountsi2
	mov	r3, r0
	mov	r1, r3
	ldr	r2, .L48
	ldr	r3, [fp, #-8]
	str	r1, [r2, r3, lsl #2]
.L46:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	bl	__popcountsi2
	mov	r3, r0
	mov	r1, r3
	ldr	r2, .L48+4
	ldr	r3, [fp, #-8]
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L45:
	ldr	r3, [fp, #-8]
	cmp	r3, #65536
	blt	.L47
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L49:
	.align	2
.L48:
	.word	pop8
	.word	pop16
	.size	init, .-init
	.align	2
	.global	popcount_16_data
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount_16_data, %function
popcount_16_data:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L51
.L52:
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	ldr	r0, .L54
	mov	r1, #0
	and	r4, r2, r0
	and	r5, r3, r1
	ldr	r3, .L54+4
	mov	r2, r4
	ldr	r3, [r3, r2, lsl #2]
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #16
	orr	r2, r2, r1, lsl #16
	lsr	r3, r1, #16
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L51:
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	ble	.L52
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
.L55:
	.align	2
.L54:
	.word	65535
	.word	pop16
	.size	popcount_16_data, .-popcount_16_data
	.align	2
	.global	popcount_kernighan
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount_kernighan, %function
popcount_kernighan:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L57
.L58:
	ldr	r3, [fp, #-20]
	and	r2, r3, #1
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	sub	r1, fp, #20
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #1
	orr	r2, r2, r1, lsl #31
	lsr	r3, r1, #1
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
.L57:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	bne	.L58
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	popcount_kernighan, .-popcount_kernighan
	.section	.rodata
	.align	3
	.type	m1, %object
	.size	m1, 8
m1:
	.word	1431655765
	.word	1431655765
	.align	3
	.type	m2, %object
	.size	m2, 8
m2:
	.word	858993459
	.word	858993459
	.align	3
	.type	m4, %object
	.size	m4, 8
m4:
	.word	252645135
	.word	252645135
	.align	3
	.type	m8, %object
	.size	m8, 8
m8:
	.word	16711935
	.word	16711935
	.align	3
	.type	m16, %object
	.size	m16, 8
m16:
	.word	65535
	.word	65535
	.align	3
	.type	m32, %object
	.size	m32, 8
m32:
	.word	-1
	.word	0
	.align	3
	.type	h01, %object
	.size	h01, 8
h01:
	.word	16843009
	.word	16843009
	.text
	.align	2
	.global	popcount64a
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount64a, %function
popcount64a:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #132
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	adr	r1, .L62
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	r6, r0, r2
	and	r7, r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #1
	orr	r0, r0, r3, lsl #31
	lsr	r1, r3, #1
	adr	r3, .L62
	ldmia	r3, {r2-r3}
	and	r4, r0, r2
	and	r5, r1, r3
	adds	r3, r6, r4
	str	r3, [fp, #-116]
	adc	r3, r7, r5
	str	r3, [fp, #-112]
	sub	r4, fp, #116
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	adr	r1, .L62+8
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-44]
	and	r3, r1, r3
	str	r3, [fp, #-40]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #2
	orr	r0, r0, r3, lsl #30
	lsr	r1, r3, #2
	adr	r3, .L62+8
	ldmia	r3, {r2-r3}
	and	r8, r0, r2
	and	r9, r1, r3
	sub	r4, fp, #44
	ldmia	r4, {r3-r4}
	mov	r2, r3
	adds	r2, r2, r8
	str	r2, [fp, #-124]
	mov	r3, r4
	adc	r3, r3, r9
	str	r3, [fp, #-120]
	sub	r4, fp, #124
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	adr	r1, .L62+16
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-52]
	and	r3, r1, r3
	str	r3, [fp, #-48]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #4
	orr	r0, r0, r3, lsl #28
	lsr	r1, r3, #4
	adr	r3, .L62+16
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-60]
	and	r3, r1, r3
	str	r3, [fp, #-56]
	sub	r2, fp, #52
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #60
	ldmia	r4, {r3-r4}
	mov	ip, r3
	adds	r0, r0, ip
	str	r0, [fp, #-132]
	mov	r3, r4
	adc	r3, r2, r3
	str	r3, [fp, #-128]
	sub	r4, fp, #132
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	adr	r1, .L62+24
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-68]
	and	r3, r1, r3
	str	r3, [fp, #-64]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #8
	orr	r0, r0, r3, lsl #24
	lsr	r1, r3, #8
	adr	r3, .L62+24
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-76]
	and	r3, r1, r3
	str	r3, [fp, #-72]
	sub	r2, fp, #68
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #76
	ldmia	r4, {r3-r4}
	mov	ip, r3
	adds	r0, r0, ip
	str	r0, [fp, #-140]
	mov	r3, r4
	adc	r3, r2, r3
	str	r3, [fp, #-136]
	sub	r4, fp, #140
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	adr	r1, .L62+32
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-84]
	and	r3, r1, r3
	str	r3, [fp, #-80]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #16
	orr	r0, r0, r3, lsl #16
	lsr	r1, r3, #16
	adr	r3, .L62+32
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-92]
	and	r3, r1, r3
	str	r3, [fp, #-88]
	sub	r2, fp, #84
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #92
	ldmia	r4, {r3-r4}
	mov	ip, r3
	adds	r0, r0, ip
	str	r0, [fp, #-148]
	mov	r3, r4
	adc	r3, r2, r3
	str	r3, [fp, #-144]
	sub	r4, fp, #148
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	mvn	r0, #0
	mov	r1, #0
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-100]
	and	r3, r1, r3
	str	r3, [fp, #-96]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	mvn	r0, #0
	mov	r1, #0
	and	ip, r2, r0
	str	ip, [fp, #-108]
	and	r3, r3, r1
	str	r3, [fp, #-104]
	sub	r2, fp, #100
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #108
	ldmia	r4, {r3-r4}
	mov	ip, r3
	adds	r0, r0, ip
	str	r0, [fp, #-156]
	mov	r3, r4
	adc	r3, r2, r3
	str	r3, [fp, #-152]
	sub	r4, fp, #156
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-36]
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
.L63:
	.align	3
.L62:
	.word	1431655765
	.word	1431655765
	.word	858993459
	.word	858993459
	.word	252645135
	.word	252645135
	.word	16711935
	.word	16711935
	.word	65535
	.word	65535
	.size	popcount64a, .-popcount64a
	.align	2
	.global	popcount64b
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount64b, %function
popcount64b:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #68
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #1
	orr	r0, r0, r3, lsl #31
	lsr	r1, r3, #1
	adr	r3, .L66
	ldmia	r3, {r2-r3}
	and	r4, r0, r2
	and	r5, r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	subs	r1, r2, r4
	str	r1, [fp, #-52]
	sbc	r3, r3, r5
	str	r3, [fp, #-48]
	sub	r4, fp, #52
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	adr	r1, .L66+8
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-44]
	and	r3, r1, r3
	str	r3, [fp, #-40]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #2
	orr	r0, r0, r3, lsl #30
	lsr	r1, r3, #2
	adr	r3, .L66+8
	ldmia	r3, {r2-r3}
	and	r6, r0, r2
	and	r7, r1, r3
	sub	r4, fp, #44
	ldmia	r4, {r3-r4}
	mov	r2, r3
	adds	r2, r2, r6
	str	r2, [fp, #-60]
	mov	r3, r4
	adc	r3, r3, r7
	str	r3, [fp, #-56]
	sub	r4, fp, #60
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #4
	orr	r2, r2, r1, lsl #28
	lsr	r3, r1, #4
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	adds	r8, r2, r0
	adc	r9, r3, r1
	adr	r3, .L66+16
	ldmia	r3, {r2-r3}
	and	r1, r8, r2
	str	r1, [fp, #-68]
	and	r3, r9, r3
	str	r3, [fp, #-64]
	sub	r4, fp, #68
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-76]
	adc	r3, r1, r3
	str	r3, [fp, #-72]
	sub	r4, fp, #76
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #16
	orr	r2, r2, r1, lsl #16
	lsr	r3, r1, #16
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-84]
	adc	r3, r1, r3
	str	r3, [fp, #-80]
	sub	r4, fp, #84
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	adds	ip, r0, r2
	str	ip, [fp, #-92]
	adc	r3, r1, r3
	str	r3, [fp, #-88]
	sub	r4, fp, #92
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-36]
	and	r3, r3, #127
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
.L67:
	.align	3
.L66:
	.word	1431655765
	.word	1431655765
	.word	858993459
	.word	858993459
	.word	252645135
	.word	252645135
	.size	popcount64b, .-popcount64b
	.align	2
	.global	popcount64c
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount64c, %function
popcount64c:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #40
	str	r0, [fp, #-36]
	str	r1, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #1
	orr	r0, r0, r3, lsl #31
	lsr	r1, r3, #1
	adr	r3, .L70
	ldmia	r3, {r2-r3}
	and	r4, r0, r2
	and	r5, r1, r3
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	subs	r1, r2, r4
	str	r1, [fp, #-52]
	sbc	r3, r3, r5
	str	r3, [fp, #-48]
	sub	r4, fp, #52
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	adr	r1, .L70+8
	ldmia	r1, {r0-r1}
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	and	ip, r0, r2
	str	ip, [fp, #-44]
	and	r3, r1, r3
	str	r3, [fp, #-40]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #2
	orr	r0, r0, r3, lsl #30
	lsr	r1, r3, #2
	adr	r3, .L70+8
	ldmia	r3, {r2-r3}
	and	r8, r0, r2
	and	r9, r1, r3
	sub	r4, fp, #44
	ldmia	r4, {r3-r4}
	mov	r2, r3
	adds	r2, r2, r8
	str	r2, [fp, #-60]
	mov	r3, r4
	adc	r3, r3, r9
	str	r3, [fp, #-56]
	sub	r4, fp, #60
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #4
	orr	r2, r2, r1, lsl #28
	lsr	r3, r1, #4
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	adds	r6, r2, r0
	adc	r7, r3, r1
	adr	r3, .L70+16
	ldmia	r3, {r2-r3}
	and	r1, r6, r2
	str	r1, [fp, #-68]
	and	r3, r7, r3
	str	r3, [fp, #-64]
	sub	r4, fp, #68
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	adr	r3, .L70+24
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-36]
	mul	r0, r3, r1
	ldr	r1, [fp, #-32]
	mul	r1, r2, r1
	add	ip, r0, r1
	ldr	lr, [fp, #-36]
	umull	r0, r1, lr, r2
	add	r3, ip, r1
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #24
	mov	r3, #0
	mov	r3, r2
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L71:
	.align	3
.L70:
	.word	1431655765
	.word	1431655765
	.word	858993459
	.word	858993459
	.word	252645135
	.word	252645135
	.word	16843009
	.word	16843009
	.size	popcount64c, .-popcount64c
	.align	2
	.global	popcount64_fast
	.syntax unified
	.arm
	.fpu softvfp
	.type	popcount64_fast, %function
popcount64_fast:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-12]
	str	r1, [fp, #-8]
	ldr	r3, [fp, #-12]
	mov	r0, r3
	bl	__popcountsi2
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	popcount64_fast, .-popcount64_fast
	.data
	.align	2
	.type	popcounts, %object
	.size	popcounts, 48
popcounts:
	.word	popcount_1_data
	.word	popcount_1_control
	.word	popcount_4_data
	.word	popcount_4_control
	.word	popcount_8_data
	.word	popcount_16_data
	.word	popcount_kernighan
	.word	popcount64a
	.word	popcount64b
	.word	popcount64c
	.word	popcount64_fast
	.word	0
	.section	.rodata
	.align	2
.LC0:
	.ascii	"/dev/urandom\000"
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	rand64, %function
rand64:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L80
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r1, #0
	ldr	r0, .L80+4
	bl	open
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L75
	bl	abort
.L75:
	sub	r3, fp, #20
	mov	r2, #8
	mov	r1, r3
	ldr	r0, [fp, #-28]
	bl	read
	mov	r3, r0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #8
	beq	.L76
	bl	abort
.L76:
	ldr	r0, [fp, #-28]
	bl	close
	mov	r3, r0
	cmp	r3, #0
	beq	.L77
	bl	abort
.L77:
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r1, .L80
	ldr	r0, [r1]
	ldr	r1, [fp, #-8]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L79
	bl	__stack_chk_fail
.L79:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L81:
	.align	2
.L80:
	.word	.LC1
	.word	.LC0
	.size	rand64, .-rand64
	.global	__aeabi_i2d
	.global	__aeabi_dmul
	.global	__aeabi_dadd
	.global	__aeabi_dsub
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	timespecDiff, %function
timespecDiff:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #8
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L84
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r4, r2
	mov	r5, r3
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, #0
	ldr	r3, .L84
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r6, r2
	mov	r7, r3
	ldr	r3, [fp, #-28]
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, r6
	mov	r1, r7
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	__aeabi_dsub
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L85:
	.align	2
.L84:
	.word	1104006501
	.size	timespecDiff, .-timespecDiff
	.global	__aeabi_ddiv
	.section	.rodata
	.align	2
.LC2:
	.ascii	"%lf ns / op\012\000"
	.align	2
.LC3:
	.ascii	"the_stack_data/918820.c\000"
	.align	2
.LC4:
	.ascii	"sum == last_sum\000"
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	test_popcounts, %function
test_popcounts:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	ldr	r3, .L95
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, sp
	mov	r5, r3
	ldr	r3, .L95+4
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	sub	r3, r3, #1
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-64]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #6
	orr	r3, r3, r0, lsr #26
	lsl	r2, r0, #6
	ldr	r3, [fp, #-64]
	mov	r0, r3
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #6
	orr	r3, r3, r0, lsr #26
	lsl	r2, r0, #6
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	sub	sp, sp, r3
	mov	r3, sp
	add	r3, r3, #7
	lsr	r3, r3, #3
	lsl	r3, r3, #3
	str	r3, [fp, #-56]
	ldr	r1, [fp, #-56]
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r1, [fp, #-56]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [r1, #8]
	str	r3, [r1, #12]
	mov	r3, #2
	str	r3, [fp, #-68]
	b	.L87
.L88:
	bl	rand64
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [fp, #-56]
	ldr	r1, [fp, #-68]
	lsl	r1, r1, #3
	add	r1, r0, r1
	stm	r1, {r2-r3}
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	str	r3, [fp, #-68]
.L87:
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-64]
	cmp	r2, r3
	blt	.L88
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L89
.L93:
	mov	r3, #0
	str	r3, [fp, #-80]
	sub	r3, fp, #32
	mov	r1, r3
	mov	r0, #1
	bl	clock_gettime
	mov	r3, #0
	str	r3, [fp, #-84]
	b	.L90
.L91:
	ldr	r2, .L95+8
	ldr	r3, [fp, #-76]
	ldr	r4, [r2, r3, lsl #2]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-84]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	blx	r4
	mov	r2, r0
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	str	r3, [fp, #-84]
.L90:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-64]
	cmp	r2, r3
	blt	.L91
	sub	r3, fp, #24
	mov	r1, r3
	mov	r0, #1
	bl	clock_gettime
	sub	r2, fp, #32
	sub	r3, fp, #24
	mov	r1, r2
	mov	r0, r3
	bl	timespecDiff
	str	r0, [fp, #-52]
	str	r1, [fp, #-48]
	ldr	r0, [fp, #-64]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, .L95+12
	bl	printf
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L92
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	beq	.L92
	ldr	r3, .L95+16
	mov	r2, #236
	ldr	r1, .L95+20
	ldr	r0, .L95+24
	bl	__assert_fail
.L92:
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L89:
	ldr	r2, .L95+8
	ldr	r3, [fp, #-76]
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	bne	.L93
	mov	sp, r5
	nop
	ldr	r3, .L95
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L94
	bl	__stack_chk_fail
.L94:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L96:
	.align	2
.L95:
	.word	.LC5
	.word	10000
	.word	popcounts
	.word	.LC2
	.word	__PRETTY_FUNCTION__.6055
	.word	.LC3
	.word	.LC4
	.size	test_popcounts, .-test_popcounts
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	init
	bl	test_popcounts
	mov	r3, #0
	mov	r0, r3
	pop	{fp, pc}
	.size	main, .-main
	.section	.rodata
	.align	2
	.type	__PRETTY_FUNCTION__.6055, %object
	.size	__PRETTY_FUNCTION__.6055, 15
__PRETTY_FUNCTION__.6055:
	.ascii	"test_popcounts\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
