.text
	.intel_syntax noprefix
	.file	"test_fib.cpp"
	.globl	fib
	.align	16, 0x90
	.type	fib,@function
fib:                                    # @fib
	.cfi_startproc
# BB#0:
	push	r14
.Ltmp0:
	.cfi_def_cfa_offset 16
	push	rbx
.Ltmp1:
	.cfi_def_cfa_offset 24
	push	rax
.Ltmp2:
	.cfi_def_cfa_offset 32
.Ltmp3:
	.cfi_offset rbx, -24
.Ltmp4:
	.cfi_offset r14, -16
	mov	ebx, edi
	mov	eax, ebx
	or	eax, 1
	mov	r14d, 1
	cmp	eax, 1
	je	.LBB0_3
# BB#1:                                 # %tailrecurse.preheader
	add	ebx, -2
	mov	r14d, 1
	.align	16, 0x90
.LBB0_2:                                # %tailrecurse
                                        # =>This Inner Loop Header: Depth=1
	lea	edi, [rbx + 1]
	call	fib
	add	r14, rax
	mov	eax, ebx
	or	eax, 1
	add	ebx, -2
	cmp	eax, 1
	jne	.LBB0_2
.LBB0_3:                                # %tailrecurse._crit_edge
	mov	rax, r14
	add	rsp, 8
	pop	rbx
	pop	r14
	ret
.Lfunc_end0:
	.size	fib, .Lfunc_end0-fib
	.cfi_endproc

	.globl	main
	.align	16, 0x90
	.type	main,@function
main:                                   # @main
	.cfi_startproc
# BB#0:
	push	r14
.Ltmp5:
	.cfi_def_cfa_offset 16
	push	rbx
.Ltmp6:
	.cfi_def_cfa_offset 24
	push	rax
.Ltmp7:
	.cfi_def_cfa_offset 32
.Ltmp8:
	.cfi_offset rbx, -24
.Ltmp9:
	.cfi_offset r14, -16
	mov	dword ptr [rsp + 4], 0
	mov	edi, _ZSt4cout
	mov	esi, .L.str
	mov	edx, 23
	call	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	mov	rax, qword ptr [rip + _ZSt4cout]
	mov	rax, qword ptr [rax - 24]
	mov	rbx, qword ptr [rax + _ZSt4cout+240]
	test	rbx, rbx
	je	.LBB1_9
# BB#1:                                 # %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit
	cmp	byte ptr [rbx + 56], 0
	je	.LBB1_3
# BB#2:
	mov	al, byte ptr [rbx + 67]
	jmp	.LBB1_4
.LBB1_3:
	mov	rdi, rbx
	call	_ZNKSt5ctypeIcE13_M_widen_initEv
	mov	rax, qword ptr [rbx]
	mov	esi, 10
	mov	rdi, rbx
	call	qword ptr [rax + 48]
.LBB1_4:                                # %_ZNKSt5ctypeIcE5widenEc.exit
	movsx	esi, al
	mov	edi, _ZSt4cout
	call	_ZNSo3putEc
	mov	rdi, rax
	call	_ZNSo5flushEv
	lea	rsi, [rsp + 4]
	mov	edi, _ZSt3cin
	call	_ZNSi10_M_extractIjEERSiRT_
	mov	edi, dword ptr [rsp + 4]
	call	fib
	mov	rbx, rax
	mov	edi, _ZSt4cout
	mov	esi, .L.str.1
	mov	edx, 15
	call	_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
	mov	edi, _ZSt4cout
	mov	rsi, rbx
	call	_ZNSo9_M_insertIlEERSoT_
	mov	r14, rax
	mov	rax, qword ptr [r14]
	mov	rax, qword ptr [rax - 24]
	mov	rbx, qword ptr [r14 + rax + 240]
	test	rbx, rbx
	je	.LBB1_9
# BB#5:                                 # %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit3
	cmp	byte ptr [rbx + 56], 0
	je	.LBB1_7
# BB#6:
	mov	al, byte ptr [rbx + 67]
	jmp	.LBB1_8
.LBB1_7:
	mov	rdi, rbx
	call	_ZNKSt5ctypeIcE13_M_widen_initEv
	mov	rax, qword ptr [rbx]
	mov	esi, 10
	mov	rdi, rbx
	call	qword ptr [rax + 48]
.LBB1_8:                                # %_ZNKSt5ctypeIcE5widenEc.exit2
	movsx	esi, al
	mov	rdi, r14
	call	_ZNSo3putEc
	mov	rdi, rax
	call	_ZNSo5flushEv
	xor	eax, eax
	add	rsp, 8
	pop	rbx
	pop	r14
	ret
.LBB1_9:
	call	_ZSt16__throw_bad_castv
.Lfunc_end1:
	.size	main, .Lfunc_end1-main
	.cfi_endproc

	.section	.text.startup,"ax",@progbits
	.align	16, 0x90
	.type	_GLOBAL__sub_I_test_fib.cpp,@function
_GLOBAL__sub_I_test_fib.cpp:            # @_GLOBAL__sub_I_test_fib.cpp
	.cfi_startproc
# BB#0:
	push	rax
.Ltmp10:
	.cfi_def_cfa_offset 16
	mov	edi, _ZStL8__ioinit
	call	_ZNSt8ios_base4InitC1Ev
	mov	edi, _ZNSt8ios_base4InitD1Ev
	mov	esi, _ZStL8__ioinit
	mov	edx, __dso_handle
	pop	rax
	jmp	__cxa_atexit            # TAILCALL
.Lfunc_end2:
	.size	_GLOBAL__sub_I_test_fib.cpp, .Lfunc_end2-_GLOBAL__sub_I_test_fib.cpp
	.cfi_endproc

	.type	_ZStL8__ioinit,@object  # @_ZStL8__ioinit
	.local	_ZStL8__ioinit
	.comm	_ZStL8__ioinit,1,1
	.type	.L.str,@object          # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"Enter value for fib(): "
	.size	.L.str, 24

	.type	.L.str.1,@object        # @.str.1
.L.str.1:
	.asciz	"The result is: "
	.size	.L.str.1, 16

	.section	.init_array,"aw",@init_array
	.align	8
	.quad	_GLOBAL__sub_I_test_fib.cpp

	.ident	"clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)"
	.section	".note.GNU-stack","",@progbits