	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_special_function_p             ## -- Begin function special_function_p
	.p2align	4, 0x90
_special_function_p:                    ## @special_function_p
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	pushq	%rax
	.cfi_offset %rbx, -24
	movl	%edi, %ebx
	callq	_DECL_COPY_CONSTRUCTOR_P
	testq	%rax, %rax
	je	LBB0_2
## %bb.1:
	movq	_sfk_copy_constructor@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_2:
	movl	%ebx, %edi
	callq	_DECL_CONSTRUCTOR_P
	testq	%rax, %rax
	je	LBB0_4
## %bb.3:
	movq	_sfk_constructor@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_4:
	movl	%ebx, %edi
	callq	_DECL_OVERLOADED_OPERATOR_P
	movq	_NOP_EXPR@GOTPCREL(%rip), %rcx
	cmpq	(%rcx), %rax
	jne	LBB0_6
## %bb.5:
	movq	_sfk_assignment_operator@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_6:
	movl	%ebx, %edi
	callq	_DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P
	testq	%rax, %rax
	je	LBB0_8
## %bb.7:
	movq	_sfk_destructor@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_8:
	movl	%ebx, %edi
	callq	_DECL_COMPLETE_DESTRUCTOR_P
	testq	%rax, %rax
	je	LBB0_10
## %bb.9:
	movq	_sfk_complete_destructor@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_10:
	movl	%ebx, %edi
	callq	_DECL_BASE_DESTRUCTOR_P
	testq	%rax, %rax
	je	LBB0_12
## %bb.11:
	movq	_sfk_base_destructor@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_12:
	movl	%ebx, %edi
	callq	_DECL_DELETING_DESTRUCTOR_P
	testq	%rax, %rax
	je	LBB0_14
## %bb.13:
	movq	_sfk_deleting_destructor@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_14:
	movl	%ebx, %edi
	callq	_DECL_CONV_FN_P
	testq	%rax, %rax
	jne	LBB0_15
## %bb.16:
	movq	_sfk_none@GOTPCREL(%rip), %rax
	jmp	LBB0_17
LBB0_15:
	movq	_sfk_conversion@GOTPCREL(%rip), %rax
LBB0_17:
	movl	(%rax), %eax
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	retq
	.cfi_endproc
                                        ## -- End function
	.comm	_sfk_copy_constructor,4,2       ## @sfk_copy_constructor
	.comm	_sfk_constructor,4,2            ## @sfk_constructor
	.comm	_NOP_EXPR,8,3                   ## @NOP_EXPR
	.comm	_sfk_assignment_operator,4,2    ## @sfk_assignment_operator
	.comm	_sfk_destructor,4,2             ## @sfk_destructor
	.comm	_sfk_complete_destructor,4,2    ## @sfk_complete_destructor
	.comm	_sfk_base_destructor,4,2        ## @sfk_base_destructor
	.comm	_sfk_deleting_destructor,4,2    ## @sfk_deleting_destructor
	.comm	_sfk_conversion,4,2             ## @sfk_conversion
	.comm	_sfk_none,4,2                   ## @sfk_none
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.globl	_special_function_p             ; -- Begin function special_function_p
	.p2align	2
_special_function_p:                    ; @special_function_p
	.cfi_startproc
