	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	4, 0x90                         ## -- Begin function getAvailableFeatures
_getAvailableFeatures:                  ## @getAvailableFeatures
	.cfi_startproc
## %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	subq	$40, %rsp
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	movq	%r8, %r15
	movq	%rcx, %r14
	movl	%edx, %ebx
	movl	%edi, -48(%rbp)
	movl	%esi, -44(%rbp)
	xorl	%r12d, %r12d
	testl	$32768, %esi                    ## imm = 0x8000
	je	LBB0_6
## %bb.2:
	movq	_FEATURE_CMOV@GOTPCREL(%rip), %rax
	movl	(%rax), %ecx
	cmpl	$31, %ecx
	jg	LBB0_4
## %bb.3:
	movl	$1, %r12d
                                        ## kill: def $cl killed $cl killed $ecx
	shll	%cl, %r12d
	jmp	LBB0_6
LBB0_4:
	cmpl	$63, %ecx
	ja	LBB0_6
## %bb.5:
	movl	$1, %r13d
                                        ## kill: def $cl killed $cl killed $ecx
	shll	%cl, %r13d
	testl	$8388608, %esi                  ## imm = 0x800000
	je	LBB0_11
	jmp	LBB0_7
LBB0_6:
	xorl	%r13d, %r13d
	testl	$8388608, %esi                  ## imm = 0x800000
	je	LBB0_11
LBB0_7:
	movq	_FEATURE_MMX@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_9
## %bb.8:
	btsl	%eax, %r12d
	jmp	LBB0_11
LBB0_9:
	cmpl	$63, %eax
	ja	LBB0_11
## %bb.10:
	btsl	%eax, %r13d
LBB0_11:
	testl	$33554432, %esi                 ## imm = 0x2000000
	je	LBB0_16
## %bb.12:
	movq	_FEATURE_SSE@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_14
## %bb.13:
	btsl	%eax, %r12d
	jmp	LBB0_16
LBB0_14:
	cmpl	$63, %eax
	ja	LBB0_16
## %bb.15:
	btsl	%eax, %r13d
LBB0_16:
	testl	$67108864, %esi                 ## imm = 0x4000000
	je	LBB0_21
## %bb.17:
	movq	_FEATURE_SSE2@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_19
## %bb.18:
	btsl	%eax, %r12d
	jmp	LBB0_21
LBB0_19:
	cmpl	$63, %eax
	ja	LBB0_21
## %bb.20:
	btsl	%eax, %r13d
LBB0_21:
	testb	$1, %dil
	je	LBB0_26
## %bb.22:
	movq	_FEATURE_SSE3@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_24
## %bb.23:
	btsl	%eax, %r12d
	jmp	LBB0_26
LBB0_24:
	cmpl	$63, %eax
	ja	LBB0_26
## %bb.25:
	btsl	%eax, %r13d
LBB0_26:
	testb	$2, %dil
	je	LBB0_31
## %bb.27:
	movq	_FEATURE_PCLMUL@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_29
## %bb.28:
	btsl	%eax, %r12d
	jmp	LBB0_31
LBB0_29:
	cmpl	$63, %eax
	ja	LBB0_31
## %bb.30:
	btsl	%eax, %r13d
LBB0_31:
	testl	$512, %edi                      ## imm = 0x200
	je	LBB0_36
## %bb.32:
	movq	_FEATURE_SSSE3@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_34
## %bb.33:
	btsl	%eax, %r12d
	jmp	LBB0_36
LBB0_34:
	cmpl	$63, %eax
	ja	LBB0_36
## %bb.35:
	btsl	%eax, %r13d
LBB0_36:
	testl	$4096, %edi                     ## imm = 0x1000
	je	LBB0_41
## %bb.37:
	movq	_FEATURE_FMA@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_39
## %bb.38:
	btsl	%eax, %r12d
	jmp	LBB0_41
LBB0_39:
	cmpl	$63, %eax
	ja	LBB0_41
## %bb.40:
	btsl	%eax, %r13d
LBB0_41:
	testl	$524288, %edi                   ## imm = 0x80000
	je	LBB0_46
## %bb.42:
	movq	_FEATURE_SSE4_1@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_44
## %bb.43:
	btsl	%eax, %r12d
	jmp	LBB0_46
LBB0_44:
	cmpl	$63, %eax
	ja	LBB0_46
## %bb.45:
	btsl	%eax, %r13d
LBB0_46:
	testl	$1048576, %edi                  ## imm = 0x100000
	je	LBB0_51
## %bb.47:
	movq	_FEATURE_SSE4_2@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_49
## %bb.48:
	btsl	%eax, %r12d
	jmp	LBB0_51
LBB0_49:
	cmpl	$63, %eax
	ja	LBB0_51
## %bb.50:
	btsl	%eax, %r13d
LBB0_51:
	testl	$8388608, %edi                  ## imm = 0x800000
	je	LBB0_56
## %bb.52:
	movq	_FEATURE_POPCNT@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_54
## %bb.53:
	btsl	%eax, %r12d
	jmp	LBB0_56
LBB0_54:
	cmpl	$63, %eax
	ja	LBB0_56
## %bb.55:
	btsl	%eax, %r13d
LBB0_56:
	testl	$33554432, %edi                 ## imm = 0x2000000
	je	LBB0_61
## %bb.57:
	movq	_FEATURE_AES@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_59
## %bb.58:
	btsl	%eax, %r12d
	jmp	LBB0_61
LBB0_59:
	cmpl	$63, %eax
	ja	LBB0_61
## %bb.60:
	btsl	%eax, %r13d
LBB0_61:
	notl	%edi
	testl	$402653184, %edi                ## imm = 0x18000000
	movq	%r15, -72(%rbp)                 ## 8-byte Spill
	movq	%r14, -64(%rbp)                 ## 8-byte Spill
	jne	LBB0_66
## %bb.62:
	leaq	-56(%rbp), %rdi
	leaq	-44(%rbp), %rsi
	callq	_getX86XCR0
	testl	%eax, %eax
	jne	LBB0_66
## %bb.63:
	movl	-56(%rbp), %eax
	notl	%eax
	testb	$-32, %al
	sete	%r14b
	testb	$6, %al
	jne	LBB0_66
## %bb.64:
	movq	_FEATURE_AVX@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_79
## %bb.65:
	btsl	%eax, %r12d
	movb	$1, %r15b
	jmp	LBB0_67
LBB0_66:
	xorl	%r14d, %r14d
	xorl	%r15d, %r15d
LBB0_67:
	cmpl	$7, %ebx
	jb	LBB0_69
## %bb.68:
	leaq	-56(%rbp), %rdx
	leaq	-52(%rbp), %rcx
	leaq	-48(%rbp), %r8
	leaq	-44(%rbp), %r9
	movl	$7, %edi
	xorl	%esi, %esi
	callq	_getX86CpuIDAndInfoEx
	testl	%eax, %eax
	je	LBB0_76
LBB0_69:
	movq	-72(%rbp), %r15                 ## 8-byte Reload
LBB0_70:
	movq	-64(%rbp), %rbx                 ## 8-byte Reload
LBB0_71:
	leaq	-76(%rbp), %rsi
	leaq	-52(%rbp), %rdx
	leaq	-48(%rbp), %rcx
	leaq	-44(%rbp), %r8
	movl	$-2147483648, %edi              ## imm = 0x80000000
	callq	_getX86CpuIDAndInfo
	cmpl	$-2147483647, -76(%rbp)         ## imm = 0x80000001
	jb	LBB0_103
## %bb.72:
	leaq	-56(%rbp), %rsi
	leaq	-52(%rbp), %rdx
	leaq	-48(%rbp), %rcx
	leaq	-44(%rbp), %r8
	movl	$-2147483647, %edi              ## imm = 0x80000001
	callq	_getX86CpuIDAndInfo
	testl	%eax, %eax
	jne	LBB0_103
## %bb.73:
	movl	-48(%rbp), %eax
	testb	$64, %al
	je	LBB0_83
## %bb.74:
	movq	_FEATURE_SSE4_A@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_81
## %bb.75:
	btsl	%ecx, %r12d
	jmp	LBB0_83
LBB0_76:
	movl	-52(%rbp), %eax
	testb	$8, %al
	je	LBB0_88
## %bb.77:
	movq	_FEATURE_BMI@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_86
## %bb.78:
	btsl	%ecx, %r12d
	jmp	LBB0_88
LBB0_79:
	movb	$1, %r15b
	cmpl	$63, %eax
	ja	LBB0_67
## %bb.80:
	btsl	%eax, %r13d
	jmp	LBB0_67
LBB0_81:
	cmpl	$63, %ecx
	ja	LBB0_83
## %bb.82:
	btsl	%ecx, %r13d
LBB0_83:
	testl	$2048, %eax                     ## imm = 0x800
	je	LBB0_93
## %bb.84:
	movq	_FEATURE_XOP@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_91
## %bb.85:
	btsl	%ecx, %r12d
	jmp	LBB0_93
LBB0_86:
	cmpl	$63, %ecx
	ja	LBB0_88
## %bb.87:
	btsl	%ecx, %r13d
LBB0_88:
	testb	$32, %al
	sete	%cl
	xorb	$1, %r15b
	orb	%r15b, %cl
	jne	LBB0_98
## %bb.89:
	movq	_FEATURE_AVX2@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_96
## %bb.90:
	btsl	%ecx, %r12d
	jmp	LBB0_98
LBB0_91:
	cmpl	$63, %ecx
	ja	LBB0_93
## %bb.92:
	btsl	%ecx, %r13d
LBB0_93:
	testl	$65536, %eax                    ## imm = 0x10000
	je	LBB0_103
## %bb.94:
	movq	_FEATURE_FMA4@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_101
## %bb.95:
	btsl	%eax, %r12d
	jmp	LBB0_103
LBB0_96:
	cmpl	$63, %ecx
	ja	LBB0_98
## %bb.97:
	btsl	%ecx, %r13d
LBB0_98:
	testl	$256, %eax                      ## imm = 0x100
	je	LBB0_106
## %bb.99:
	movq	_FEATURE_BMI2@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_104
## %bb.100:
	btsl	%ecx, %r12d
	jmp	LBB0_106
LBB0_101:
	cmpl	$63, %eax
	ja	LBB0_103
## %bb.102:
	btsl	%eax, %r13d
LBB0_103:
	movl	%r12d, (%rbx)
	movl	%r13d, (%r15)
	addq	$40, %rsp
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	retq
LBB0_104:
	cmpl	$63, %ecx
	ja	LBB0_106
## %bb.105:
	btsl	%ecx, %r13d
LBB0_106:
	movl	%eax, %ecx
	shrl	$16, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_111
## %bb.107:
	movq	_FEATURE_AVX512F@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_109
## %bb.108:
	btsl	%ecx, %r12d
	jmp	LBB0_111
LBB0_109:
	cmpl	$63, %ecx
	ja	LBB0_111
## %bb.110:
	btsl	%ecx, %r13d
LBB0_111:
	movl	%eax, %ecx
	shrl	$17, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_116
## %bb.112:
	movq	_FEATURE_AVX512DQ@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_114
## %bb.113:
	btsl	%ecx, %r12d
	jmp	LBB0_116
LBB0_114:
	cmpl	$63, %ecx
	ja	LBB0_116
## %bb.115:
	btsl	%ecx, %r13d
LBB0_116:
	movl	%eax, %ecx
	shrl	$21, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_121
## %bb.117:
	movq	_FEATURE_AVX512IFMA@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_119
## %bb.118:
	btsl	%ecx, %r12d
	jmp	LBB0_121
LBB0_119:
	cmpl	$63, %ecx
	ja	LBB0_121
## %bb.120:
	btsl	%ecx, %r13d
LBB0_121:
	movl	%eax, %ecx
	shrl	$26, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_126
## %bb.122:
	movq	_FEATURE_AVX512PF@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_124
## %bb.123:
	btsl	%ecx, %r12d
	jmp	LBB0_126
LBB0_124:
	cmpl	$63, %ecx
	ja	LBB0_126
## %bb.125:
	btsl	%ecx, %r13d
LBB0_126:
	movl	%eax, %ecx
	shrl	$27, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_131
## %bb.127:
	movq	_FEATURE_AVX512ER@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_129
## %bb.128:
	btsl	%ecx, %r12d
	jmp	LBB0_131