; %bb.0:
	stp	x20, x19, [sp, #-32]!           ; 16-byte Folded Spill
	.cfi_def_cfa_offset 32
	stp	x29, x30, [sp, #16]             ; 16-byte Folded Spill
	add	x29, sp, #16
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	mov	x19, x0
	bl	_DECL_COPY_CONSTRUCTOR_P
	cbz	x0, LBB0_2
; %bb.1:
Lloh0:
	adrp	x8, _sfk_copy_constructor@GOTPAGE
Lloh1:
	ldr	x8, [x8, _sfk_copy_constructor@GOTPAGEOFF]
	b	LBB0_15
LBB0_2:
	mov	x0, x19
	bl	_DECL_CONSTRUCTOR_P
	cbz	x0, LBB0_4
; %bb.3:
Lloh2:
	adrp	x8, _sfk_constructor@GOTPAGE
Lloh3:
	ldr	x8, [x8, _sfk_constructor@GOTPAGEOFF]
	b	LBB0_15
LBB0_4:
	mov	x0, x19
	bl	_DECL_OVERLOADED_OPERATOR_P
Lloh4:
	adrp	x8, _NOP_EXPR@GOTPAGE
Lloh5:
	ldr	x8, [x8, _NOP_EXPR@GOTPAGEOFF]
Lloh6:
	ldr	x8, [x8]
	cmp	x0, x8
	b.ne	LBB0_6
; %bb.5:
Lloh7:
	adrp	x8, _sfk_assignment_operator@GOTPAGE
Lloh8:
	ldr	x8, [x8, _sfk_assignment_operator@GOTPAGEOFF]
	b	LBB0_15
LBB0_6:
	mov	x0, x19
	bl	_DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P
	cbz	x0, LBB0_8
; %bb.7:
Lloh9:
	adrp	x8, _sfk_destructor@GOTPAGE
Lloh10:
	ldr	x8, [x8, _sfk_destructor@GOTPAGEOFF]
	b	LBB0_15
LBB0_8:
	mov	x0, x19
	bl	_DECL_COMPLETE_DESTRUCTOR_P
	cbz	x0, LBB0_10
; %bb.9:
Lloh11:
	adrp	x8, _sfk_complete_destructor@GOTPAGE
Lloh12:
	ldr	x8, [x8, _sfk_complete_destructor@GOTPAGEOFF]
	b	LBB0_15
LBB0_10:
	mov	x0, x19
	bl	_DECL_BASE_DESTRUCTOR_P
	cbz	x0, LBB0_12
; %bb.11:
Lloh13:
	adrp	x8, _sfk_base_destructor@GOTPAGE
Lloh14:
	ldr	x8, [x8, _sfk_base_destructor@GOTPAGEOFF]
	b	LBB0_15
LBB0_12:
	mov	x0, x19
	bl	_DECL_DELETING_DESTRUCTOR_P
	cbz	x0, LBB0_14
; %bb.13:
Lloh15:
	adrp	x8, _sfk_deleting_destructor@GOTPAGE
Lloh16:
	ldr	x8, [x8, _sfk_deleting_destructor@GOTPAGEOFF]
	b	LBB0_15
LBB0_14:
	mov	x0, x19
	bl	_DECL_CONV_FN_P
Lloh17:
	adrp	x8, _sfk_conversion@GOTPAGE
Lloh18:
	ldr	x8, [x8, _sfk_conversion@GOTPAGEOFF]
Lloh19:
	adrp	x9, _sfk_none@GOTPAGE
Lloh20:
	ldr	x9, [x9, _sfk_none@GOTPAGEOFF]
	cmp	x0, #0
	csel	x8, x9, x8, eq
LBB0_15:
	ldr	w0, [x8]
	ldp	x29, x30, [sp, #16]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp], #32             ; 16-byte Folded Reload
	ret
	.loh AdrpLdrGot	Lloh0, Lloh1
	.loh AdrpLdrGot	Lloh2, Lloh3
	.loh AdrpLdrGotLdr	Lloh4, Lloh5, Lloh6
	.loh AdrpLdrGot	Lloh7, Lloh8
	.loh AdrpLdrGot	Lloh9, Lloh10
	.loh AdrpLdrGot	Lloh11, Lloh12
	.loh AdrpLdrGot	Lloh13, Lloh14
	.loh AdrpLdrGot	Lloh15, Lloh16
	.loh AdrpLdrGot	Lloh19, Lloh20
	.loh AdrpLdrGot	Lloh17, Lloh18
	.cfi_endproc
                                        ; -- End function
	.comm	_sfk_copy_constructor,4,2       ; @sfk_copy_constructor
	.comm	_sfk_constructor,4,2            ; @sfk_constructor
	.comm	_NOP_EXPR,8,3                   ; @NOP_EXPR
	.comm	_sfk_assignment_operator,4,2    ; @sfk_assignment_operator
	.comm	_sfk_destructor,4,2             ; @sfk_destructor
	.comm	_sfk_complete_destructor,4,2    ; @sfk_complete_destructor
	.comm	_sfk_base_destructor,4,2        ; @sfk_base_destructor
	.comm	_sfk_deleting_destructor,4,2    ; @sfk_deleting_destructor
	.comm	_sfk_conversion,4,2             ; @sfk_conversion
	.comm	_sfk_none,4,2                   ; @sfk_none
.subsections_via_symbols