LBB0_129:
	cmpl	$63, %ecx
	ja	LBB0_131
## %bb.130:
	btsl	%ecx, %r13d
LBB0_131:
	movl	%eax, %ecx
	shrl	$28, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_136
## %bb.132:
	movq	_FEATURE_AVX512CD@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_134
## %bb.133:
	btsl	%ecx, %r12d
	jmp	LBB0_136
LBB0_134:
	cmpl	$63, %ecx
	ja	LBB0_136
## %bb.135:
	btsl	%ecx, %r13d
LBB0_136:
	movl	%eax, %ecx
	shrl	$30, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_141
## %bb.137:
	movq	_FEATURE_AVX512BW@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_139
## %bb.138:
	btsl	%ecx, %r12d
	jmp	LBB0_141
LBB0_139:
	cmpl	$63, %ecx
	ja	LBB0_141
## %bb.140:
	btsl	%ecx, %r13d
LBB0_141:
	testl	%eax, %eax
	sets	%al
	andb	%r14b, %al
	cmpb	$1, %al
	jne	LBB0_146
## %bb.142:
	movq	_FEATURE_AVX512VL@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_144
## %bb.143:
	btsl	%eax, %r12d
	jmp	LBB0_146
LBB0_144:
	cmpl	$63, %eax
	ja	LBB0_146
## %bb.145:
	btsl	%eax, %r13d
LBB0_146:
	movl	-48(%rbp), %eax
	movl	%eax, %ecx
	shrb	%cl
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_151
## %bb.147:
	movq	_FEATURE_AVX512VBMI@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_149
## %bb.148:
	btsl	%ecx, %r12d
	jmp	LBB0_151
LBB0_149:
	cmpl	$63, %ecx
	ja	LBB0_151
## %bb.150:
	btsl	%ecx, %r13d
LBB0_151:
	movl	%eax, %ecx
	shrb	$6, %cl
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_156
## %bb.152:
	movq	_FEATURE_AVX512VBMI2@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_154
## %bb.153:
	btsl	%ecx, %r12d
	jmp	LBB0_156
LBB0_154:
	cmpl	$63, %ecx
	ja	LBB0_156
## %bb.155:
	btsl	%ecx, %r13d
LBB0_156:
	testl	$256, %eax                      ## imm = 0x100
	je	LBB0_161
## %bb.157:
	movq	_FEATURE_GFNI@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_159
## %bb.158:
	btsl	%ecx, %r12d
	jmp	LBB0_161
LBB0_159:
	cmpl	$63, %ecx
	ja	LBB0_161
## %bb.160:
	btsl	%ecx, %r13d
LBB0_161:
	testl	$1024, %eax                     ## imm = 0x400
	sete	%cl
	orb	%cl, %r15b
	jne	LBB0_164
## %bb.162:
	movq	_FEATURE_VPCLMULQDQ@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_165
## %bb.163:
	btsl	%ecx, %r12d
LBB0_164:
	movq	-72(%rbp), %r15                 ## 8-byte Reload
LBB0_167:
	movl	%eax, %ecx
	shrl	$11, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_172
## %bb.168:
	movq	_FEATURE_AVX512VNNI@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_170
## %bb.169:
	btsl	%ecx, %r12d
	jmp	LBB0_172
LBB0_165:
	cmpl	$63, %ecx
	movq	-72(%rbp), %r15                 ## 8-byte Reload
	ja	LBB0_167
## %bb.166:
	btsl	%ecx, %r13d
	jmp	LBB0_167
LBB0_170:
	cmpl	$63, %ecx
	ja	LBB0_172
## %bb.171:
	btsl	%ecx, %r13d
LBB0_172:
	movl	%eax, %ecx
	shrl	$12, %ecx
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_177
## %bb.173:
	movq	_FEATURE_AVX512BITALG@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_175
## %bb.174:
	btsl	%ecx, %r12d
	jmp	LBB0_177
LBB0_175:
	cmpl	$63, %ecx
	ja	LBB0_177
## %bb.176:
	btsl	%ecx, %r13d
LBB0_177:
	shrl	$14, %eax
	andb	%r14b, %al
	cmpb	$1, %al
	jne	LBB0_182
## %bb.178:
	movq	_FEATURE_AVX512VPOPCNTDQ@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_180
## %bb.179:
	btsl	%eax, %r12d
	jmp	LBB0_182
LBB0_180:
	cmpl	$63, %eax
	ja	LBB0_182
## %bb.181:
	btsl	%eax, %r13d
LBB0_182:
	movl	-44(%rbp), %eax
	movl	%eax, %ecx
	shrb	$2, %cl
	andb	%r14b, %cl
	cmpb	$1, %cl
	jne	LBB0_187
## %bb.183:
	movq	_FEATURE_AVX5124VNNIW@GOTPCREL(%rip), %rcx
	movl	(%rcx), %ecx
	cmpl	$31, %ecx
	jg	LBB0_185
## %bb.184:
	btsl	%ecx, %r12d
	jmp	LBB0_187
LBB0_185:
	cmpl	$63, %ecx
	ja	LBB0_187
## %bb.186:
	btsl	%ecx, %r13d
LBB0_187:
	shrb	$3, %al
	andb	%r14b, %al
	cmpb	$1, %al
	jne	LBB0_70
## %bb.188:
	movq	_FEATURE_AVX5124FMAPS@GOTPCREL(%rip), %rax
	movl	(%rax), %eax
	cmpl	$31, %eax
	jg	LBB0_191
## %bb.189:
	btsl	%eax, %r12d
	jmp	LBB0_70
LBB0_191:
	cmpl	$63, %eax
	movq	-64(%rbp), %rbx                 ## 8-byte Reload
	ja	LBB0_71
## %bb.192:
	btsl	%eax, %r13d
	jmp	LBB0_71
	.cfi_endproc
                                        ## -- End function
	.comm	_FEATURE_CMOV,4,2               ## @FEATURE_CMOV
	.comm	_FEATURE_MMX,4,2                ## @FEATURE_MMX
	.comm	_FEATURE_SSE,4,2                ## @FEATURE_SSE
	.comm	_FEATURE_SSE2,4,2               ## @FEATURE_SSE2
	.comm	_FEATURE_SSE3,4,2               ## @FEATURE_SSE3
	.comm	_FEATURE_PCLMUL,4,2             ## @FEATURE_PCLMUL
	.comm	_FEATURE_SSSE3,4,2              ## @FEATURE_SSSE3
	.comm	_FEATURE_FMA,4,2                ## @FEATURE_FMA
	.comm	_FEATURE_SSE4_1,4,2             ## @FEATURE_SSE4_1
	.comm	_FEATURE_SSE4_2,4,2             ## @FEATURE_SSE4_2
	.comm	_FEATURE_POPCNT,4,2             ## @FEATURE_POPCNT
	.comm	_FEATURE_AES,4,2                ## @FEATURE_AES
	.comm	_FEATURE_AVX,4,2                ## @FEATURE_AVX
	.comm	_FEATURE_BMI,4,2                ## @FEATURE_BMI
	.comm	_FEATURE_AVX2,4,2               ## @FEATURE_AVX2
	.comm	_FEATURE_BMI2,4,2               ## @FEATURE_BMI2
	.comm	_FEATURE_AVX512F,4,2            ## @FEATURE_AVX512F
	.comm	_FEATURE_AVX512DQ,4,2           ## @FEATURE_AVX512DQ
	.comm	_FEATURE_AVX512IFMA,4,2         ## @FEATURE_AVX512IFMA
	.comm	_FEATURE_AVX512PF,4,2           ## @FEATURE_AVX512PF
	.comm	_FEATURE_AVX512ER,4,2           ## @FEATURE_AVX512ER
	.comm	_FEATURE_AVX512CD,4,2           ## @FEATURE_AVX512CD
	.comm	_FEATURE_AVX512BW,4,2           ## @FEATURE_AVX512BW
	.comm	_FEATURE_AVX512VL,4,2           ## @FEATURE_AVX512VL
	.comm	_FEATURE_AVX512VBMI,4,2         ## @FEATURE_AVX512VBMI
	.comm	_FEATURE_AVX512VBMI2,4,2        ## @FEATURE_AVX512VBMI2
	.comm	_FEATURE_GFNI,4,2               ## @FEATURE_GFNI
	.comm	_FEATURE_VPCLMULQDQ,4,2         ## @FEATURE_VPCLMULQDQ
	.comm	_FEATURE_AVX512VNNI,4,2         ## @FEATURE_AVX512VNNI
	.comm	_FEATURE_AVX512BITALG,4,2       ## @FEATURE_AVX512BITALG
	.comm	_FEATURE_AVX512VPOPCNTDQ,4,2    ## @FEATURE_AVX512VPOPCNTDQ
	.comm	_FEATURE_AVX5124VNNIW,4,2       ## @FEATURE_AVX5124VNNIW
	.comm	_FEATURE_AVX5124FMAPS,4,2       ## @FEATURE_AVX5124FMAPS
	.comm	_FEATURE_SSE4_A,4,2             ## @FEATURE_SSE4_A
	.comm	_FEATURE_XOP,4,2                ## @FEATURE_XOP
	.comm	_FEATURE_FMA4,4,2               ## @FEATURE_FMA4
	.no_dead_strip	_getAvailableFeatures
.subsections_via_symbols

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 3
	.p2align	2                               ; -- Begin function getAvailableFeatures
_getAvailableFeatures:                  ; @getAvailableFeatures
	.cfi_startproc
; %bb.0:
	sub	sp, sp, #112
	.cfi_def_cfa_offset 112
	stp	x26, x25, [sp, #32]             ; 16-byte Folded Spill
	stp	x24, x23, [sp, #48]             ; 16-byte Folded Spill
	stp	x22, x21, [sp, #64]             ; 16-byte Folded Spill
	stp	x20, x19, [sp, #80]             ; 16-byte Folded Spill
	stp	x29, x30, [sp, #96]             ; 16-byte Folded Spill
	add	x29, sp, #96
	.cfi_def_cfa w29, 16
	.cfi_offset w30, -8
	.cfi_offset w29, -16
	.cfi_offset w19, -24
	.cfi_offset w20, -32
	.cfi_offset w21, -40
	.cfi_offset w22, -48
	.cfi_offset w23, -56
	.cfi_offset w24, -64
	.cfi_offset w25, -72
	.cfi_offset w26, -80
	mov	x19, x4
	mov	x20, x3
	mov	x21, x2
	stp	w1, w0, [sp, #24]
	tbnz	w1, #15, LBB0_2
LBB0_1:
	mov	w22, #0
	mov	w23, #0
	tbnz	w1, #23, LBB0_6
	b	LBB0_10
LBB0_2:
Lloh0:
	adrp	x8, _FEATURE_CMOV@GOTPAGE
Lloh1:
	ldr	x8, [x8, _FEATURE_CMOV@GOTPAGEOFF]
Lloh2:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_4
; %bb.3:
	mov	w22, #0
	mov	w9, #1
	lsl	w23, w9, w8
	tbnz	w1, #23, LBB0_6
	b	LBB0_10
LBB0_4:
	cmp	w8, #63
	b.hi	LBB0_1
; %bb.5:
	mov	w23, #0
	mov	w9, #1
	lsl	w22, w9, w8
	tbz	w1, #23, LBB0_10
LBB0_6:
Lloh3:
	adrp	x8, _FEATURE_MMX@GOTPAGE
Lloh4:
	ldr	x8, [x8, _FEATURE_MMX@GOTPAGEOFF]
Lloh5:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_8
; %bb.7:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_10
LBB0_8:
	cmp	w8, #63
	b.hi	LBB0_10
; %bb.9:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_10:
	tbz	w1, #25, LBB0_15
; %bb.11:
Lloh6:
	adrp	x8, _FEATURE_SSE@GOTPAGE
Lloh7:
	ldr	x8, [x8, _FEATURE_SSE@GOTPAGEOFF]
Lloh8:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_13
; %bb.12:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_15
LBB0_13:
	cmp	w8, #63
	b.hi	LBB0_15
; %bb.14:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_15:
	tbz	w1, #26, LBB0_20
; %bb.16:
Lloh9:
	adrp	x8, _FEATURE_SSE2@GOTPAGE
Lloh10:
	ldr	x8, [x8, _FEATURE_SSE2@GOTPAGEOFF]
Lloh11:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_18
; %bb.17:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_20
LBB0_18:
	cmp	w8, #63
	b.hi	LBB0_20
; %bb.19:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_20:
	tbz	w0, #0, LBB0_25
; %bb.21:
Lloh12:
	adrp	x8, _FEATURE_SSE3@GOTPAGE
Lloh13:
	ldr	x8, [x8, _FEATURE_SSE3@GOTPAGEOFF]
Lloh14:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_23
; %bb.22:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_25
LBB0_23:
	cmp	w8, #63
	b.hi	LBB0_25
; %bb.24:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_25:
	tbz	w0, #1, LBB0_30
; %bb.26:
Lloh15:
	adrp	x8, _FEATURE_PCLMUL@GOTPAGE
Lloh16:
	ldr	x8, [x8, _FEATURE_PCLMUL@GOTPAGEOFF]
Lloh17:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_28
; %bb.27:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_30
LBB0_28:
	cmp	w8, #63
	b.hi	LBB0_30
; %bb.29:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_30:
	tbz	w0, #9, LBB0_35
; %bb.31:
Lloh18:
	adrp	x8, _FEATURE_SSSE3@GOTPAGE
Lloh19:
	ldr	x8, [x8, _FEATURE_SSSE3@GOTPAGEOFF]
Lloh20:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_33
; %bb.32:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_35
LBB0_33:
	cmp	w8, #63
	b.hi	LBB0_35
; %bb.34:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_35:
	tbz	w0, #12, LBB0_40
; %bb.36:
Lloh21:
	adrp	x8, _FEATURE_FMA@GOTPAGE
Lloh22:
	ldr	x8, [x8, _FEATURE_FMA@GOTPAGEOFF]
Lloh23:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_38
; %bb.37:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_40
LBB0_38:
	cmp	w8, #63
	b.hi	LBB0_40
; %bb.39:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_40:
	tbz	w0, #19, LBB0_45
; %bb.41:
Lloh24:
	adrp	x8, _FEATURE_SSE4_1@GOTPAGE
Lloh25:
	ldr	x8, [x8, _FEATURE_SSE4_1@GOTPAGEOFF]
Lloh26:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_43
; %bb.42:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_45
LBB0_43:
	cmp	w8, #63
	b.hi	LBB0_45
; %bb.44:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_45:
	tbz	w0, #20, LBB0_50
; %bb.46:
Lloh27:
	adrp	x8, _FEATURE_SSE4_2@GOTPAGE
Lloh28:
	ldr	x8, [x8, _FEATURE_SSE4_2@GOTPAGEOFF]
Lloh29:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_48
; %bb.47:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_50
LBB0_48:
	cmp	w8, #63
	b.hi	LBB0_50
; %bb.49:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_50:
	tbz	w0, #23, LBB0_55
; %bb.51:
Lloh30:
	adrp	x8, _FEATURE_POPCNT@GOTPAGE
Lloh31:
	ldr	x8, [x8, _FEATURE_POPCNT@GOTPAGEOFF]
Lloh32:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_53
; %bb.52:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_55
LBB0_53:
	cmp	w8, #63
	b.hi	LBB0_55
; %bb.54:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_55:
	tbz	w0, #25, LBB0_60
; %bb.56:
Lloh33:
	adrp	x8, _FEATURE_AES@GOTPAGE
Lloh34:
	ldr	x8, [x8, _FEATURE_AES@GOTPAGEOFF]
Lloh35:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_58
; %bb.57:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_60
LBB0_58:
	cmp	w8, #63
	b.hi	LBB0_60
; %bb.59:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_60:
	mvn	w8, w0
	tst	w8, #0x18000000
	b.ne	LBB0_65
; %bb.61:
	add	x0, sp, #20
	add	x1, sp, #24
	bl	_getX86XCR0
	cbnz	w0, LBB0_65
; %bb.62:
	ldr	w8, [sp, #20]
	mvn	w9, w8
	mov	w10, #224
	bics	wzr, w10, w8
	cset	w24, eq
	and	w8, w9, #0x6
	cbnz	w8, LBB0_65
; %bb.63:
Lloh36:
	adrp	x8, _FEATURE_AVX@GOTPAGE
Lloh37:
	ldr	x8, [x8, _FEATURE_AVX@GOTPAGEOFF]
Lloh38:
	ldr	w8, [x8]
	mov	w25, #1
	cmp	w8, #31
	b.gt	LBB0_71
; %bb.64:
	lsl	w8, w25, w8
	orr	w23, w8, w23
	b	LBB0_66
LBB0_65:
	mov	w24, #0
	mov	w25, #0
LBB0_66:
	cmp	w21, #7
	b.lo	LBB0_170
; %bb.67:
	add	x2, sp, #20
	add	x3, sp, #16
	add	x4, sp, #28
	add	x5, sp, #24
	mov	w1, #0
	mov	w0, #7
	bl	_getX86CpuIDAndInfoEx
	cbnz	w0, LBB0_170
; %bb.68:
	ldr	w8, [sp, #16]
	tbz	w8, #3, LBB0_75
; %bb.69:
Lloh39:
	adrp	x9, _FEATURE_BMI@GOTPAGE
Lloh40:
	ldr	x9, [x9, _FEATURE_BMI@GOTPAGEOFF]
Lloh41:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_73
; %bb.70:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_75
LBB0_71:
	cmp	w8, #63
	b.hi	LBB0_66
; %bb.72:
	lsl	w8, w25, w8
	orr	w22, w8, w22
	b	LBB0_66
LBB0_73:
	cmp	w9, #63
	b.hi	LBB0_75
; %bb.74:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_75:
	tst	w8, #0x20
	cset	w9, eq
	eor	w10, w25, #0x1
	orr	w9, w10, w9
	tbnz	w9, #0, LBB0_80
; %bb.76:
Lloh42:
	adrp	x9, _FEATURE_AVX2@GOTPAGE
Lloh43:
	ldr	x9, [x9, _FEATURE_AVX2@GOTPAGEOFF]
Lloh44:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_78
; %bb.77:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_80
LBB0_78:
	cmp	w9, #63
	b.hi	LBB0_80
; %bb.79:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_80:
	tbz	w8, #8, LBB0_85
; %bb.81:
Lloh45:
	adrp	x9, _FEATURE_BMI2@GOTPAGE
Lloh46:
	ldr	x9, [x9, _FEATURE_BMI2@GOTPAGEOFF]
Lloh47:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_83
; %bb.82:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_85
LBB0_83:
	cmp	w9, #63
	b.hi	LBB0_85
; %bb.84:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_85:
	and	w9, w24, w8, lsr #16
	cmp	w9, #1
	b.ne	LBB0_90
; %bb.86:
Lloh48:
	adrp	x9, _FEATURE_AVX512F@GOTPAGE
Lloh49:
	ldr	x9, [x9, _FEATURE_AVX512F@GOTPAGEOFF]
Lloh50:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_88
; %bb.87:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_90
LBB0_88:
	cmp	w9, #63
	b.hi	LBB0_90
; %bb.89:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_90:
	and	w9, w24, w8, lsr #17
	cmp	w9, #1
	b.ne	LBB0_95
; %bb.91:
Lloh51:
	adrp	x9, _FEATURE_AVX512DQ@GOTPAGE
Lloh52:
	ldr	x9, [x9, _FEATURE_AVX512DQ@GOTPAGEOFF]
Lloh53:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_93
; %bb.92:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_95
LBB0_93:
	cmp	w9, #63
	b.hi	LBB0_95
; %bb.94:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_95:
	and	w9, w24, w8, lsr #21
	cmp	w9, #1
	b.ne	LBB0_100
; %bb.96:
Lloh54:
	adrp	x9, _FEATURE_AVX512IFMA@GOTPAGE
Lloh55:
	ldr	x9, [x9, _FEATURE_AVX512IFMA@GOTPAGEOFF]
Lloh56:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_98
; %bb.97:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_100
LBB0_98:
	cmp	w9, #63
	b.hi	LBB0_100
; %bb.99:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_100:
	and	w9, w24, w8, lsr #26
	cmp	w9, #1
	b.ne	LBB0_105
; %bb.101:
Lloh57:
	adrp	x9, _FEATURE_AVX512PF@GOTPAGE
Lloh58:
	ldr	x9, [x9, _FEATURE_AVX512PF@GOTPAGEOFF]
Lloh59:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_103
; %bb.102:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_105
LBB0_103:
	cmp	w9, #63
	b.hi	LBB0_105
; %bb.104:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_105:
	and	w9, w24, w8, lsr #27
	cmp	w9, #1
	b.ne	LBB0_110
; %bb.106:
Lloh60:
	adrp	x9, _FEATURE_AVX512ER@GOTPAGE
Lloh61:
	ldr	x9, [x9, _FEATURE_AVX512ER@GOTPAGEOFF]
Lloh62:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_108
; %bb.107:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_110
LBB0_108:
	cmp	w9, #63
	b.hi	LBB0_110
; %bb.109:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_110:
	and	w9, w24, w8, lsr #28
	cmp	w9, #1
	b.ne	LBB0_115
; %bb.111:
Lloh63:
	adrp	x9, _FEATURE_AVX512CD@GOTPAGE
Lloh64:
	ldr	x9, [x9, _FEATURE_AVX512CD@GOTPAGEOFF]
Lloh65:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_113
; %bb.112:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_115
LBB0_113:
	cmp	w9, #63
	b.hi	LBB0_115
; %bb.114:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_115:
	and	w9, w24, w8, lsr #30
	cmp	w9, #1
	b.ne	LBB0_120
; %bb.116:
Lloh66:
	adrp	x9, _FEATURE_AVX512BW@GOTPAGE
Lloh67:
	ldr	x9, [x9, _FEATURE_AVX512BW@GOTPAGEOFF]
Lloh68:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_118
; %bb.117:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_120
LBB0_118:
	cmp	w9, #63
	b.hi	LBB0_120
; %bb.119:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_120:
	cmp	w8, #0
	cset	w8, lt
	and	w8, w8, w24
	cmp	w8, #1
	b.ne	LBB0_125
; %bb.121:
Lloh69:
	adrp	x8, _FEATURE_AVX512VL@GOTPAGE
Lloh70:
	ldr	x8, [x8, _FEATURE_AVX512VL@GOTPAGEOFF]
Lloh71:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_123
; %bb.122:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_125
LBB0_123:
	cmp	w8, #63
	b.hi	LBB0_125
; %bb.124:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_125:
	ldr	w8, [sp, #28]
	and	w9, w24, w8, lsr #1
	cmp	w9, #1
	b.ne	LBB0_130
; %bb.126:
Lloh72:
	adrp	x9, _FEATURE_AVX512VBMI@GOTPAGE
Lloh73:
	ldr	x9, [x9, _FEATURE_AVX512VBMI@GOTPAGEOFF]
Lloh74:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_128
; %bb.127:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_130
LBB0_128:
	cmp	w9, #63
	b.hi	LBB0_130
; %bb.129:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_130:
	and	w9, w24, w8, lsr #6
	cmp	w9, #1
	b.ne	LBB0_135
; %bb.131:
Lloh75:
	adrp	x9, _FEATURE_AVX512VBMI2@GOTPAGE
Lloh76:
	ldr	x9, [x9, _FEATURE_AVX512VBMI2@GOTPAGEOFF]
Lloh77:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_133
; %bb.132:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_135
LBB0_133:
	cmp	w9, #63
	b.hi	LBB0_135
; %bb.134:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_135:
	tbz	w8, #8, LBB0_140
; %bb.136:
Lloh78:
	adrp	x9, _FEATURE_GFNI@GOTPAGE
Lloh79:
	ldr	x9, [x9, _FEATURE_GFNI@GOTPAGEOFF]
Lloh80:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_138
; %bb.137:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_140
LBB0_138:
	cmp	w9, #63
	b.hi	LBB0_140
; %bb.139:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_140:
	tst	w8, #0x400
	cset	w9, eq
	eor	w10, w25, #0x1
	orr	w9, w10, w9
	tbnz	w9, #0, LBB0_145
; %bb.141:
Lloh81:
	adrp	x9, _FEATURE_VPCLMULQDQ@GOTPAGE
Lloh82:
	ldr	x9, [x9, _FEATURE_VPCLMULQDQ@GOTPAGEOFF]
Lloh83:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_143
; %bb.142:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_145
LBB0_143:
	cmp	w9, #63
	b.hi	LBB0_145
; %bb.144:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_145:
	and	w9, w24, w8, lsr #11
	cmp	w9, #1
	b.ne	LBB0_150
; %bb.146:
Lloh84:
	adrp	x9, _FEATURE_AVX512VNNI@GOTPAGE
Lloh85:
	ldr	x9, [x9, _FEATURE_AVX512VNNI@GOTPAGEOFF]
Lloh86:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_148
; %bb.147:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_150
LBB0_148:
	cmp	w9, #63
	b.hi	LBB0_150
; %bb.149:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_150:
	and	w9, w24, w8, lsr #12
	cmp	w9, #1
	b.ne	LBB0_155
; %bb.151:
Lloh87:
	adrp	x9, _FEATURE_AVX512BITALG@GOTPAGE
Lloh88:
	ldr	x9, [x9, _FEATURE_AVX512BITALG@GOTPAGEOFF]
Lloh89:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_153
; %bb.152:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_155
LBB0_153:
	cmp	w9, #63
	b.hi	LBB0_155
; %bb.154:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_155:
	and	w8, w24, w8, lsr #14
	cmp	w8, #1
	b.ne	LBB0_160
; %bb.156:
Lloh90:
	adrp	x8, _FEATURE_AVX512VPOPCNTDQ@GOTPAGE
Lloh91:
	ldr	x8, [x8, _FEATURE_AVX512VPOPCNTDQ@GOTPAGEOFF]
Lloh92:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_158
; %bb.157:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_160
LBB0_158:
	cmp	w8, #63
	b.hi	LBB0_160
; %bb.159:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_160:
	ldr	w8, [sp, #24]
	and	w9, w24, w8, lsr #2
	cmp	w9, #1
	b.ne	LBB0_165
; %bb.161:
Lloh93:
	adrp	x9, _FEATURE_AVX5124VNNIW@GOTPAGE
Lloh94:
	ldr	x9, [x9, _FEATURE_AVX5124VNNIW@GOTPAGEOFF]
Lloh95:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_163
; %bb.162:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_165
LBB0_163:
	cmp	w9, #63
	b.hi	LBB0_165
; %bb.164:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_165:
	and	w8, w24, w8, lsr #3
	cmp	w8, #1
	b.ne	LBB0_170
; %bb.166:
Lloh96:
	adrp	x8, _FEATURE_AVX5124FMAPS@GOTPAGE
Lloh97:
	ldr	x8, [x8, _FEATURE_AVX5124FMAPS@GOTPAGEOFF]
Lloh98:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_168
; %bb.167:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_170
LBB0_168:
	cmp	w8, #63
	b.hi	LBB0_170
; %bb.169:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_170:
	add	x1, sp, #12
	add	x2, sp, #16
	add	x3, sp, #28
	add	x4, sp, #24
	mov	w0, #-2147483648
	bl	_getX86CpuIDAndInfo
	ldr	w8, [sp, #12]
	mov	w9, #-2147483647
	cmp	w8, w9
	b.lo	LBB0_187
; %bb.171:
	add	x1, sp, #20
	add	x2, sp, #16
	add	x3, sp, #28
	add	x4, sp, #24
	mov	w0, #-2147483647
	bl	_getX86CpuIDAndInfo
	cbnz	w0, LBB0_187
; %bb.172:
	ldr	w8, [sp, #28]
	tbz	w8, #6, LBB0_177
; %bb.173:
Lloh99:
	adrp	x9, _FEATURE_SSE4_A@GOTPAGE
Lloh100:
	ldr	x9, [x9, _FEATURE_SSE4_A@GOTPAGEOFF]
Lloh101:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_175
; %bb.174:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_177
LBB0_175:
	cmp	w9, #63
	b.hi	LBB0_177
; %bb.176:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_177:
	tbz	w8, #11, LBB0_182
; %bb.178:
Lloh102:
	adrp	x9, _FEATURE_XOP@GOTPAGE
Lloh103:
	ldr	x9, [x9, _FEATURE_XOP@GOTPAGEOFF]
Lloh104:
	ldr	w9, [x9]
	cmp	w9, #31
	b.gt	LBB0_180
; %bb.179:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w23, w9, w23
	b	LBB0_182
LBB0_180:
	cmp	w9, #63
	b.hi	LBB0_182
; %bb.181:
	mov	w10, #1
	lsl	w9, w10, w9
	orr	w22, w9, w22
LBB0_182:
	tbz	w8, #16, LBB0_187
; %bb.183:
Lloh105:
	adrp	x8, _FEATURE_FMA4@GOTPAGE
Lloh106:
	ldr	x8, [x8, _FEATURE_FMA4@GOTPAGEOFF]
Lloh107:
	ldr	w8, [x8]
	cmp	w8, #31
	b.gt	LBB0_185
; %bb.184:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w23, w8, w23
	b	LBB0_187
LBB0_185:
	cmp	w8, #63
	b.hi	LBB0_187
; %bb.186:
	mov	w9, #1
	lsl	w8, w9, w8
	orr	w22, w8, w22
LBB0_187:
	str	w23, [x20]
	str	w22, [x19]
	ldp	x29, x30, [sp, #96]             ; 16-byte Folded Reload
	ldp	x20, x19, [sp, #80]             ; 16-byte Folded Reload
	ldp	x22, x21, [sp, #64]             ; 16-byte Folded Reload
	ldp	x24, x23, [sp, #48]             ; 16-byte Folded Reload
	ldp	x26, x25, [sp, #32]             ; 16-byte Folded Reload
	add	sp, sp, #112
	ret
	.loh AdrpLdrGotLdr	Lloh0, Lloh1, Lloh2
	.loh AdrpLdrGotLdr	Lloh3, Lloh4, Lloh5
	.loh AdrpLdrGotLdr	Lloh6, Lloh7, Lloh8
	.loh AdrpLdrGotLdr	Lloh9, Lloh10, Lloh11
	.loh AdrpLdrGotLdr	Lloh12, Lloh13, Lloh14
	.loh AdrpLdrGotLdr	Lloh15, Lloh16, Lloh17
	.loh AdrpLdrGotLdr	Lloh18, Lloh19, Lloh20
	.loh AdrpLdrGotLdr	Lloh21, Lloh22, Lloh23
	.loh AdrpLdrGotLdr	Lloh24, Lloh25, Lloh26
	.loh AdrpLdrGotLdr	Lloh27, Lloh28, Lloh29
	.loh AdrpLdrGotLdr	Lloh30, Lloh31, Lloh32
	.loh AdrpLdrGotLdr	Lloh33, Lloh34, Lloh35
	.loh AdrpLdrGotLdr	Lloh36, Lloh37, Lloh38
	.loh AdrpLdrGotLdr	Lloh39, Lloh40, Lloh41
	.loh AdrpLdrGotLdr	Lloh42, Lloh43, Lloh44
	.loh AdrpLdrGotLdr	Lloh45, Lloh46, Lloh47
	.loh AdrpLdrGotLdr	Lloh48, Lloh49, Lloh50
	.loh AdrpLdrGotLdr	Lloh51, Lloh52, Lloh53
	.loh AdrpLdrGotLdr	Lloh54, Lloh55, Lloh56
	.loh AdrpLdrGotLdr	Lloh57, Lloh58, Lloh59
	.loh AdrpLdrGotLdr	Lloh60, Lloh61, Lloh62
	.loh AdrpLdrGotLdr	Lloh63, Lloh64, Lloh65
	.loh AdrpLdrGotLdr	Lloh66, Lloh67, Lloh68
	.loh AdrpLdrGotLdr	Lloh69, Lloh70, Lloh71
	.loh AdrpLdrGotLdr	Lloh72, Lloh73, Lloh74
	.loh AdrpLdrGotLdr	Lloh75, Lloh76, Lloh77
	.loh AdrpLdrGotLdr	Lloh78, Lloh79, Lloh80
	.loh AdrpLdrGotLdr	Lloh81, Lloh82, Lloh83
	.loh AdrpLdrGotLdr	Lloh84, Lloh85, Lloh86
	.loh AdrpLdrGotLdr	Lloh87, Lloh88, Lloh89
	.loh AdrpLdrGotLdr	Lloh90, Lloh91, Lloh92
	.loh AdrpLdrGotLdr	Lloh93, Lloh94, Lloh95
	.loh AdrpLdrGotLdr	Lloh96, Lloh97, Lloh98
	.loh AdrpLdrGotLdr	Lloh99, Lloh100, Lloh101
	.loh AdrpLdrGotLdr	Lloh102, Lloh103, Lloh104
	.loh AdrpLdrGotLdr	Lloh105, Lloh106, Lloh107
	.cfi_endproc
                                        ; -- End function
	.comm	_FEATURE_CMOV,4,2               ; @FEATURE_CMOV
	.comm	_FEATURE_MMX,4,2                ; @FEATURE_MMX
	.comm	_FEATURE_SSE,4,2                ; @FEATURE_SSE
	.comm	_FEATURE_SSE2,4,2               ; @FEATURE_SSE2
	.comm	_FEATURE_SSE3,4,2               ; @FEATURE_SSE3
	.comm	_FEATURE_PCLMUL,4,2             ; @FEATURE_PCLMUL
	.comm	_FEATURE_SSSE3,4,2              ; @FEATURE_SSSE3
	.comm	_FEATURE_FMA,4,2                ; @FEATURE_FMA
	.comm	_FEATURE_SSE4_1,4,2             ; @FEATURE_SSE4_1
	.comm	_FEATURE_SSE4_2,4,2             ; @FEATURE_SSE4_2
	.comm	_FEATURE_POPCNT,4,2             ; @FEATURE_POPCNT
	.comm	_FEATURE_AES,4,2                ; @FEATURE_AES
	.comm	_FEATURE_AVX,4,2                ; @FEATURE_AVX
	.comm	_FEATURE_BMI,4,2                ; @FEATURE_BMI
	.comm	_FEATURE_AVX2,4,2               ; @FEATURE_AVX2
	.comm	_FEATURE_BMI2,4,2               ; @FEATURE_BMI2
	.comm	_FEATURE_AVX512F,4,2            ; @FEATURE_AVX512F
	.comm	_FEATURE_AVX512DQ,4,2           ; @FEATURE_AVX512DQ
	.comm	_FEATURE_AVX512IFMA,4,2         ; @FEATURE_AVX512IFMA
	.comm	_FEATURE_AVX512PF,4,2           ; @FEATURE_AVX512PF
	.comm	_FEATURE_AVX512ER,4,2           ; @FEATURE_AVX512ER
	.comm	_FEATURE_AVX512CD,4,2           ; @FEATURE_AVX512CD
	.comm	_FEATURE_AVX512BW,4,2           ; @FEATURE_AVX512BW
	.comm	_FEATURE_AVX512VL,4,2           ; @FEATURE_AVX512VL
	.comm	_FEATURE_AVX512VBMI,4,2         ; @FEATURE_AVX512VBMI
	.comm	_FEATURE_AVX512VBMI2,4,2        ; @FEATURE_AVX512VBMI2
	.comm	_FEATURE_GFNI,4,2               ; @FEATURE_GFNI
	.comm	_FEATURE_VPCLMULQDQ,4,2         ; @FEATURE_VPCLMULQDQ
	.comm	_FEATURE_AVX512VNNI,4,2         ; @FEATURE_AVX512VNNI
	.comm	_FEATURE_AVX512BITALG,4,2       ; @FEATURE_AVX512BITALG
	.comm	_FEATURE_AVX512VPOPCNTDQ,4,2    ; @FEATURE_AVX512VPOPCNTDQ
	.comm	_FEATURE_AVX5124VNNIW,4,2       ; @FEATURE_AVX5124VNNIW
	.comm	_FEATURE_AVX5124FMAPS,4,2       ; @FEATURE_AVX5124FMAPS
	.comm	_FEATURE_SSE4_A,4,2             ; @FEATURE_SSE4_A
	.comm	_FEATURE_XOP,4,2                ; @FEATURE_XOP
	.comm	_FEATURE_FMA4,4,2               ; @FEATURE_FMA4
	.no_dead_strip	_getAvailableFeatures
.subsections_via_symbols
