Skip to content

Instantly share code, notes, and snippets.

@MaskRay
Last active June 23, 2022 20:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MaskRay/23f0db50e136127fda1b4f83db2488da to your computer and use it in GitHub Desktop.
Save MaskRay/23f0db50e136127fda1b4f83db2488da to your computer and use it in GitHub Desktop.
https://reviews.llvm.org/D115462 SLPVectorizer miscompile
.text
.file "isa.c"
.file 0 "workspace" "cpuinfo/src/x86/isa.c" md5 0x1f066767a48d692a7df3bd0b30681f63
.file 1 "cpuinfo/include" "cpuinfo.h" md5 0xb2d9902226e7212a1e7a8aecca87c8f4
.file 2 "glibc/include/bits" "types.h" md5 0x25679ba19d359e314e48661b21f5aa1f
.file 3 "glibc/include/bits" "stdint-uintn.h" md5 0x9754ebe022edbe8d7928fa709e442f0d
.section .rodata.cst16,"aM",@progbits,16
.p2align 4 # -- Begin function cpuinfo_x86_detect_isa
.LCPI0_0:
.quad 6 # 0x6
.quad 230 # 0xe6
.LCPI0_1:
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 8 # 0x8
.byte 9 # 0x9
.byte 8 # 0x8
.byte 9 # 0x9
.LCPI0_8:
.long 12288 # 0x3000
.long 3072 # 0xc00
.long 768 # 0x300
.long 192 # 0xc0
.section .rodata.cst32,"aM",@progbits,32
.p2align 5
.LCPI0_2:
.long 0 # 0x0
.long 0 # 0x0
.long 1 # 0x1
.long 1 # 0x1
.long 0 # 0x0
.long 2 # 0x2
.long 2 # 0x2
.long 2 # 0x2
.LCPI0_3:
.long 268435456 # 0x10000000
.long 4096 # 0x1000
.long 65536 # 0x10000
.long 2048 # 0x800
.long 536870912 # 0x20000000
.long 32 # 0x20
.long 65536 # 0x10000
.long 67108864 # 0x4000000
.section .rodata,"a",@progbits
.p2align 1
.LCPI0_4:
.short 1 # 0x1
.LCPI0_5:
.byte 1 # 0x1
.LCPI0_6:
.byte 8 # 0x8
.LCPI0_7:
.byte 128 # 0x80
.text
.hidden cpuinfo_x86_detect_isa
.globl cpuinfo_x86_detect_isa
.type cpuinfo_x86_detect_isa,@function
cpuinfo_x86_detect_isa: # @cpuinfo_x86_detect_isa
.Lfunc_begin0:
.loc 0 42 0 # cpuinfo/src/x86/isa.c:42:0
.cfi_sections .debug_frame
.cfi_startproc
# %bb.0: # %entry
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 0 64] $rsi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 0 64] $rcx
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r9d
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 $88, %rsp
.cfi_offset %rbx, -56
.cfi_offset %r12, -48
.cfi_offset %r13, -40
.cfi_offset %r14, -32
.cfi_offset %r15, -24
.Ltmp0:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rdi+0]
movl %r9d, %r12d
movq %r8, -48(%rbp) # 8-byte Spill
movq %rdx, %r13
movq %rdi, %rbx
.Ltmp1:
.loc 0 0 0 is_stmt 0 # cpuinfo/src/x86/isa.c:0:0
movq __msan_param_tls@GOTTPOFF(%rip), %rax
movq %fs:(%rax), %r15
movq %fs:16(%rax), %r14
movq %fs:32(%rax), %rax
.Ltmp2:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_convert 64 7, DW_OP_LLVM_convert 32 7, DW_OP_stack_value, DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] undef
movq %rax, -56(%rbp) # 8-byte Spill
xorl %eax, %eax
movq %rax, -72(%rbp) # 8-byte Spill
.loc 0 43 25 prologue_end is_stmt 1 # cpuinfo/src/x86/isa.c:43:25
movl $74, %edx
xorl %esi, %esi
.Ltmp3:
callq __msan_memset@PLT
.Ltmp4:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
.loc 0 46 19 # cpuinfo/src/x86/isa.c:46:19
cmpl $7, %r12d
.loc 0 46 3 is_stmt 0 # cpuinfo/src/x86/isa.c:46:3
jb .LBB0_1
.Ltmp5:
# %bb.2: # %cond.true2
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuidex:eax <- 7
#DEBUG_VALUE: cpuidex:ecx <- 0
.file 4 "cpuinfo/src/x86" "cpuid.h" md5 0xf9e451aa7a48009ba003a034c14f0ac3
.loc 4 56 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:56:5
xorl %ecx, %ecx
movl $7, %eax
#APP
xchgq %rbx, %r10
cpuid
xchgq %rbx, %r10
#NO_APP
# kill: def $edx killed $edx def $rdx
.Ltmp6:
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 32 32] $r10d
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] $ecx
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 96 32] $edx
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 0 32] undef
.loc 4 65 4 # cpuinfo/src/x86/cpuid.h:65:4
shlq $32, %r10
.Ltmp7:
shlq $32, %rdx
.Ltmp8:
movl %ecx, %eax
orq %rdx, %rax
.Ltmp9:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info0 <- [DW_OP_LLVM_fragment 64 64] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info0 <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: cpuidex:eax <- 7
#DEBUG_VALUE: cpuidex:ecx <- 1
.loc 4 0 4 is_stmt 0 # cpuinfo/src/x86/cpuid.h:0:4
movq %rax, -72(%rbp) # 8-byte Spill
.Ltmp10:
.loc 4 56 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:56:5
movl $7, %eax
movl $1, %ecx
.Ltmp11:
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
movl %eax, %esi
.Ltmp12:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info1 <- [DW_OP_LLVM_arg 0, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] 0, $esi
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 0 32] $eax
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info1 <- [DW_OP_LLVM_fragment 64 64] undef
.loc 0 48 3 # cpuinfo/src/x86/isa.c:48:3
shrb $5, %sil
.Ltmp13:
andb $1, %sil
jmp .LBB0_3
.Ltmp14:
.LBB0_1:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
.loc 0 0 3 is_stmt 0 # cpuinfo/src/x86/isa.c:0:3
xorl %r10d, %r10d
xorl %esi, %esi
.Ltmp15:
.LBB0_3: # %cond.end9
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info1 <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
.loc 0 52 23 is_stmt 1 # cpuinfo/src/x86/isa.c:52:23
cmpl $-2147483640, 16(%rbp) # imm = 0x80000008
.loc 0 52 3 is_stmt 0 # cpuinfo/src/x86/isa.c:52:3
jb .LBB0_4
.Ltmp16:
# %bb.5: # %cond.true11
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuid:eax <- -2147483640
.loc 4 30 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:30:5
movl $-2147483640, %eax # imm = 0x80000008
#APP
xchgq %rbx, %rdx
cpuid
xchgq %rbx, %rdx
#NO_APP
.Ltmp17:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] undef, undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 32 32] $edx
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 0 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info <- [DW_OP_LLVM_fragment 64 64] undef
.loc 0 52 3 # cpuinfo/src/x86/isa.c:52:3
andb $1, %dl
jmp .LBB0_6
.Ltmp18:
.LBB0_4:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
.loc 0 0 3 is_stmt 0 # cpuinfo/src/x86/isa.c:0:3
xorl %edx, %edx
.Ltmp19:
.LBB0_6: # %cond.end18
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
movl $201326592, %ecx # imm = 0xC000000
.Ltmp20:
.loc 0 62 22 is_stmt 1 # cpuinfo/src/x86/isa.c:62:22
movl %r13d, %eax
andl %ecx, %eax
.loc 0 62 38 is_stmt 0 # cpuinfo/src/x86/isa.c:62:38
testl $201326592, %r14d # imm = 0xC000000
.Ltmp21:
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
je .LBB0_8
.Ltmp22:
# %bb.7: # %cond.end18
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 0 # cpuinfo/src/x86/isa.c:0:0
xorl %eax, %ecx
andnl %ecx, %r14d, %ecx
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
je .LBB0_25
.Ltmp23:
.LBB0_8:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 62 38 # cpuinfo/src/x86/isa.c:62:38
cmpl $201326592, %eax # imm = 0xC000000
movq %rsi, -104(%rbp) # 8-byte Spill
.Ltmp24:
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
jne .LBB0_9
.Ltmp25:
# %bb.10: # %if.then
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: xcr0_valid_bits <- 0
.loc 0 0 6 # cpuinfo/src/x86/isa.c:0:6
movl %edx, %r8d
xorl %esi, %esi
.Ltmp26:
.loc 0 64 22 is_stmt 1 # cpuinfo/src/x86/isa.c:64:22
cmpl $13, %r12d
.Ltmp27:
.loc 0 64 7 is_stmt 0 # cpuinfo/src/x86/isa.c:64:7
jb .LBB0_12
.Ltmp28:
# %bb.11: # %if.then22
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: xcr0_valid_bits <- 0
#DEBUG_VALUE: cpuidex:eax <- 13
#DEBUG_VALUE: cpuidex:ecx <- 0
.loc 4 56 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:56:5
movl $13, %eax
xorl %ecx, %ecx
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
.Ltmp29:
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 0 32] $eax
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 96 32] undef
.loc 4 65 4 # cpuinfo/src/x86/cpuid.h:65:4
movl %eax, %esi
.Ltmp30:
#DEBUG_VALUE: regs <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] undef, undef
#DEBUG_VALUE: regs <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] undef, undef
#DEBUG_VALUE: xcr0_valid_bits <- $eax
.LBB0_12: # %if.end
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: xcr0_valid_bits <- $rsi
#DEBUG_VALUE: xgetbv:ext_ctrl_reg <- 0
.loc 4 75 3 # cpuinfo/src/x86/cpuid.h:75:3
xorl %ecx, %ecx
#APP
.byte 15
.byte 1
.byte 208
#NO_APP
.Ltmp31:
.loc 0 77 7 # cpuinfo/src/x86/isa.c:77:7
vmovd %eax, %xmm0
.Ltmp32:
#DEBUG_VALUE: xgetbv:lo <- $eax
#DEBUG_VALUE: xgetbv:hi <- undef
.loc 4 76 34 # cpuinfo/src/x86/cpuid.h:76:34
notl %eax
.Ltmp33:
#DEBUG_VALUE: avx_regs_mask <- 6
#DEBUG_VALUE: xfeature_enabled_mask <- [DW_OP_LLVM_arg 0, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_or, DW_OP_stack_value] undef
.loc 0 77 24 # cpuinfo/src/x86/isa.c:77:24
movl %esi, %ecx
notl %ecx
.Ltmp34:
.loc 0 100 41 # cpuinfo/src/x86/isa.c:100:41
orl %eax, %ecx
.Ltmp35:
.loc 0 77 24 # cpuinfo/src/x86/isa.c:77:24
vmovq %rsi, %xmm1
vpbroadcastq %xmm1, %xmm1
vmovdqa .LCPI0_0(%rip), %xmm2 # xmm2 = [6,230]
vpand %xmm2, %xmm1, %xmm1
.Ltmp36:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- undef
#DEBUG_VALUE: avx512_regs_mask <- 230
.loc 0 77 41 is_stmt 0 # cpuinfo/src/x86/isa.c:77:41
vpcmpeqq %xmm2, %xmm1, %xmm1
.Ltmp37:
.loc 0 77 7 # cpuinfo/src/x86/isa.c:77:7
vpbroadcastd %xmm0, %xmm0
vpand %xmm2, %xmm0, %xmm0
vpcmpeqq %xmm2, %xmm0, %xmm0
vpand %xmm0, %xmm1, %xmm0
.Ltmp38:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- undef
#DEBUG_VALUE: mpx_regs_mask <- 24
.loc 0 100 7 is_stmt 1 # cpuinfo/src/x86/isa.c:100:7
testb $24, %cl
sete %al
.Ltmp39:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- undef
.loc 0 0 7 is_stmt 0 # cpuinfo/src/x86/isa.c:0:7
movl %eax, -60(%rbp) # 4-byte Spill
movl %r8d, %edx
jmp .LBB0_13
.Ltmp40:
.LBB0_9:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
vpxor %xmm0, %xmm0, %xmm0
movl $0, -60(%rbp) # 4-byte Folded Spill
.Ltmp41:
.LBB0_13: # %if.end54
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- undef
.loc 0 118 15 is_stmt 1 # cpuinfo/src/x86/isa.c:118:15
testq %r15, %r15
jne .LBB0_26
.Ltmp42:
# %bb.14:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 15 is_stmt 0 # cpuinfo/src/x86/isa.c:0:15
movq -56(%rbp), %r15 # 8-byte Reload
movq %r15, %r12
.Ltmp43:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
shrq $32, %r12
movq -48(%rbp), %r9 # 8-byte Reload
shrq $32, %r9
.Ltmp44:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r9d
movq %r14, %rax
shrq $32, %rax
movq %r13, %rdi
shrq $32, %rdi
.Ltmp45:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_convert 64 7, DW_OP_LLVM_convert 32 7, DW_OP_stack_value, DW_OP_LLVM_fragment 96 32] $rdi
leaq 2(%rbx), %rcx
movq %r14, %rsi
shrq $43, %rsi
andb $1, %sil
movabsq $87960930222080, %r8 # imm = 0x500000000000
.loc 0 118 15 # cpuinfo/src/x86/isa.c:118:15
xorq %r8, %rcx
movb %sil, (%rcx)
movq %r13, %rcx
shrq $43, %rcx
andb $1, %cl
movb %cl, 2(%rbx)
.loc 0 133 31 is_stmt 1 # cpuinfo/src/x86/isa.c:133:31
movl %r9d, %ecx
notl %ecx
andnl %r12d, %edi, %esi
orl %r12d, %ecx
andl %ecx, %eax
orl %esi, %eax
movl %eax, %r11d
orq %r9, %rdi
.Ltmp46:
.loc 0 133 6 is_stmt 0 # cpuinfo/src/x86/isa.c:133:6
leaq 3(%rbx), %rsi
.loc 0 133 10 # cpuinfo/src/x86/isa.c:133:10
shrb $5, %al
andb $1, %al
xorq %r8, %rsi
movb %al, (%rsi)
movl %edi, %eax
shrb $5, %al
andb $1, %al
movb %al, 3(%rbx)
.loc 0 139 6 is_stmt 1 # cpuinfo/src/x86/isa.c:139:6
leaq 4(%rbx), %rax
.loc 0 139 13 is_stmt 0 # cpuinfo/src/x86/isa.c:139:13
xorq %r8, %rax
xorl %ecx, %ecx
movb %cl, (%rax)
movb %dl, 4(%rbx)
.loc 0 145 6 is_stmt 1 # cpuinfo/src/x86/isa.c:145:6
leaq 5(%rbx), %rax
.loc 0 145 14 is_stmt 0 # cpuinfo/src/x86/isa.c:145:14
movq %r14, %rsi
shrq $51, %rsi
andb $1, %sil
xorq %r8, %rax
movb %sil, (%rax)
movq %r13, %rax
shrq $51, %rax
andb $1, %al
movb %al, 5(%rbx)
.loc 0 151 6 is_stmt 1 # cpuinfo/src/x86/isa.c:151:6
leaq 6(%rbx), %rax
.loc 0 151 17 is_stmt 0 # cpuinfo/src/x86/isa.c:151:17
movq %r10, %rsi
shrq $55, %rsi
andb $1, %sil
xorq %r8, %rax
movb %cl, (%rax)
movb %sil, 6(%rbx)
.loc 0 157 6 is_stmt 1 # cpuinfo/src/x86/isa.c:157:6
leaq 7(%rbx), %rax
.loc 0 157 12 is_stmt 0 # cpuinfo/src/x86/isa.c:157:12
movl %r14d, %ecx
shrb $3, %cl
movl %r13d, %edx
shrb $3, %dl
andb $1, %cl
andb $1, %dl
xorq %r8, %rax
movb %cl, (%rax)
movb %dl, 7(%rbx)
.loc 0 163 6 is_stmt 1 # cpuinfo/src/x86/isa.c:163:6
leaq 8(%rbx), %rax
.loc 0 163 13 is_stmt 0 # cpuinfo/src/x86/isa.c:163:13
movl %r15d, %ecx
shrl $29, %ecx
andb $1, %cl
xorq %r8, %rax
movb %cl, (%rax)
.loc 0 133 31 is_stmt 1 # cpuinfo/src/x86/isa.c:133:31
shrl $24, %r11d
movq -48(%rbp), %rsi # 8-byte Reload
.loc 0 163 13 # cpuinfo/src/x86/isa.c:163:13
movl %esi, %eax
shrl $29, %eax
andb $1, %al
movb %al, 8(%rbx)
.Ltmp47:
.loc 0 178 8 # cpuinfo/src/x86/isa.c:178:8
leaq 9(%rbx), %rax
.loc 0 178 15 is_stmt 0 # cpuinfo/src/x86/isa.c:178:15
andb $1, %r11b
xorq %r8, %rax
movb %r11b, (%rax)
shrq $24, %rdi
andb $1, %dil
movb %dil, 9(%rbx)
movq %r9, %rdi
.Ltmp48:
.loc 0 186 6 is_stmt 1 # cpuinfo/src/x86/isa.c:186:6
leaq 10(%rbx), %rax
movq %r14, %r9
.Ltmp49:
.loc 0 186 12 is_stmt 0 # cpuinfo/src/x86/isa.c:186:12
movl %r14d, %ecx
shrl $26, %ecx
andb $1, %cl
xorq %r8, %rax
movb %cl, (%rax)
movq %r10, %rdx
movq %r13, %r11
movl %r13d, %eax
shrl $26, %eax
andb $1, %al
movb %al, 10(%rbx)
.loc 0 215 6 is_stmt 1 # cpuinfo/src/x86/isa.c:215:6
leaq 11(%rbx), %rax
.loc 0 215 18 is_stmt 0 # cpuinfo/src/x86/isa.c:215:18
shrq $63, %r15
xorq %r8, %rax
movb %r15b, (%rax)
movq %rsi, %rax
shrq $63, %rax
movb %al, 11(%rbx)
.loc 0 221 6 is_stmt 1 # cpuinfo/src/x86/isa.c:221:6
leaq 12(%rbx), %rax
.loc 0 221 23 is_stmt 0 # cpuinfo/src/x86/isa.c:221:23
movl %r12d, %ecx
shrl $30, %ecx
andb $1, %cl
xorq %r8, %rax
movb %cl, (%rax)
movl 24(%rbp), %r10d
vpshufb .LCPI0_1(%rip), %xmm0, %xmm1 # xmm1 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,8,9,8,9]
movl %edi, %eax
shrl $30, %eax
andb $1, %al
movb %al, 12(%rbx)
movq %rdx, -96(%rbp) # 8-byte Spill
.loc 0 151 47 is_stmt 1 # cpuinfo/src/x86/isa.c:151:47
movq %rdx, %r15
shrq $32, %r15
.loc 0 239 2 # cpuinfo/src/x86/isa.c:239:2
cmpl $1, %r10d
je .LBB0_15
.Ltmp50:
# %bb.16:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $esi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
cmpl $16, %r10d
je .LBB0_18
.Ltmp51:
# %bb.17:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $esi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
cmpl $2, %r10d
jne .LBB0_19
.Ltmp52:
.LBB0_18: # %sw.bb
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $esi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 2 is_stmt 0 # cpuinfo/src/x86/isa.c:0:2
movl $256, %eax # imm = 0x100
movq -56(%rbp), %rcx # 8-byte Reload
# kill: def $ecx killed $ecx killed $rcx
.Ltmp53:
.loc 0 248 41 is_stmt 1 # cpuinfo/src/x86/isa.c:248:41
andl %eax, %ecx
andl -48(%rbp), %eax # 4-byte Folded Reload
movl $-536870912, %edx # imm = 0xE0000000
.loc 0 248 86 is_stmt 0 # cpuinfo/src/x86/isa.c:248:86
movl %r12d, %esi
.Ltmp54:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
andl %edx, %esi
.loc 0 248 65 # cpuinfo/src/x86/isa.c:248:65
orl %ecx, %esi
.loc 0 248 86 # cpuinfo/src/x86/isa.c:248:86
andl %edi, %edx
.loc 0 248 65 # cpuinfo/src/x86/isa.c:248:65
orl %eax, %edx
.loc 0 248 20 # cpuinfo/src/x86/isa.c:248:20
testl %esi, %esi
setne %cl
andnl %edx, %esi, %eax
sete %al
andb %cl, %al
testl %edx, %edx
setne %cl
jmp .LBB0_20
.Ltmp55:
.LBB0_15:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $esi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 20 # cpuinfo/src/x86/isa.c:0:20
movl $-1073741824, %eax # imm = 0xC0000000
jmp .LBB0_21
.Ltmp56:
.LBB0_19: # %sw.default132
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $esi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 255 20 is_stmt 1 # cpuinfo/src/x86/isa.c:255:20
andnl %edi, %r12d, %eax
movl $1073741824, %ecx # imm = 0x40000000
cmpl %ecx, %eax
setae %dl
movl %edi, %eax
orl %r12d, %eax
cmpl %ecx, %eax
setae %al
xorb %dl, %al
cmpl %ecx, %edi
setae %cl
.Ltmp57:
.LBB0_20: # %sw.epilog140
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 0 is_stmt 0 # cpuinfo/src/x86/isa.c:0:0
leaq 13(%rbx), %rdx
xorq %r8, %rdx
movb %al, (%rdx)
movb %cl, 13(%rbx)
.Ltmp58:
.loc 0 267 2 is_stmt 1 # cpuinfo/src/x86/isa.c:267:2
xorl %ecx, %ecx
cmpl $16, %r10d
sete %cl
orl $-2, %ecx
shll $29, %ecx
cmpl $2, %r10d
movl $-536870912, %eax # imm = 0xE0000000
cmovnel %ecx, %eax
.Ltmp59:
.LBB0_21: # %sw.epilog162
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 0 is_stmt 0 # cpuinfo/src/x86/isa.c:0:0
movl %eax, %ecx
movq %r12, -120(%rbp) # 8-byte Spill
andl %r12d, %ecx
movq %rdi, -112(%rbp) # 8-byte Spill
.Ltmp60:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 112, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
andl %edi, %eax
movl %eax, %edx
notl %edx
orl %ecx, %edx
movq -56(%rbp), %r14 # 8-byte Reload
andl %r14d, %edx
movl $256, %r10d # imm = 0x100
movq -48(%rbp), %rsi # 8-byte Reload
movl %esi, %edi
movq %rsi, %r12
andl %r10d, %edi
andnl %ecx, %edi, %ecx
andl %r10d, %edx
orl %ecx, %edx
orl %eax, %edi
testl %edx, %edx
setne %al
andnl %edi, %edx, %ecx
sete %cl
andb %al, %cl
leaq 14(%rbx), %rax
xorq %r8, %rax
testl %edi, %edi
movb %cl, (%rax)
setne 14(%rbx)
.Ltmp61:
.loc 0 282 6 is_stmt 1 # cpuinfo/src/x86/isa.c:282:6
leaq 15(%rbx), %rax
movq -72(%rbp), %r10 # 8-byte Reload
.loc 0 282 18 is_stmt 0 # cpuinfo/src/x86/isa.c:282:18
movl %r10d, %ecx
andb $1, %cl
xorq %r8, %rax
xorl %edi, %edi
movb %dil, (%rax)
movb %cl, 15(%rbx)
.loc 0 302 6 is_stmt 1 # cpuinfo/src/x86/isa.c:302:6
leaq 16(%rbx), %rax
movq %r9, %r13
.Ltmp62:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r11d
.loc 0 302 11 is_stmt 0 # cpuinfo/src/x86/isa.c:302:11
movl %r13d, %ecx
andb $1, %cl
movq %r11, %r8
movl %r8d, %edx
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 16(%rbx)
.loc 0 334 6 is_stmt 1 # cpuinfo/src/x86/isa.c:334:6
leaq 17(%rbx), %rax
.loc 0 334 12 is_stmt 0 # cpuinfo/src/x86/isa.c:334:12
movq %r9, %rcx
shrq $9, %rcx
movq %r11, %rdx
shrq $9, %rdx
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 17(%rbx)
.loc 0 341 6 is_stmt 1 # cpuinfo/src/x86/isa.c:341:6
leaq 18(%rbx), %rax
.loc 0 341 13 is_stmt 0 # cpuinfo/src/x86/isa.c:341:13
movq %r9, %rcx
shrq $19, %rcx
movq %r11, %rdx
shrq $19, %rdx
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 18(%rbx)
.loc 0 347 6 is_stmt 1 # cpuinfo/src/x86/isa.c:347:6
leaq 19(%rbx), %rax
.loc 0 347 13 is_stmt 0 # cpuinfo/src/x86/isa.c:347:13
movq %r9, %rcx
shrq $20, %rcx
movq %r11, %rdx
shrq $20, %rdx
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 19(%rbx)
.loc 0 353 6 is_stmt 1 # cpuinfo/src/x86/isa.c:353:6
leaq 20(%rbx), %rax
.loc 0 353 12 is_stmt 0 # cpuinfo/src/x86/isa.c:353:12
movl %r14d, %ecx
shrb $6, %cl
movl %r12d, %edx
shrb $6, %dl
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 20(%rbx)
.loc 0 359 6 is_stmt 1 # cpuinfo/src/x86/isa.c:359:6
leaq 21(%rbx), %rax
.loc 0 359 21 is_stmt 0 # cpuinfo/src/x86/isa.c:359:21
movl %r14d, %ecx
shrb $7, %cl
movl %r12d, %edx
shrb $7, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 21(%rbx)
.loc 0 365 21 is_stmt 1 # cpuinfo/src/x86/isa.c:365:21
vmovd %r13d, %xmm2
vpinsrd $1, %r14d, %xmm2, %xmm2
vmovd %r8d, %xmm3
vpinsrd $1, %r12d, %xmm3, %xmm3
vpinsrd $2, %r15d, %xmm3, %xmm3
vmovq %xmm2, %xmm2 # xmm2 = xmm2[0],zero
vmovdqa .LCPI0_2(%rip), %ymm4 # ymm4 = [0,0,1,1,0,2,2,2]
vpermd %ymm2, %ymm4, %ymm2
vpermd %ymm3, %ymm4, %ymm3
vmovdqa .LCPI0_3(%rip), %ymm4 # ymm4 = [268435456,4096,65536,2048,536870912,32,65536,67108864]
vpand %ymm4, %ymm2, %ymm2
vpand %ymm4, %ymm3, %ymm3
.loc 0 365 6 is_stmt 0 # cpuinfo/src/x86/isa.c:365:6
leaq 22(%rbx), %rax
.loc 0 365 21 # cpuinfo/src/x86/isa.c:365:21
vpcmpeqd %ymm4, %ymm2, %ymm5
vpxor %xmm6, %xmm6, %xmm6
vpandn %ymm3, %ymm2, %ymm2
vpcmpeqd %ymm6, %ymm2, %ymm2
vpand %ymm2, %ymm5, %ymm2
vextracti128 $1, %ymm2, %xmm5
vpackssdw %xmm5, %xmm2, %xmm2
vpcmpeqd %ymm4, %ymm3, %ymm3
vextracti128 $1, %ymm3, %xmm4
vpbroadcastw .LCPI0_4(%rip), %xmm5 # xmm5 = [1,1,1,1,1,1,1,1]
vpackssdw %xmm4, %xmm3, %xmm3
vpand %xmm2, %xmm1, %xmm2
vpand %xmm5, %xmm2, %xmm2
vpand %xmm3, %xmm1, %xmm1
vpand %xmm5, %xmm1, %xmm1
.loc 0 365 10 # cpuinfo/src/x86/isa.c:365:10
vpackuswb %xmm2, %xmm2, %xmm2
vpackuswb %xmm1, %xmm1, %xmm1
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
vmovq %xmm2, (%rax)
vmovq %xmm1, 22(%rbx)
.loc 0 413 29 is_stmt 1 # cpuinfo/src/x86/isa.c:413:29
movl %r15d, %eax
shrl $27, %eax
vpextrb $8, %xmm0, %ecx
andl %ecx, %eax
movl %ecx, %esi
movl %ecx, -76(%rbp) # 4-byte Spill
andl $1, %eax
.loc 0 413 6 is_stmt 0 # cpuinfo/src/x86/isa.c:413:6
leaq 30(%rbx), %rdx
.loc 0 413 15 # cpuinfo/src/x86/isa.c:413:15
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rdx
movb %dil, (%rdx)
movb %al, 30(%rbx)
.loc 0 419 29 is_stmt 1 # cpuinfo/src/x86/isa.c:419:29
movl %r15d, %eax
shrl $28, %eax
andl %esi, %eax
andl $1, %eax
.loc 0 419 6 is_stmt 0 # cpuinfo/src/x86/isa.c:419:6
leaq 31(%rbx), %rdx
.loc 0 419 15 # cpuinfo/src/x86/isa.c:419:15
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rdx
movb %dil, (%rdx)
movb %al, 31(%rbx)
movq -96(%rbp), %r14 # 8-byte Reload
.loc 0 425 29 is_stmt 1 # cpuinfo/src/x86/isa.c:425:29
movq %r14, %rdx
shrq $49, %rdx
.loc 0 425 6 is_stmt 0 # cpuinfo/src/x86/isa.c:425:6
leaq 32(%rbx), %rdi
.loc 0 431 29 is_stmt 1 # cpuinfo/src/x86/isa.c:431:29
movl %r15d, %esi
shrl $30, %esi
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vmovd %edx, %xmm2
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpbroadcastb .LCPI0_5(%rip), %xmm1 # xmm1 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpinsrb $1, %esi, %xmm2, %xmm2
vpand %xmm1, %xmm2, %xmm2
.loc 0 437 29 # cpuinfo/src/x86/isa.c:437:29
movl %r15d, %edx
shrl $31, %edx
.loc 0 443 31 # cpuinfo/src/x86/isa.c:443:31
movq %r14, %rsi
shrq $53, %rsi
andb $1, %sil
.loc 0 449 31 # cpuinfo/src/x86/isa.c:449:31
movl %r10d, %ecx
shrb %cl
andb $1, %cl
.loc 0 455 32 # cpuinfo/src/x86/isa.c:455:32
movl %r10d, %eax
shrb $6, %al
andb $1, %al
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpinsrb $2, %edx, %xmm2, %xmm2
.loc 0 461 33 # cpuinfo/src/x86/isa.c:461:33
movq %r10, %rdx
shrq $12, %rdx
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
movzbl %sil, %esi
vpinsrb $3, %esi, %xmm2, %xmm2
.loc 0 461 33 # cpuinfo/src/x86/isa.c:461:33
andb $1, %dl
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
movzbl %cl, %ecx
vpinsrb $4, %ecx, %xmm2, %xmm3
.loc 0 467 36 # cpuinfo/src/x86/isa.c:467:36
movq %r10, %rcx
shrq $14, %rcx
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpbroadcastb .LCPI0_6(%rip), %xmm2 # xmm2 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
.loc 0 467 36 # cpuinfo/src/x86/isa.c:467:36
andb $1, %cl
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
movzbl %al, %eax
vpinsrb $5, %eax, %xmm3, %xmm3
movzbl %dl, %eax
vpinsrb $6, %eax, %xmm3, %xmm3
movzbl %cl, %eax
vpinsrb $7, %eax, %xmm3, %xmm3
.loc 0 425 15 is_stmt 0 # cpuinfo/src/x86/isa.c:425:15
movabsq $87960930222080, %rax # imm = 0x500000000000
xorq %rax, %rdi
movq $0, (%rdi)
.loc 0 473 31 is_stmt 1 # cpuinfo/src/x86/isa.c:473:31
movq %r10, %rax
shrq $11, %rax
andb $1, %al
.loc 0 473 6 is_stmt 0 # cpuinfo/src/x86/isa.c:473:6
leaq 40(%rbx), %r11
.Ltmp63:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r8d
.loc 0 473 17 # cpuinfo/src/x86/isa.c:473:17
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %r11
.loc 0 479 34 is_stmt 1 # cpuinfo/src/x86/isa.c:479:34
movq %r10, %rsi
shrq $34, %rsi
andb $1, %sil
.loc 0 479 6 is_stmt 0 # cpuinfo/src/x86/isa.c:479:6
leaq 43(%rbx), %r12
.loc 0 479 20 # cpuinfo/src/x86/isa.c:479:20
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %r12
.loc 0 485 34 is_stmt 1 # cpuinfo/src/x86/isa.c:485:34
movq %r10, %rcx
shrq $35, %rcx
andb $1, %cl
movq %r15, -88(%rbp) # 8-byte Spill
.loc 0 485 6 is_stmt 0 # cpuinfo/src/x86/isa.c:485:6
leaq 44(%rbx), %r15
.loc 0 485 20 # cpuinfo/src/x86/isa.c:485:20
movabsq $87960930222080, %rdi # imm = 0x500000000000
xorq %rdi, %r15
.loc 0 491 39 is_stmt 1 # cpuinfo/src/x86/isa.c:491:39
shrq $40, %r10
andb $1, %r10b
.loc 0 491 6 is_stmt 0 # cpuinfo/src/x86/isa.c:491:6
leaq 42(%rbx), %r9
.loc 0 491 25 # cpuinfo/src/x86/isa.c:491:25
movabsq $87960930222080, %rdx # imm = 0x500000000000
xorq %rdx, %r9
.loc 0 473 31 is_stmt 1 # cpuinfo/src/x86/isa.c:473:31
testb $1, -76(%rbp) # 1-byte Folded Reload
.loc 0 365 10 # cpuinfo/src/x86/isa.c:365:10
vpxor %xmm4, %xmm4, %xmm4
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpshufb %xmm2, %xmm0, %xmm0
vpsllw $7, %xmm0, %xmm0
vpbroadcastb .LCPI0_7(%rip), %xmm2 # xmm2 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128]
vpand %xmm2, %xmm0, %xmm0
vpcmpgtb %xmm0, %xmm4, %xmm0
vpand %xmm3, %xmm0, %xmm0
.loc 0 425 15 is_stmt 0 # cpuinfo/src/x86/isa.c:425:15
vmovq %xmm0, 32(%rbx)
movl $0, %edx
.loc 0 473 17 is_stmt 1 # cpuinfo/src/x86/isa.c:473:17
movb %dl, (%r11)
.loc 0 473 31 is_stmt 0 # cpuinfo/src/x86/isa.c:473:31
movzbl %al, %eax
cmovel %edx, %eax
.loc 0 473 17 # cpuinfo/src/x86/isa.c:473:17
movb %al, 40(%rbx)
.loc 0 479 34 is_stmt 1 # cpuinfo/src/x86/isa.c:479:34
movzbl %sil, %eax
cmovel %edx, %eax
.loc 0 479 20 is_stmt 0 # cpuinfo/src/x86/isa.c:479:20
movb %dl, (%r12)
.loc 0 485 34 is_stmt 1 # cpuinfo/src/x86/isa.c:485:34
movzbl %cl, %ecx
cmovel %edx, %ecx
.loc 0 479 20 # cpuinfo/src/x86/isa.c:479:20
movb %al, 43(%rbx)
.loc 0 485 20 # cpuinfo/src/x86/isa.c:485:20
movb %dl, (%r15)
movb %cl, 44(%rbx)
.loc 0 491 39 # cpuinfo/src/x86/isa.c:491:39
movzbl %r10b, %eax
cmovel %edx, %eax
.loc 0 491 25 is_stmt 0 # cpuinfo/src/x86/isa.c:491:25
movb %dl, (%r9)
movb %al, 42(%rbx)
.loc 0 497 31 is_stmt 1 # cpuinfo/src/x86/isa.c:497:31
movzbl -104(%rbp), %r9d # 1-byte Folded Reload
cmovel %edx, %r9d
.loc 0 497 6 is_stmt 0 # cpuinfo/src/x86/isa.c:497:6
leaq 41(%rbx), %rax
.loc 0 497 17 # cpuinfo/src/x86/isa.c:497:17
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
movb %dl, (%rax)
.loc 0 503 6 is_stmt 1 # cpuinfo/src/x86/isa.c:503:6
leaq 45(%rbx), %r11
.loc 0 503 10 is_stmt 0 # cpuinfo/src/x86/isa.c:503:10
movq %r14, %rcx
shrq $36, %rcx
movl %ecx, %r15d
andb $1, %r15b
movabsq $87960930222080, %rax # imm = 0x500000000000
xorq %rax, %r11
.loc 0 509 6 is_stmt 1 # cpuinfo/src/x86/isa.c:509:6
leaq 46(%rbx), %rsi
movq -88(%rbp), %rax # 8-byte Reload
# kill: def $eax killed $eax killed $rax
.loc 0 509 10 is_stmt 0 # cpuinfo/src/x86/isa.c:509:10
shrl $11, %eax
andl $1, %eax
movabsq $87960930222080, %rdx # imm = 0x500000000000
xorq %rdx, %rsi
.loc 0 515 22 is_stmt 1 # cpuinfo/src/x86/isa.c:515:22
orb %al, %cl
.loc 0 515 12 is_stmt 0 # cpuinfo/src/x86/isa.c:515:12
andb $1, %cl
.loc 0 515 6 # cpuinfo/src/x86/isa.c:515:6
leaq 47(%rbx), %r12
.loc 0 515 12 # cpuinfo/src/x86/isa.c:515:12
movabsq $87960930222080, %rdx # imm = 0x500000000000
xorq %rdx, %r12
.loc 0 521 21 is_stmt 1 # cpuinfo/src/x86/isa.c:521:21
movq %r14, %rdi
shrq $46, %rdi
andb $1, %dil
cmpb $0, -60(%rbp) # 1-byte Folded Reload
movzbl %dil, %r10d
movl $0, %edx
cmovel %edx, %r10d
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %r13d, %edi
shrl $13, %edi
movzbl %dil, %edi
vmovd %edi, %xmm0
movl %r13d, %edi
shrl $22, %edi
vpinsrb $2, %edi, %xmm0, %xmm0
movq -56(%rbp), %rdi # 8-byte Reload
vpinsrb $3, %edi, %xmm0, %xmm0
.loc 0 576 12 # cpuinfo/src/x86/isa.c:576:12
movl %edi, %edx
shrb $5, %dl
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movzbl %dl, %edx
vpinsrb $5, %edx, %xmm0, %xmm0
.loc 0 497 17 # cpuinfo/src/x86/isa.c:497:17
movb %r9b, 41(%rbx)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %r13d, %edx
shrl $23, %edx
vpinsrb $6, %edx, %xmm0, %xmm0
.loc 0 503 10 # cpuinfo/src/x86/isa.c:503:10
xorl %edx, %edx
movb %dl, (%r11)
xorl %r11d, %r11d
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %edi, %edx
shrl $21, %edx
vpinsrb $7, %edx, %xmm0, %xmm0
.loc 0 612 10 # cpuinfo/src/x86/isa.c:612:10
movl %r13d, %edx
shrl $25, %edx
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $11, %edx, %xmm0, %xmm0
.loc 0 624 16 # cpuinfo/src/x86/isa.c:624:16
movl %r13d, %edx
shrb %dl
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movzbl %dl, %edx
vpinsrb $13, %edx, %xmm0, %xmm0
movq %r8, %rdx
shrq $13, %rdx
vmovd %edx, %xmm2
.loc 0 549 11 # cpuinfo/src/x86/isa.c:549:11
movq %r14, %rdx
shrq $56, %rdx
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $1, %edx, %xmm2, %xmm2
movl %r8d, %edx
shrl $22, %edx
vpinsrb $2, %edx, %xmm2, %xmm2
movq -48(%rbp), %rdi # 8-byte Reload
.loc 0 576 12 # cpuinfo/src/x86/isa.c:576:12
movl %edi, %edx
shrb $5, %dl
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $3, %edi, %xmm2, %xmm2
movq -88(%rbp), %r9 # 8-byte Reload
vpinsrb $4, %r9d, %xmm2, %xmm2
movzbl %dl, %edx
vpinsrb $5, %edx, %xmm2, %xmm2
.loc 0 503 10 # cpuinfo/src/x86/isa.c:503:10
movb %r15b, 45(%rbx)
movq -72(%rbp), %r15 # 8-byte Reload
.loc 0 509 10 # cpuinfo/src/x86/isa.c:509:10
movb %r11b, (%rsi)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %r8d, %edx
shrl $23, %edx
vpinsrb $6, %edx, %xmm2, %xmm2
.loc 0 509 10 # cpuinfo/src/x86/isa.c:509:10
movb %al, 46(%rbx)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %edi, %eax
shrl $21, %eax
vpinsrb $7, %eax, %xmm2, %xmm2
xorl %edx, %edx
.loc 0 515 12 # cpuinfo/src/x86/isa.c:515:12
movb %dl, (%r12)
.loc 0 594 10 # cpuinfo/src/x86/isa.c:594:10
movq %r14, %rax
shrq $35, %rax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $8, %eax, %xmm2, %xmm2
.loc 0 515 12 # cpuinfo/src/x86/isa.c:515:12
movb %cl, 47(%rbx)
.loc 0 600 11 # cpuinfo/src/x86/isa.c:600:11
movq %r14, %rax
shrq $40, %rax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $9, %eax, %xmm2, %xmm2
.loc 0 606 10 # cpuinfo/src/x86/isa.c:606:10
movq %r14, %rax
shrq $51, %rax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $10, %eax, %xmm2, %xmm2
.loc 0 612 10 # cpuinfo/src/x86/isa.c:612:10
movl %r8d, %eax
shrl $25, %eax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $11, %eax, %xmm2, %xmm2
.loc 0 521 6 # cpuinfo/src/x86/isa.c:521:6
leaq 48(%rbx), %rax
.loc 0 521 10 is_stmt 0 # cpuinfo/src/x86/isa.c:521:10
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
movb %dl, (%rax)
xorl %edx, %edx
.loc 0 543 17 is_stmt 1 # cpuinfo/src/x86/isa.c:543:17
movl %r15d, %eax
shrl $9, %eax
vpinsrb $12, %eax, %xmm2, %xmm2
.loc 0 624 16 # cpuinfo/src/x86/isa.c:624:16
movl %r8d, %eax
shrb %al
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movzbl %al, %eax
vpinsrb $13, %eax, %xmm2, %xmm2
.loc 0 521 10 # cpuinfo/src/x86/isa.c:521:10
movb %r10b, 48(%rbx)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %r15d, %eax
shrl $10, %eax
vpinsrb $14, %eax, %xmm2, %xmm2
movl %r15d, %eax
shrl $8, %eax
vpinsrb $15, %eax, %xmm2, %xmm2
.loc 0 543 6 is_stmt 0 # cpuinfo/src/x86/isa.c:543:6
leaq 49(%rbx), %rax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpand %xmm1, %xmm0, %xmm0
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
vmovdqu %xmm0, (%rax)
vpand %xmm1, %xmm2, %xmm0
vmovdqu %xmm0, 49(%rbx)
.loc 0 642 6 is_stmt 1 # cpuinfo/src/x86/isa.c:642:6
leaq 65(%rbx), %rax
.loc 0 642 13 is_stmt 0 # cpuinfo/src/x86/isa.c:642:13
shrl $30, %r13d
andb $1, %r13b
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
movb %r13b, (%rax)
shrl $30, %r8d
.Ltmp64:
andb $1, %r8b
movb %r8b, 65(%rbx)
movabsq $87960930222080, %r8 # imm = 0x500000000000
.loc 0 648 6 is_stmt 1 # cpuinfo/src/x86/isa.c:648:6
leaq 66(%rbx), %rax
.loc 0 648 13 is_stmt 0 # cpuinfo/src/x86/isa.c:648:13
xorq %r8, %rax
movb %dl, (%rax)
shrq $50, %r14
andb $1, %r14b
movb %r14b, 66(%rbx)
.loc 0 654 6 is_stmt 1 # cpuinfo/src/x86/isa.c:654:6
leaq 67(%rbx), %rax
.loc 0 654 10 is_stmt 0 # cpuinfo/src/x86/isa.c:654:10
xorq %r8, %rax
movb %dl, (%rax)
movq %r9, %rax
shrl $29, %eax
andb $1, %al
movb %al, 67(%rbx)
.Ltmp65:
.loc 0 656 13 is_stmt 1 # cpuinfo/src/x86/isa.c:656:13
cmpl $11, 24(%rbp)
.Ltmp66:
.loc 0 656 6 is_stmt 0 # cpuinfo/src/x86/isa.c:656:6
jne .LBB0_24
.Ltmp67:
# %bb.22: # %if.then578
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 112, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: cpuid:eax <- -1073741824
.loc 4 30 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:30:5
movl $-1073741824, %eax # imm = 0xC0000000
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
.Ltmp68:
#DEBUG_VALUE: padlock_meta_info <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] 0, $eax
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 0 32] $eax
#DEBUG_VALUE: max_padlock_index <- $eax
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: padlock_meta_info <- [DW_OP_LLVM_fragment 64 64] undef
#DEBUG_VALUE: padlock_info_index <- -1073741823
.loc 0 660 25 # cpuinfo/src/x86/isa.c:660:25
cmpl $-1073741823, %eax # imm = 0xC0000001
.Ltmp69:
.loc 0 660 7 is_stmt 0 # cpuinfo/src/x86/isa.c:660:7
jb .LBB0_24
.Ltmp70:
# %bb.23: # %if.then583
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 112, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: max_padlock_index <- $eax
#DEBUG_VALUE: padlock_info_index <- -1073741823
#DEBUG_VALUE: cpuid:eax <- -1073741823
.loc 4 30 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:30:5
movl $-1073741823, %eax # imm = 0xC0000001
.Ltmp71:
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
.Ltmp72:
#DEBUG_VALUE: padlock_info <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] undef, undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 96 32] $edx
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 0 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: padlock_info <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: padlock_rng_mask <- 12
.loc 0 669 52 # cpuinfo/src/x86/isa.c:669:52
movl %edx, %ecx
notl %ecx
.loc 0 669 8 is_stmt 0 # cpuinfo/src/x86/isa.c:669:8
leaq 68(%rbx), %rsi
.loc 0 669 12 # cpuinfo/src/x86/isa.c:669:12
xorq %r8, %rsi
xorl %r9d, %r9d
.loc 0 669 52 # cpuinfo/src/x86/isa.c:669:52
testb $12, %cl
.loc 0 669 12 # cpuinfo/src/x86/isa.c:669:12
movb %r9b, (%rsi)
sete 68(%rbx)
.Ltmp73:
#DEBUG_VALUE: padlock_ace_mask <- 192
.loc 0 701 32 is_stmt 1 # cpuinfo/src/x86/isa.c:701:32
vmovd %edx, %xmm0
.loc 0 677 8 # cpuinfo/src/x86/isa.c:677:8
leaq 69(%rbx), %r14
.Ltmp74:
#DEBUG_VALUE: padlock_ace2_mask <- 768
.loc 0 685 8 # cpuinfo/src/x86/isa.c:685:8
leaq 70(%rbx), %r11
.Ltmp75:
#DEBUG_VALUE: padlock_phe_mask <- 3072
.loc 0 693 8 # cpuinfo/src/x86/isa.c:693:8
leaq 71(%rbx), %r10
.Ltmp76:
#DEBUG_VALUE: padlock_pmm_mask <- 12288
.loc 0 701 32 # cpuinfo/src/x86/isa.c:701:32
vpbroadcastd %xmm0, %xmm0
vmovdqa .LCPI0_8(%rip), %xmm1 # xmm1 = [12288,3072,768,192]
vpand %xmm1, %xmm0, %xmm0
.loc 0 701 52 is_stmt 0 # cpuinfo/src/x86/isa.c:701:52
vpcmpeqd %xmm1, %xmm0, %xmm0
vmovmskps %xmm0, %esi
movl %esi, %eax
andb $2, %al
shrb %al
movl %esi, %edx
andb $4, %dl
shrb $2, %dl
movl %esi, %ecx
shrb $3, %cl
.loc 0 677 12 is_stmt 1 # cpuinfo/src/x86/isa.c:677:12
xorq %r8, %r14
movb %r9b, (%r14)
movb %cl, 69(%rbx)
.loc 0 685 13 # cpuinfo/src/x86/isa.c:685:13
xorq %r8, %r11
movb %r9b, (%r11)
movb %dl, 70(%rbx)
.loc 0 693 12 # cpuinfo/src/x86/isa.c:693:12
xorq %r8, %r10
movb %r9b, (%r10)
movb %al, 71(%rbx)
.loc 0 701 8 # cpuinfo/src/x86/isa.c:701:8
leaq 72(%rbx), %rax
.loc 0 701 12 is_stmt 0 # cpuinfo/src/x86/isa.c:701:12
andb $1, %sil
xorq %r8, %rax
movb %r9b, (%rax)
movb %sil, 72(%rbx)
.Ltmp77:
.LBB0_24: # %if.end611
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 112, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 709 6 is_stmt 1 # cpuinfo/src/x86/isa.c:709:6
leaq 73(%rbx), %rax
movq -56(%rbp), %rdx # 8-byte Reload
.loc 0 709 10 is_stmt 0 # cpuinfo/src/x86/isa.c:709:10
shrq $15, %rdx
movq -48(%rbp), %rcx # 8-byte Reload
shrq $15, %rcx
andb $1, %dl
andb $1, %cl
xorq %r8, %rax
movb %dl, (%rax)
movb %cl, 73(%rbx)
movq -120(%rbp), %rcx # 8-byte Reload
.loc 0 715 13 is_stmt 1 # cpuinfo/src/x86/isa.c:715:13
shrl $27, %ecx
movq -112(%rbp), %rdx # 8-byte Reload
shrl $27, %edx
andb $1, %cl
andb $1, %dl
movq %rbx, %rax
xorq %r8, %rax
movb %cl, (%rax)
movb %dl, (%rbx)
.loc 0 721 6 # cpuinfo/src/x86/isa.c:721:6
leaq 1(%rbx), %rax
.loc 0 721 12 is_stmt 0 # cpuinfo/src/x86/isa.c:721:12
shrq $22, %r15
andb $1, %r15b
xorq %r8, %rax
movb $0, (%rax)
movb %r15b, 1(%rbx)
.loc 0 724 1 is_stmt 1 # cpuinfo/src/x86/isa.c:724:1
movq %rbx, %rax
addq $88, %rsp
popq %rbx
.Ltmp78:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rax+0]
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
.cfi_def_cfa %rsp, 8
vzeroupper
retq
.Ltmp79:
.LBB0_25:
.cfi_def_cfa %rbp, 16
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
xorl %edi, %edi
callq __msan_warning_with_origin_noreturn@PLT
.Ltmp80:
.LBB0_26:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rbx+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r13d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 48, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 118 15 # cpuinfo/src/x86/isa.c:118:15
xorl %edi, %edi
callq __msan_warning_with_origin_noreturn@PLT
.Ltmp81:
.Lfunc_end0:
.size cpuinfo_x86_detect_isa, .Lfunc_end0-cpuinfo_x86_detect_isa
.cfi_endproc
.file 5 "cpuinfo/src/x86" "api.h" md5 0x27c8ee589f06b55198de5debd23b68da
# -- End function
.section .text.msan.module_ctor,"axR",@progbits
.p2align 4, 0x90 # -- Begin function msan.module_ctor
.type msan.module_ctor,@function
msan.module_ctor: # @msan.module_ctor
.Lfunc_begin1:
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
callq __msan_init@PLT
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end1:
.size msan.module_ctor, .Lfunc_end1-msan.module_ctor
.cfi_endproc
# -- End function
.section .init_array.0,"aw",@init_array
.p2align 3
.quad msan.module_ctor
.section .debug_loclists,"",@progbits
.long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
.Ldebug_list_header_start0:
.short 5 # Version
.byte 8 # Address size
.byte 0 # Segment selector size
.long 25 # Offset entry count
.Lloclists_table_base0:
.long .Ldebug_loc0-.Lloclists_table_base0
.long .Ldebug_loc1-.Lloclists_table_base0
.long .Ldebug_loc2-.Lloclists_table_base0
.long .Ldebug_loc3-.Lloclists_table_base0
.long .Ldebug_loc4-.Lloclists_table_base0
.long .Ldebug_loc5-.Lloclists_table_base0
.long .Ldebug_loc6-.Lloclists_table_base0
.long .Ldebug_loc7-.Lloclists_table_base0
.long .Ldebug_loc8-.Lloclists_table_base0
.long .Ldebug_loc9-.Lloclists_table_base0
.long .Ldebug_loc10-.Lloclists_table_base0
.long .Ldebug_loc11-.Lloclists_table_base0
.long .Ldebug_loc12-.Lloclists_table_base0
.long .Ldebug_loc13-.Lloclists_table_base0
.long .Ldebug_loc14-.Lloclists_table_base0
.long .Ldebug_loc15-.Lloclists_table_base0
.long .Ldebug_loc16-.Lloclists_table_base0
.long .Ldebug_loc17-.Lloclists_table_base0
.long .Ldebug_loc18-.Lloclists_table_base0
.long .Ldebug_loc19-.Lloclists_table_base0
.long .Ldebug_loc20-.Lloclists_table_base0
.long .Ldebug_loc21-.Lloclists_table_base0
.long .Ldebug_loc22-.Lloclists_table_base0
.long .Ldebug_loc23-.Lloclists_table_base0
.long .Ldebug_loc24-.Lloclists_table_base0
.Ldebug_loc0:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp2-.Lfunc_begin0 # ending offset
.byte 3 # Loc expr size
.byte 84 # DW_OP_reg4
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp2-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp3-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 84 # DW_OP_reg4
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 93 # super-register DW_OP_reg13
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp3-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp45-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 93 # super-register DW_OP_reg13
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp45-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp46-.Lfunc_begin0 # ending offset
.byte 20 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 93 # super-register DW_OP_reg13
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 117 # DW_OP_breg5
.byte 0 # 0
.byte 168 # DW_OP_convert
.asciz "\253\200\200" #
.byte 168 # DW_OP_convert
.asciz "\257\200\200" #
.byte 159 # DW_OP_stack_value
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp46-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp62-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 93 # super-register DW_OP_reg13
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp62-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp63-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 91 # super-register DW_OP_reg11
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp63-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp64-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 88 # super-register DW_OP_reg8
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 93 # super-register DW_OP_reg13
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc1:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp2-.Lfunc_begin0 # ending offset
.byte 3 # Loc expr size
.byte 82 # DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp2-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp4-.Lfunc_begin0 # ending offset
.byte 7 # Loc expr size
.byte 82 # DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp4-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp44-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp44-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp49-.Lfunc_begin0 # ending offset
.byte 9 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 89 # super-register DW_OP_reg9
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp49-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp50-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp50-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp54-.Lfunc_begin0 # ending offset
.byte 8 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 84 # super-register DW_OP_reg4
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 85 # super-register DW_OP_reg5
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp54-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp55-.Lfunc_begin0 # ending offset
.byte 9 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 85 # super-register DW_OP_reg5
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp55-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp57-.Lfunc_begin0 # ending offset
.byte 8 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 84 # super-register DW_OP_reg4
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 85 # super-register DW_OP_reg5
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp57-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp60-.Lfunc_begin0 # ending offset
.byte 9 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 85 # super-register DW_OP_reg5
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp60-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp67-.Lfunc_begin0 # ending offset
.byte 11 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 118 # DW_OP_breg6
.byte 144 # -112
.byte 127 #
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp67-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp79-.Lfunc_begin0 # ending offset
.byte 10 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 85 # super-register DW_OP_reg5
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 118 # DW_OP_breg6
.byte 144 # -112
.byte 127 #
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 80 # -48
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc2:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp4-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 89 # super-register DW_OP_reg9
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp4-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp43-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 92 # super-register DW_OP_reg12
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp43-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp79-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 163 # DW_OP_entry_value
.byte 1 # 1
.byte 89 # super-register DW_OP_reg9
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 92 # super-register DW_OP_reg12
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc3:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp4-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 117 # DW_OP_breg5
.byte 0 # 0
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp4-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp78-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 115 # DW_OP_breg3
.byte 0 # 0
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp78-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp79-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 112 # DW_OP_breg0
.byte 0 # 0
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 115 # DW_OP_breg3
.byte 0 # 0
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc4:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp6-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp7-.Lfunc_begin0 # ending offset
.byte 11 # Loc expr size
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 90 # super-register DW_OP_reg10
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 82 # super-register DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 81 # super-register DW_OP_reg1
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp7-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp8-.Lfunc_begin0 # ending offset
.byte 8 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 82 # super-register DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 81 # super-register DW_OP_reg1
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp8-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp11-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 82 # super-register DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc5:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp12-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp13-.Lfunc_begin0 # ending offset
.byte 27 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 16 # DW_OP_constu
.byte 32 # 32
.byte 36 # DW_OP_shl
.byte 116 # DW_OP_breg4
.byte 0 # 0
.byte 16 # DW_OP_constu
.byte 255 # 4294967295
.byte 255 #
.byte 255 #
.byte 255 #
.byte 15 #
.byte 26 # DW_OP_and
.byte 168 # DW_OP_convert
.asciz "\257\200\200" #
.byte 168 # DW_OP_convert
.asciz "\253\200\200" #
.byte 33 # DW_OP_or
.byte 159 # DW_OP_stack_value
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc6:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp15-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 12 # Loc expr size
.byte 16 # DW_OP_constu
.byte 136 # 18446744071562067976
.byte 128 #
.byte 128 #
.byte 128 #
.byte 248 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc7:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp36-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp40-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp41-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp80-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc8:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp38-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp40-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp41-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp80-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc9:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp39-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp40-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp41-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp80-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc10:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 201326592
.byte 128 #
.byte 128 #
.byte 96 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc11:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp25-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp30-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp30-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 84 # DW_OP_reg4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc12:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp29-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp30-.Lfunc_begin0 # ending offset
.byte 3 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc13:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp32-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp33-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc14:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp33-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 54 # DW_OP_lit6
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc15:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp36-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 230 # 230
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc16:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp38-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 72 # DW_OP_lit24
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc17:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp68-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp70-.Lfunc_begin0 # ending offset
.byte 24 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 112 # DW_OP_breg0
.byte 0 # 0
.byte 16 # DW_OP_constu
.byte 255 # 4294967295
.byte 255 #
.byte 255 #
.byte 255 #
.byte 15 #
.byte 26 # DW_OP_and
.byte 168 # DW_OP_convert
.asciz "\257\200\200" #
.byte 168 # DW_OP_convert
.asciz "\253\200\200" #
.byte 33 # DW_OP_or
.byte 159 # DW_OP_stack_value
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc18:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp68-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp71-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc19:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp68-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp77-.Lfunc_begin0 # ending offset
.byte 12 # Loc expr size
.byte 16 # DW_OP_constu
.byte 129 # 18446744072635809793
.byte 128 #
.byte 128 #
.byte 128 #
.byte 252 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc20:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp72-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp77-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 60 # DW_OP_lit12
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc21:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp73-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp77-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 192 # 192
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc22:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp74-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp77-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 768
.byte 6 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc23:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp75-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp77-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 3072
.byte 24 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc24:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp76-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp77-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 12288
.byte 96 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_list_header_end0:
.section .debug_abbrev,"",@progbits
.byte 1 # Abbreviation Code
.byte 17 # DW_TAG_compile_unit
.byte 1 # DW_CHILDREN_yes
.byte 37 # DW_AT_producer
.byte 37 # DW_FORM_strx1
.byte 19 # DW_AT_language
.byte 5 # DW_FORM_data2
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 114 # DW_AT_str_offsets_base
.byte 23 # DW_FORM_sec_offset
.byte 16 # DW_AT_stmt_list
.byte 23 # DW_FORM_sec_offset
.byte 27 # DW_AT_comp_dir
.byte 37 # DW_FORM_strx1
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 115 # DW_AT_addr_base
.byte 23 # DW_FORM_sec_offset
.byte 116 # DW_AT_rnglists_base
.byte 23 # DW_FORM_sec_offset
.ascii "\214\001" # DW_AT_loclists_base
.byte 23 # DW_FORM_sec_offset
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 2 # Abbreviation Code
.byte 36 # DW_TAG_base_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 62 # DW_AT_encoding
.byte 11 # DW_FORM_data1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 3 # Abbreviation Code
.byte 4 # DW_TAG_enumeration_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 4 # Abbreviation Code
.byte 40 # DW_TAG_enumerator
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 28 # DW_AT_const_value
.byte 15 # DW_FORM_udata
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 5 # Abbreviation Code
.byte 4 # DW_TAG_enumeration_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 6 # Abbreviation Code
.byte 22 # DW_TAG_typedef
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 7 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 32 # DW_AT_inline
.byte 33 # DW_FORM_implicit_const
.byte 1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 8 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 9 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 10 # Abbreviation Code
.byte 19 # DW_TAG_structure_type
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 11 # Abbreviation Code
.byte 13 # DW_TAG_member
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 56 # DW_AT_data_member_location
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 12 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 54 # DW_AT_calling_convention
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 32 # DW_AT_inline
.byte 33 # DW_FORM_implicit_const
.byte 1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 13 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 122 # DW_AT_call_all_calls
.byte 25 # DW_FORM_flag_present
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 63 # DW_AT_external
.byte 25 # DW_FORM_flag_present
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 14 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 15 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 16 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 17 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 18 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 19 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 11 # DW_FORM_data1
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 20 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 28 # DW_AT_const_value
.byte 15 # DW_FORM_udata
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 21 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 22 # Abbreviation Code
.byte 11 # DW_TAG_lexical_block
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 23 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 85 # DW_AT_ranges
.byte 35 # DW_FORM_rnglistx
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 11 # DW_FORM_data1
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 24 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 25 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 5 # DW_FORM_data2
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 26 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 27 # Abbreviation Code
.byte 19 # DW_TAG_structure_type
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 28 # Abbreviation Code
.byte 13 # DW_TAG_member
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 56 # DW_AT_data_member_location
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 29 # Abbreviation Code
.byte 38 # DW_TAG_const_type
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 0 # EOM(3)
.section .debug_info,"",@progbits
.Lcu_begin0:
.long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
.Ldebug_info_start0:
.short 5 # DWARF version number
.byte 1 # DWARF Unit Type
.byte 8 # Address Size (in bytes)
.long .debug_abbrev # Offset Into Abbrev. Section
.byte 1 # Abbrev [1] 0xc:0x8f5 DW_TAG_compile_unit
.byte 0 # DW_AT_producer
.short 12 # DW_AT_language
.byte 1 # DW_AT_name
.long .Lstr_offsets_base0 # DW_AT_str_offsets_base
.long .Lline_table_start0 # DW_AT_stmt_list
.byte 2 # DW_AT_comp_dir
.byte 0 # DW_AT_low_pc
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
.long .Laddr_table_base0 # DW_AT_addr_base
.long .Lrnglists_table_base0 # DW_AT_rnglists_base
.long .Lloclists_table_base0 # DW_AT_loclists_base
.byte 2 # Abbrev [2] 0x2b:0x4 DW_TAG_base_type
.byte 169 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 8 # DW_AT_byte_size
.byte 2 # Abbrev [2] 0x2f:0x4 DW_TAG_base_type
.byte 168 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 4 # DW_AT_byte_size
.byte 3 # Abbrev [3] 0x33:0x64 DW_TAG_enumeration_type
.long 151 # DW_AT_type
.byte 34 # DW_AT_name
.byte 4 # DW_AT_byte_size
.byte 1 # DW_AT_decl_file
.byte 137 # DW_AT_decl_line
.byte 4 # Abbrev [4] 0x3c:0x3 DW_TAG_enumerator
.byte 4 # DW_AT_name
.byte 0 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x3f:0x3 DW_TAG_enumerator
.byte 5 # DW_AT_name
.byte 1 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x42:0x3 DW_TAG_enumerator
.byte 6 # DW_AT_name
.byte 2 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x45:0x3 DW_TAG_enumerator
.byte 7 # DW_AT_name
.byte 3 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x48:0x3 DW_TAG_enumerator
.byte 8 # DW_AT_name
.byte 4 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x4b:0x3 DW_TAG_enumerator
.byte 9 # DW_AT_name
.byte 5 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x4e:0x3 DW_TAG_enumerator
.byte 10 # DW_AT_name
.byte 6 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x51:0x3 DW_TAG_enumerator
.byte 11 # DW_AT_name
.byte 7 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x54:0x3 DW_TAG_enumerator
.byte 12 # DW_AT_name
.byte 8 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x57:0x3 DW_TAG_enumerator
.byte 13 # DW_AT_name
.byte 9 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x5a:0x3 DW_TAG_enumerator
.byte 14 # DW_AT_name
.byte 10 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x5d:0x3 DW_TAG_enumerator
.byte 15 # DW_AT_name
.byte 11 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x60:0x3 DW_TAG_enumerator
.byte 16 # DW_AT_name
.byte 12 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x63:0x3 DW_TAG_enumerator
.byte 17 # DW_AT_name
.byte 13 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x66:0x3 DW_TAG_enumerator
.byte 18 # DW_AT_name
.byte 14 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x69:0x3 DW_TAG_enumerator
.byte 19 # DW_AT_name
.byte 15 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x6c:0x3 DW_TAG_enumerator
.byte 20 # DW_AT_name
.byte 16 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x6f:0x3 DW_TAG_enumerator
.byte 21 # DW_AT_name
.byte 30 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x72:0x3 DW_TAG_enumerator
.byte 22 # DW_AT_name
.byte 31 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x75:0x3 DW_TAG_enumerator
.byte 23 # DW_AT_name
.byte 32 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x78:0x3 DW_TAG_enumerator
.byte 24 # DW_AT_name
.byte 33 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x7b:0x3 DW_TAG_enumerator
.byte 25 # DW_AT_name
.byte 34 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x7e:0x3 DW_TAG_enumerator
.byte 26 # DW_AT_name
.byte 50 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x81:0x3 DW_TAG_enumerator
.byte 27 # DW_AT_name
.byte 51 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x84:0x3 DW_TAG_enumerator
.byte 28 # DW_AT_name
.byte 52 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x87:0x3 DW_TAG_enumerator
.byte 29 # DW_AT_name
.byte 53 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x8a:0x3 DW_TAG_enumerator
.byte 30 # DW_AT_name
.byte 54 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x8d:0x3 DW_TAG_enumerator
.byte 31 # DW_AT_name
.byte 55 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x90:0x3 DW_TAG_enumerator
.byte 32 # DW_AT_name
.byte 56 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x93:0x3 DW_TAG_enumerator
.byte 33 # DW_AT_name
.byte 57 # DW_AT_const_value
.byte 0 # End Of Children Mark
.byte 2 # Abbrev [2] 0x97:0x4 DW_TAG_base_type
.byte 3 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 4 # DW_AT_byte_size
.byte 5 # Abbrev [5] 0x9b:0x29c DW_TAG_enumeration_type
.long 151 # DW_AT_type
.byte 150 # DW_AT_name
.byte 4 # DW_AT_byte_size
.byte 1 # DW_AT_decl_file
.short 266 # DW_AT_decl_line
.byte 4 # Abbrev [4] 0xa5:0x3 DW_TAG_enumerator
.byte 35 # DW_AT_name
.byte 0 # DW_AT_const_value
.byte 4 # Abbrev [4] 0xa8:0x5 DW_TAG_enumerator
.byte 36 # DW_AT_name
.ascii "\200\202@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xad:0x5 DW_TAG_enumerator
.byte 37 # DW_AT_name
.ascii "\201\202@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xb2:0x5 DW_TAG_enumerator
.byte 38 # DW_AT_name
.ascii "\200\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xb7:0x5 DW_TAG_enumerator
.byte 39 # DW_AT_name
.ascii "\201\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xbc:0x5 DW_TAG_enumerator
.byte 40 # DW_AT_name
.ascii "\202\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xc1:0x5 DW_TAG_enumerator
.byte 41 # DW_AT_name
.ascii "\203\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xc6:0x5 DW_TAG_enumerator
.byte 42 # DW_AT_name
.ascii "\204\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xcb:0x5 DW_TAG_enumerator
.byte 43 # DW_AT_name
.ascii "\205\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xd0:0x5 DW_TAG_enumerator
.byte 44 # DW_AT_name
.ascii "\206\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xd5:0x5 DW_TAG_enumerator
.byte 45 # DW_AT_name
.ascii "\207\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xda:0x5 DW_TAG_enumerator
.byte 46 # DW_AT_name
.ascii "\210\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xdf:0x5 DW_TAG_enumerator
.byte 47 # DW_AT_name
.ascii "\211\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xe4:0x5 DW_TAG_enumerator
.byte 48 # DW_AT_name
.ascii "\212\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xe9:0x5 DW_TAG_enumerator
.byte 49 # DW_AT_name
.ascii "\212\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xee:0x5 DW_TAG_enumerator
.byte 50 # DW_AT_name
.ascii "\213\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xf3:0x5 DW_TAG_enumerator
.byte 51 # DW_AT_name
.ascii "\214\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xf8:0x5 DW_TAG_enumerator
.byte 52 # DW_AT_name
.ascii "\200\206@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xfd:0x5 DW_TAG_enumerator
.byte 53 # DW_AT_name
.ascii "\201\206@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x102:0x5 DW_TAG_enumerator
.byte 54 # DW_AT_name
.ascii "\200\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x107:0x5 DW_TAG_enumerator
.byte 55 # DW_AT_name
.ascii "\201\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x10c:0x5 DW_TAG_enumerator
.byte 56 # DW_AT_name
.ascii "\202\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x111:0x5 DW_TAG_enumerator
.byte 57 # DW_AT_name
.ascii "\203\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x116:0x5 DW_TAG_enumerator
.byte 58 # DW_AT_name
.ascii "\204\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x11b:0x5 DW_TAG_enumerator
.byte 59 # DW_AT_name
.ascii "\205\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x120:0x5 DW_TAG_enumerator
.byte 60 # DW_AT_name
.ascii "\200\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x125:0x5 DW_TAG_enumerator
.byte 61 # DW_AT_name
.ascii "\201\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x12a:0x5 DW_TAG_enumerator
.byte 62 # DW_AT_name
.ascii "\202\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x12f:0x5 DW_TAG_enumerator
.byte 63 # DW_AT_name
.ascii "\203\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x134:0x5 DW_TAG_enumerator
.byte 64 # DW_AT_name
.ascii "\204\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x139:0x5 DW_TAG_enumerator
.byte 65 # DW_AT_name
.ascii "\200\214@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x13e:0x6 DW_TAG_enumerator
.byte 66 # DW_AT_name
.ascii "\200\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x144:0x6 DW_TAG_enumerator
.byte 67 # DW_AT_name
.ascii "\201\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x14a:0x6 DW_TAG_enumerator
.byte 68 # DW_AT_name
.ascii "\202\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x150:0x6 DW_TAG_enumerator
.byte 69 # DW_AT_name
.ascii "\203\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x156:0x6 DW_TAG_enumerator
.byte 70 # DW_AT_name
.ascii "\204\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x15c:0x6 DW_TAG_enumerator
.byte 71 # DW_AT_name
.ascii "\205\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x162:0x6 DW_TAG_enumerator
.byte 72 # DW_AT_name
.ascii "\206\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x168:0x6 DW_TAG_enumerator
.byte 73 # DW_AT_name
.ascii "\207\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x16e:0x6 DW_TAG_enumerator
.byte 74 # DW_AT_name
.ascii "\210\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x174:0x6 DW_TAG_enumerator
.byte 75 # DW_AT_name
.ascii "\211\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x17a:0x6 DW_TAG_enumerator
.byte 76 # DW_AT_name
.ascii "\212\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x180:0x6 DW_TAG_enumerator
.byte 77 # DW_AT_name
.ascii "\213\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x186:0x6 DW_TAG_enumerator
.byte 78 # DW_AT_name
.ascii "\200\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x18c:0x6 DW_TAG_enumerator
.byte 79 # DW_AT_name
.ascii "\201\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x192:0x6 DW_TAG_enumerator
.byte 80 # DW_AT_name
.ascii "\202\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x198:0x6 DW_TAG_enumerator
.byte 81 # DW_AT_name
.ascii "\203\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x19e:0x6 DW_TAG_enumerator
.byte 82 # DW_AT_name
.ascii "\200\202\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1a4:0x6 DW_TAG_enumerator
.byte 83 # DW_AT_name
.ascii "\201\202\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1aa:0x6 DW_TAG_enumerator
.byte 84 # DW_AT_name
.ascii "\202\202\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1b0:0x6 DW_TAG_enumerator
.byte 85 # DW_AT_name
.ascii "\205\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1b6:0x6 DW_TAG_enumerator
.byte 86 # DW_AT_name
.ascii "\207\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1bc:0x6 DW_TAG_enumerator
.byte 87 # DW_AT_name
.ascii "\210\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1c2:0x6 DW_TAG_enumerator
.byte 88 # DW_AT_name
.ascii "\211\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1c8:0x6 DW_TAG_enumerator
.byte 89 # DW_AT_name
.ascii "\222\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1ce:0x6 DW_TAG_enumerator
.byte 90 # DW_AT_name
.ascii "\225\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1d4:0x6 DW_TAG_enumerator
.byte 91 # DW_AT_name
.ascii "\227\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1da:0x6 DW_TAG_enumerator
.byte 92 # DW_AT_name
.ascii "\262\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1e0:0x6 DW_TAG_enumerator
.byte 93 # DW_AT_name
.ascii "\265\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1e6:0x6 DW_TAG_enumerator
.byte 94 # DW_AT_name
.ascii "\323\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1ec:0x6 DW_TAG_enumerator
.byte 95 # DW_AT_name
.ascii "\324\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1f2:0x6 DW_TAG_enumerator
.byte 96 # DW_AT_name
.ascii "\325\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1f8:0x6 DW_TAG_enumerator
.byte 97 # DW_AT_name
.ascii "\327\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1fe:0x6 DW_TAG_enumerator
.byte 98 # DW_AT_name
.ascii "\345\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x204:0x6 DW_TAG_enumerator
.byte 99 # DW_AT_name
.ascii "\362\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x20a:0x6 DW_TAG_enumerator
.byte 100 # DW_AT_name
.ascii "\363\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x210:0x6 DW_TAG_enumerator
.byte 101 # DW_AT_name
.ascii "\365\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x216:0x6 DW_TAG_enumerator
.byte 102 # DW_AT_name
.ascii "\366\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x21c:0x6 DW_TAG_enumerator
.byte 103 # DW_AT_name
.ascii "\367\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x222:0x6 DW_TAG_enumerator
.byte 104 # DW_AT_name
.ascii "\370\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x228:0x6 DW_TAG_enumerator
.byte 105 # DW_AT_name
.ascii "\200\210\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x22e:0x6 DW_TAG_enumerator
.byte 106 # DW_AT_name
.ascii "\201\210\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x234:0x6 DW_TAG_enumerator
.byte 107 # DW_AT_name
.ascii "\200\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x23a:0x6 DW_TAG_enumerator
.byte 108 # DW_AT_name
.ascii "\202\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x240:0x6 DW_TAG_enumerator
.byte 109 # DW_AT_name
.ascii "\321\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x246:0x6 DW_TAG_enumerator
.byte 110 # DW_AT_name
.ascii "\361\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x24c:0x6 DW_TAG_enumerator
.byte 111 # DW_AT_name
.ascii "\200\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x252:0x6 DW_TAG_enumerator
.byte 112 # DW_AT_name
.ascii "\201\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x258:0x6 DW_TAG_enumerator
.byte 113 # DW_AT_name
.ascii "\202\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x25e:0x6 DW_TAG_enumerator
.byte 114 # DW_AT_name
.ascii "\203\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x264:0x6 DW_TAG_enumerator
.byte 115 # DW_AT_name
.ascii "\204\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x26a:0x6 DW_TAG_enumerator
.byte 116 # DW_AT_name
.ascii "\200\202\300\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x270:0x6 DW_TAG_enumerator
.byte 117 # DW_AT_name
.ascii "\201\202\300\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x276:0x6 DW_TAG_enumerator
.byte 118 # DW_AT_name
.ascii "\202\202\300\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x27c:0x6 DW_TAG_enumerator
.byte 119 # DW_AT_name
.ascii "\200\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x282:0x6 DW_TAG_enumerator
.byte 120 # DW_AT_name
.ascii "\201\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x288:0x6 DW_TAG_enumerator
.byte 121 # DW_AT_name
.ascii "\202\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x28e:0x6 DW_TAG_enumerator
.byte 122 # DW_AT_name
.ascii "\203\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x294:0x6 DW_TAG_enumerator
.byte 123 # DW_AT_name
.ascii "\204\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x29a:0x6 DW_TAG_enumerator
.byte 124 # DW_AT_name
.ascii "\366\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2a0:0x6 DW_TAG_enumerator
.byte 125 # DW_AT_name
.ascii "\200\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2a6:0x6 DW_TAG_enumerator
.byte 126 # DW_AT_name
.ascii "\201\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2ac:0x6 DW_TAG_enumerator
.byte 127 # DW_AT_name
.ascii "\202\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2b2:0x6 DW_TAG_enumerator
.byte 128 # DW_AT_name
.ascii "\203\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2b8:0x6 DW_TAG_enumerator
.byte 129 # DW_AT_name
.ascii "\200\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2be:0x6 DW_TAG_enumerator
.byte 130 # DW_AT_name
.ascii "\201\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2c4:0x6 DW_TAG_enumerator
.byte 131 # DW_AT_name
.ascii "\202\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2ca:0x6 DW_TAG_enumerator
.byte 132 # DW_AT_name
.ascii "\203\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2d0:0x6 DW_TAG_enumerator
.byte 133 # DW_AT_name
.ascii "\204\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2d6:0x6 DW_TAG_enumerator
.byte 134 # DW_AT_name
.ascii "\205\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2dc:0x6 DW_TAG_enumerator
.byte 135 # DW_AT_name
.ascii "\206\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2e2:0x6 DW_TAG_enumerator
.byte 136 # DW_AT_name
.ascii "\207\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2e8:0x6 DW_TAG_enumerator
.byte 137 # DW_AT_name
.ascii "\210\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2ee:0x6 DW_TAG_enumerator
.byte 138 # DW_AT_name
.ascii "\211\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2f4:0x6 DW_TAG_enumerator
.byte 139 # DW_AT_name
.ascii "\212\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2fa:0x6 DW_TAG_enumerator
.byte 140 # DW_AT_name
.ascii "\213\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x300:0x6 DW_TAG_enumerator
.byte 141 # DW_AT_name
.ascii "\214\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x306:0x6 DW_TAG_enumerator
.byte 142 # DW_AT_name
.ascii "\200\202\200\004" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x30c:0x6 DW_TAG_enumerator
.byte 143 # DW_AT_name
.ascii "\200\204\200\004" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x312:0x6 DW_TAG_enumerator
.byte 144 # DW_AT_name
.ascii "\200\202\300\004" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x318:0x6 DW_TAG_enumerator
.byte 145 # DW_AT_name
.ascii "\200\202\200\005" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x31e:0x6 DW_TAG_enumerator
.byte 146 # DW_AT_name
.ascii "\201\202\200\005" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x324:0x6 DW_TAG_enumerator
.byte 147 # DW_AT_name
.ascii "\200\202\300\005" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x32a:0x6 DW_TAG_enumerator
.byte 148 # DW_AT_name
.ascii "\200\202\200\b" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x330:0x6 DW_TAG_enumerator
.byte 149 # DW_AT_name
.ascii "\200\202\200\006" # DW_AT_const_value
.byte 0 # End Of Children Mark
.byte 6 # Abbrev [6] 0x337:0x8 DW_TAG_typedef
.long 831 # DW_AT_type
.byte 153 # DW_AT_name
.byte 3 # DW_AT_decl_file
.byte 27 # DW_AT_decl_line
.byte 6 # Abbrev [6] 0x33f:0x8 DW_TAG_typedef
.long 839 # DW_AT_type
.byte 152 # DW_AT_name
.byte 2 # DW_AT_decl_file
.byte 44 # DW_AT_decl_line
.byte 2 # Abbrev [2] 0x347:0x4 DW_TAG_base_type
.byte 151 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 8 # DW_AT_byte_size
.byte 7 # Abbrev [7] 0x34b:0x21 DW_TAG_subprogram
.byte 154 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
# DW_AT_prototyped
.long 876 # DW_AT_type
# DW_AT_inline
.byte 8 # Abbrev [8] 0x353:0x8 DW_TAG_formal_parameter
.byte 155 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 8 # Abbrev [8] 0x35b:0x8 DW_TAG_formal_parameter
.byte 159 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x363:0x8 DW_TAG_variable
.byte 162 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 54 # DW_AT_decl_line
.long 876 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 10 # Abbrev [10] 0x36c:0x2a DW_TAG_structure_type
.byte 161 # DW_AT_name
.byte 16 # DW_AT_byte_size
.byte 5 # DW_AT_decl_file
.byte 10 # DW_AT_decl_line
.byte 11 # Abbrev [11] 0x371:0x9 DW_TAG_member
.byte 155 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 11 # DW_AT_decl_line
.byte 0 # DW_AT_data_member_location
.byte 11 # Abbrev [11] 0x37a:0x9 DW_TAG_member
.byte 158 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 12 # DW_AT_decl_line
.byte 4 # DW_AT_data_member_location
.byte 11 # Abbrev [11] 0x383:0x9 DW_TAG_member
.byte 159 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 13 # DW_AT_decl_line
.byte 8 # DW_AT_data_member_location
.byte 11 # Abbrev [11] 0x38c:0x9 DW_TAG_member
.byte 160 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 14 # DW_AT_decl_line
.byte 12 # DW_AT_data_member_location
.byte 0 # End Of Children Mark
.byte 6 # Abbrev [6] 0x396:0x8 DW_TAG_typedef
.long 926 # DW_AT_type
.byte 157 # DW_AT_name
.byte 3 # DW_AT_decl_file
.byte 26 # DW_AT_decl_line
.byte 6 # Abbrev [6] 0x39e:0x8 DW_TAG_typedef
.long 151 # DW_AT_type
.byte 156 # DW_AT_name
.byte 2 # DW_AT_decl_file
.byte 41 # DW_AT_decl_line
.byte 7 # Abbrev [7] 0x3a6:0x19 DW_TAG_subprogram
.byte 163 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 17 # DW_AT_decl_line
# DW_AT_prototyped
.long 876 # DW_AT_type
# DW_AT_inline
.byte 8 # Abbrev [8] 0x3ae:0x8 DW_TAG_formal_parameter
.byte 155 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 17 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x3b6:0x8 DW_TAG_variable
.byte 162 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 28 # DW_AT_decl_line
.long 876 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 12 # Abbrev [12] 0x3bf:0x22 DW_TAG_subprogram
.byte 164 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 70 # DW_AT_decl_line
# DW_AT_prototyped
.byte 3 # DW_AT_calling_convention
.long 823 # DW_AT_type
# DW_AT_inline
.byte 8 # Abbrev [8] 0x3c8:0x8 DW_TAG_formal_parameter
.byte 165 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 70 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x3d0:0x8 DW_TAG_variable
.byte 166 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 74 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x3d8:0x8 DW_TAG_variable
.byte 167 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 74 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 13 # Abbrev [13] 0x3e1:0x221 DW_TAG_subprogram
.byte 0 # DW_AT_low_pc
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
.byte 1 # DW_AT_frame_base
.byte 86
# DW_AT_call_all_calls
.byte 170 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 38 # DW_AT_decl_line
# DW_AT_prototyped
.long 1538 # DW_AT_type
# DW_AT_external
.byte 14 # Abbrev [14] 0x3f0:0x9 DW_TAG_formal_parameter
.byte 0 # DW_AT_location
.byte 247 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 39 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 14 # Abbrev [14] 0x3f9:0x9 DW_TAG_formal_parameter
.byte 1 # DW_AT_location
.byte 248 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 39 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 14 # Abbrev [14] 0x402:0x9 DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 249 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 40 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 15 # Abbrev [15] 0x40b:0xb DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 145
.byte 16
.byte 250 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 40 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 15 # Abbrev [15] 0x416:0xb DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 145
.byte 24
.byte 251 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 41 # DW_AT_decl_line
.long 51 # DW_AT_type
.byte 15 # Abbrev [15] 0x421:0xb DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 145
.byte 32
.byte 252 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 41 # DW_AT_decl_line
.long 155 # DW_AT_type
.byte 16 # Abbrev [16] 0x42c:0x9 DW_TAG_variable
.byte 3 # DW_AT_location
.byte 253 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
.long 1538 # DW_AT_type
.byte 16 # Abbrev [16] 0x435:0x9 DW_TAG_variable
.byte 5 # DW_AT_location
.byte 254 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 47 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 16 # Abbrev [16] 0x43e:0x9 DW_TAG_variable
.byte 6 # DW_AT_location
.byte 255 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 50 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 17 # Abbrev [17] 0x447:0x9 DW_TAG_variable
.short 256 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 51 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 18 # Abbrev [18] 0x450:0xa DW_TAG_variable
.byte 7 # DW_AT_location
.short 257 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 55 # DW_AT_decl_line
.long 2285 # DW_AT_type
.byte 18 # Abbrev [18] 0x45a:0xa DW_TAG_variable
.byte 8 # DW_AT_location
.short 258 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 55 # DW_AT_decl_line
.long 2285 # DW_AT_type
.byte 18 # Abbrev [18] 0x464:0xa DW_TAG_variable
.byte 9 # DW_AT_location
.short 259 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 55 # DW_AT_decl_line
.long 2285 # DW_AT_type
.byte 18 # Abbrev [18] 0x46e:0xa DW_TAG_variable
.byte 10 # DW_AT_location
.short 260 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 61 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 17 # Abbrev [17] 0x478:0x9 DW_TAG_variable
.short 274 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 45 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 19 # Abbrev [19] 0x481:0x20 DW_TAG_inlined_subroutine
.long 843 # DW_AT_abstract_origin
.byte 1 # DW_AT_low_pc
.long .Ltmp10-.Ltmp5 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 46 # DW_AT_call_line
.byte 27 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x48e:0x6 DW_TAG_formal_parameter
.byte 7 # DW_AT_const_value
.long 851 # DW_AT_abstract_origin
.byte 20 # Abbrev [20] 0x494:0x6 DW_TAG_formal_parameter
.byte 0 # DW_AT_const_value
.long 859 # DW_AT_abstract_origin
.byte 21 # Abbrev [21] 0x49a:0x6 DW_TAG_variable
.byte 4 # DW_AT_location
.long 867 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 19 # Abbrev [19] 0x4a1:0x1a DW_TAG_inlined_subroutine
.long 843 # DW_AT_abstract_origin
.byte 2 # DW_AT_low_pc
.long .Ltmp12-.Ltmp10 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 48 # DW_AT_call_line
.byte 27 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x4ae:0x6 DW_TAG_formal_parameter
.byte 7 # DW_AT_const_value
.long 851 # DW_AT_abstract_origin
.byte 20 # Abbrev [20] 0x4b4:0x6 DW_TAG_formal_parameter
.byte 1 # DW_AT_const_value
.long 859 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 19 # Abbrev [19] 0x4bb:0x1d DW_TAG_inlined_subroutine
.long 934 # DW_AT_abstract_origin
.byte 3 # DW_AT_low_pc
.long .Ltmp17-.Ltmp16 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 53 # DW_AT_call_line
.byte 4 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x4c8:0xf DW_TAG_formal_parameter
.ascii "\210\200\200\200\370\377\377\377\377\001" # DW_AT_const_value
.long 942 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 22 # Abbrev [22] 0x4d8:0x7d DW_TAG_lexical_block
.byte 4 # DW_AT_low_pc
.long .Ltmp40-.Ltmp26 # DW_AT_high_pc
.byte 18 # Abbrev [18] 0x4de:0xa DW_TAG_variable
.byte 11 # DW_AT_location
.short 261 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 63 # DW_AT_decl_line
.long 823 # DW_AT_type
.byte 18 # Abbrev [18] 0x4e8:0xa DW_TAG_variable
.byte 14 # DW_AT_location
.short 262 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 76 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 18 # Abbrev [18] 0x4f2:0xa DW_TAG_variable
.byte 15 # DW_AT_location
.short 263 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 89 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 18 # Abbrev [18] 0x4fc:0xa DW_TAG_variable
.byte 16 # DW_AT_location
.short 264 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 99 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 17 # Abbrev [17] 0x506:0x9 DW_TAG_variable
.short 275 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 69 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 22 # Abbrev [22] 0x50f:0x2f DW_TAG_lexical_block
.byte 5 # DW_AT_low_pc
.long .Ltmp30-.Ltmp28 # DW_AT_high_pc
.byte 9 # Abbrev [9] 0x515:0x8 DW_TAG_variable
.byte 162 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 65 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 19 # Abbrev [19] 0x51d:0x20 DW_TAG_inlined_subroutine
.long 843 # DW_AT_abstract_origin
.byte 5 # DW_AT_low_pc
.long .Ltmp30-.Ltmp28 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 65 # DW_AT_call_line
.byte 35 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x52a:0x6 DW_TAG_formal_parameter
.byte 13 # DW_AT_const_value
.long 851 # DW_AT_abstract_origin
.byte 20 # Abbrev [20] 0x530:0x6 DW_TAG_formal_parameter
.byte 0 # DW_AT_const_value
.long 859 # DW_AT_abstract_origin
.byte 21 # Abbrev [21] 0x536:0x6 DW_TAG_variable
.byte 12 # DW_AT_location
.long 867 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 23 # Abbrev [23] 0x53e:0x16 DW_TAG_inlined_subroutine
.long 959 # DW_AT_abstract_origin
.byte 0 # DW_AT_ranges
.byte 0 # DW_AT_call_file
.byte 69 # DW_AT_call_line
.byte 42 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x547:0x6 DW_TAG_formal_parameter
.byte 0 # DW_AT_const_value
.long 968 # DW_AT_abstract_origin
.byte 21 # Abbrev [21] 0x54d:0x6 DW_TAG_variable
.byte 13 # DW_AT_location
.long 976 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 22 # Abbrev [22] 0x555:0xac DW_TAG_lexical_block
.byte 6 # DW_AT_low_pc
.long .Ltmp77-.Ltmp67 # DW_AT_high_pc
.byte 24 # Abbrev [24] 0x55b:0xb DW_TAG_variable
.byte 17 # DW_AT_location
.short 265 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 657 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 24 # Abbrev [24] 0x566:0xb DW_TAG_variable
.byte 18 # DW_AT_location
.short 266 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 658 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x571:0xb DW_TAG_variable
.byte 19 # DW_AT_location
.short 267 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 659 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 25 # Abbrev [25] 0x57c:0x1e DW_TAG_inlined_subroutine
.long 934 # DW_AT_abstract_origin
.byte 6 # DW_AT_low_pc
.long .Ltmp68-.Ltmp67 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.short 657 # DW_AT_call_line
.byte 47 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x58a:0xf DW_TAG_formal_parameter
.ascii "\200\200\200\200\374\377\377\377\377\001" # DW_AT_const_value
.long 942 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 22 # Abbrev [22] 0x59a:0x66 DW_TAG_lexical_block
.byte 7 # DW_AT_low_pc
.long .Ltmp77-.Ltmp70 # DW_AT_high_pc
.byte 26 # Abbrev [26] 0x5a0:0xa DW_TAG_variable
.short 268 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 661 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 24 # Abbrev [24] 0x5aa:0xb DW_TAG_variable
.byte 20 # DW_AT_location
.short 269 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 668 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5b5:0xb DW_TAG_variable
.byte 21 # DW_AT_location
.short 270 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 676 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5c0:0xb DW_TAG_variable
.byte 22 # DW_AT_location
.short 271 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 684 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5cb:0xb DW_TAG_variable
.byte 23 # DW_AT_location
.short 272 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 692 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5d6:0xb DW_TAG_variable
.byte 24 # DW_AT_location
.short 273 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 700 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 25 # Abbrev [25] 0x5e1:0x1e DW_TAG_inlined_subroutine
.long 934 # DW_AT_abstract_origin
.byte 7 # DW_AT_low_pc
.long .Ltmp72-.Ltmp70 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.short 661 # DW_AT_call_line
.byte 43 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x5ef:0xf DW_TAG_formal_parameter
.ascii "\201\200\200\200\374\377\377\377\377\001" # DW_AT_const_value
.long 942 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 27 # Abbrev [27] 0x602:0x2eb DW_TAG_structure_type
.byte 246 # DW_AT_name
.byte 74 # DW_AT_byte_size
.byte 1 # DW_AT_decl_file
.short 670 # DW_AT_decl_line
.byte 28 # Abbrev [28] 0x608:0xa DW_TAG_member
.byte 171 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 674 # DW_AT_decl_line
.byte 0 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x612:0xa DW_TAG_member
.byte 173 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 675 # DW_AT_decl_line
.byte 1 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x61c:0xa DW_TAG_member
.byte 174 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 676 # DW_AT_decl_line
.byte 2 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x626:0xa DW_TAG_member
.byte 175 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 680 # DW_AT_decl_line
.byte 3 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x630:0xa DW_TAG_member
.byte 176 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 681 # DW_AT_decl_line
.byte 4 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x63a:0xa DW_TAG_member
.byte 177 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 682 # DW_AT_decl_line
.byte 5 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x644:0xa DW_TAG_member
.byte 178 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 683 # DW_AT_decl_line
.byte 6 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x64e:0xa DW_TAG_member
.byte 179 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 684 # DW_AT_decl_line
.byte 7 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x658:0xa DW_TAG_member
.byte 180 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 685 # DW_AT_decl_line
.byte 8 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x662:0xa DW_TAG_member
.byte 181 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 689 # DW_AT_decl_line
.byte 9 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x66c:0xa DW_TAG_member
.byte 182 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 690 # DW_AT_decl_line
.byte 10 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x676:0xa DW_TAG_member
.byte 183 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 696 # DW_AT_decl_line
.byte 11 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x680:0xa DW_TAG_member
.byte 184 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 697 # DW_AT_decl_line
.byte 12 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x68a:0xa DW_TAG_member
.byte 185 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 701 # DW_AT_decl_line
.byte 13 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x694:0xa DW_TAG_member
.byte 186 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 702 # DW_AT_decl_line
.byte 14 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x69e:0xa DW_TAG_member
.byte 187 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 703 # DW_AT_decl_line
.byte 15 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6a8:0xa DW_TAG_member
.byte 188 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 709 # DW_AT_decl_line
.byte 16 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6b2:0xa DW_TAG_member
.byte 189 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 710 # DW_AT_decl_line
.byte 17 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6bc:0xa DW_TAG_member
.byte 190 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 711 # DW_AT_decl_line
.byte 18 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6c6:0xa DW_TAG_member
.byte 191 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 712 # DW_AT_decl_line
.byte 19 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6d0:0xa DW_TAG_member
.byte 192 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 713 # DW_AT_decl_line
.byte 20 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6da:0xa DW_TAG_member
.byte 193 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 714 # DW_AT_decl_line
.byte 21 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6e4:0xa DW_TAG_member
.byte 194 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 715 # DW_AT_decl_line
.byte 22 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6ee:0xa DW_TAG_member
.byte 195 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 716 # DW_AT_decl_line
.byte 23 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6f8:0xa DW_TAG_member
.byte 196 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 717 # DW_AT_decl_line
.byte 24 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x702:0xa DW_TAG_member
.byte 197 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 718 # DW_AT_decl_line
.byte 25 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x70c:0xa DW_TAG_member
.byte 198 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 719 # DW_AT_decl_line
.byte 26 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x716:0xa DW_TAG_member
.byte 199 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 720 # DW_AT_decl_line
.byte 27 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x720:0xa DW_TAG_member
.byte 200 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 721 # DW_AT_decl_line
.byte 28 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x72a:0xa DW_TAG_member
.byte 201 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 722 # DW_AT_decl_line
.byte 29 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x734:0xa DW_TAG_member
.byte 202 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 723 # DW_AT_decl_line
.byte 30 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x73e:0xa DW_TAG_member
.byte 203 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 724 # DW_AT_decl_line
.byte 31 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x748:0xa DW_TAG_member
.byte 204 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 725 # DW_AT_decl_line
.byte 32 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x752:0xa DW_TAG_member
.byte 205 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 726 # DW_AT_decl_line
.byte 33 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x75c:0xa DW_TAG_member
.byte 206 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 727 # DW_AT_decl_line
.byte 34 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x766:0xa DW_TAG_member
.byte 207 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 728 # DW_AT_decl_line
.byte 35 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x770:0xa DW_TAG_member
.byte 208 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 729 # DW_AT_decl_line
.byte 36 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x77a:0xa DW_TAG_member
.byte 209 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 730 # DW_AT_decl_line
.byte 37 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x784:0xa DW_TAG_member
.byte 210 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 731 # DW_AT_decl_line
.byte 38 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x78e:0xa DW_TAG_member
.byte 211 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 732 # DW_AT_decl_line
.byte 39 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x798:0xa DW_TAG_member
.byte 212 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 733 # DW_AT_decl_line
.byte 40 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7a2:0xa DW_TAG_member
.byte 213 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 734 # DW_AT_decl_line
.byte 41 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7ac:0xa DW_TAG_member
.byte 214 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 735 # DW_AT_decl_line
.byte 42 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7b6:0xa DW_TAG_member
.byte 215 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 736 # DW_AT_decl_line
.byte 43 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7c0:0xa DW_TAG_member
.byte 216 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 737 # DW_AT_decl_line
.byte 44 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7ca:0xa DW_TAG_member
.byte 217 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 738 # DW_AT_decl_line
.byte 45 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7d4:0xa DW_TAG_member
.byte 218 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 739 # DW_AT_decl_line
.byte 46 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7de:0xa DW_TAG_member
.byte 219 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 740 # DW_AT_decl_line
.byte 47 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7e8:0xa DW_TAG_member
.byte 220 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 741 # DW_AT_decl_line
.byte 48 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7f2:0xa DW_TAG_member
.byte 221 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 746 # DW_AT_decl_line
.byte 49 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7fc:0xa DW_TAG_member
.byte 222 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 747 # DW_AT_decl_line
.byte 50 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x806:0xa DW_TAG_member
.byte 223 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 748 # DW_AT_decl_line
.byte 51 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x810:0xa DW_TAG_member
.byte 224 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 750 # DW_AT_decl_line
.byte 52 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x81a:0xa DW_TAG_member
.byte 225 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 752 # DW_AT_decl_line
.byte 53 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x824:0xa DW_TAG_member
.byte 226 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 753 # DW_AT_decl_line
.byte 54 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x82e:0xa DW_TAG_member
.byte 227 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 754 # DW_AT_decl_line
.byte 55 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x838:0xa DW_TAG_member
.byte 228 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 755 # DW_AT_decl_line
.byte 56 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x842:0xa DW_TAG_member
.byte 229 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 756 # DW_AT_decl_line
.byte 57 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x84c:0xa DW_TAG_member
.byte 230 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 757 # DW_AT_decl_line
.byte 58 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x856:0xa DW_TAG_member
.byte 231 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 758 # DW_AT_decl_line
.byte 59 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x860:0xa DW_TAG_member
.byte 232 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 759 # DW_AT_decl_line
.byte 60 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x86a:0xa DW_TAG_member
.byte 233 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 760 # DW_AT_decl_line
.byte 61 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x874:0xa DW_TAG_member
.byte 234 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 761 # DW_AT_decl_line
.byte 62 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x87e:0xa DW_TAG_member
.byte 235 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 762 # DW_AT_decl_line
.byte 63 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x888:0xa DW_TAG_member
.byte 236 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 763 # DW_AT_decl_line
.byte 64 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x892:0xa DW_TAG_member
.byte 237 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 764 # DW_AT_decl_line
.byte 65 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x89c:0xa DW_TAG_member
.byte 238 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 765 # DW_AT_decl_line
.byte 66 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8a6:0xa DW_TAG_member
.byte 239 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 766 # DW_AT_decl_line
.byte 67 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8b0:0xa DW_TAG_member
.byte 240 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 767 # DW_AT_decl_line
.byte 68 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8ba:0xa DW_TAG_member
.byte 241 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 768 # DW_AT_decl_line
.byte 69 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8c4:0xa DW_TAG_member
.byte 242 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 769 # DW_AT_decl_line
.byte 70 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8ce:0xa DW_TAG_member
.byte 243 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 770 # DW_AT_decl_line
.byte 71 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8d8:0xa DW_TAG_member
.byte 244 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 771 # DW_AT_decl_line
.byte 72 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8e2:0xa DW_TAG_member
.byte 245 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 772 # DW_AT_decl_line
.byte 73 # DW_AT_data_member_location
.byte 0 # End Of Children Mark
.byte 2 # Abbrev [2] 0x8ed:0x4 DW_TAG_base_type
.byte 172 # DW_AT_name
.byte 2 # DW_AT_encoding
.byte 1 # DW_AT_byte_size
.byte 29 # Abbrev [29] 0x8f1:0x5 DW_TAG_const_type
.long 876 # DW_AT_type
.byte 29 # Abbrev [29] 0x8f6:0x5 DW_TAG_const_type
.long 918 # DW_AT_type
.byte 29 # Abbrev [29] 0x8fb:0x5 DW_TAG_const_type
.long 823 # DW_AT_type
.byte 0 # End Of Children Mark
.Ldebug_info_end0:
.section .debug_rnglists,"",@progbits
.long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
.Ldebug_list_header_start1:
.short 5 # Version
.byte 8 # Address size
.byte 0 # Segment selector size
.long 1 # Offset entry count
.Lrnglists_table_base0:
.long .Ldebug_ranges0-.Lrnglists_table_base0
.Ldebug_ranges0:
.byte 4 # DW_RLE_offset_pair
.uleb128 .Ltmp30-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp31-.Lfunc_begin0 # ending offset
.byte 4 # DW_RLE_offset_pair
.uleb128 .Ltmp32-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp33-.Lfunc_begin0 # ending offset
.byte 0 # DW_RLE_end_of_list
.Ldebug_list_header_end1:
.section .debug_str_offsets,"",@progbits
.long 1108 # Length of String Offsets Set
.short 5
.short 0
.Lstr_offsets_base0:
.section .debug_str,"MS",@progbits,1
.Linfo_string0:
.asciz "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab" # string offset=0
.Linfo_string1:
.asciz "cpuinfo/src/x86/isa.c" # string offset=55
.Linfo_string2:
.asciz "workspace" # string offset=77
.Linfo_string3:
.asciz "unsigned int" # string offset=87
.Linfo_string4:
.asciz "cpuinfo_vendor_unknown" # string offset=100
.Linfo_string5:
.asciz "cpuinfo_vendor_intel" # string offset=123
.Linfo_string6:
.asciz "cpuinfo_vendor_amd" # string offset=144
.Linfo_string7:
.asciz "cpuinfo_vendor_arm" # string offset=163
.Linfo_string8:
.asciz "cpuinfo_vendor_qualcomm" # string offset=182
.Linfo_string9:
.asciz "cpuinfo_vendor_apple" # string offset=206
.Linfo_string10:
.asciz "cpuinfo_vendor_samsung" # string offset=227
.Linfo_string11:
.asciz "cpuinfo_vendor_nvidia" # string offset=250
.Linfo_string12:
.asciz "cpuinfo_vendor_mips" # string offset=272
.Linfo_string13:
.asciz "cpuinfo_vendor_ibm" # string offset=292
.Linfo_string14:
.asciz "cpuinfo_vendor_ingenic" # string offset=311
.Linfo_string15:
.asciz "cpuinfo_vendor_via" # string offset=334
.Linfo_string16:
.asciz "cpuinfo_vendor_cavium" # string offset=353
.Linfo_string17:
.asciz "cpuinfo_vendor_broadcom" # string offset=375
.Linfo_string18:
.asciz "cpuinfo_vendor_apm" # string offset=399
.Linfo_string19:
.asciz "cpuinfo_vendor_huawei" # string offset=418
.Linfo_string20:
.asciz "cpuinfo_vendor_hygon" # string offset=440
.Linfo_string21:
.asciz "cpuinfo_vendor_texas_instruments" # string offset=461
.Linfo_string22:
.asciz "cpuinfo_vendor_marvell" # string offset=494
.Linfo_string23:
.asciz "cpuinfo_vendor_rdc" # string offset=517
.Linfo_string24:
.asciz "cpuinfo_vendor_dmp" # string offset=536
.Linfo_string25:
.asciz "cpuinfo_vendor_motorola" # string offset=555
.Linfo_string26:
.asciz "cpuinfo_vendor_transmeta" # string offset=579
.Linfo_string27:
.asciz "cpuinfo_vendor_cyrix" # string offset=604
.Linfo_string28:
.asciz "cpuinfo_vendor_rise" # string offset=625
.Linfo_string29:
.asciz "cpuinfo_vendor_nsc" # string offset=645
.Linfo_string30:
.asciz "cpuinfo_vendor_sis" # string offset=664
.Linfo_string31:
.asciz "cpuinfo_vendor_nexgen" # string offset=683
.Linfo_string32:
.asciz "cpuinfo_vendor_umc" # string offset=705
.Linfo_string33:
.asciz "cpuinfo_vendor_dec" # string offset=724
.Linfo_string34:
.asciz "cpuinfo_vendor" # string offset=743
.Linfo_string35:
.asciz "cpuinfo_uarch_unknown" # string offset=758
.Linfo_string36:
.asciz "cpuinfo_uarch_p5" # string offset=780
.Linfo_string37:
.asciz "cpuinfo_uarch_quark" # string offset=797
.Linfo_string38:
.asciz "cpuinfo_uarch_p6" # string offset=817
.Linfo_string39:
.asciz "cpuinfo_uarch_dothan" # string offset=834
.Linfo_string40:
.asciz "cpuinfo_uarch_yonah" # string offset=855
.Linfo_string41:
.asciz "cpuinfo_uarch_conroe" # string offset=875
.Linfo_string42:
.asciz "cpuinfo_uarch_penryn" # string offset=896
.Linfo_string43:
.asciz "cpuinfo_uarch_nehalem" # string offset=917
.Linfo_string44:
.asciz "cpuinfo_uarch_sandy_bridge" # string offset=939
.Linfo_string45:
.asciz "cpuinfo_uarch_ivy_bridge" # string offset=966
.Linfo_string46:
.asciz "cpuinfo_uarch_haswell" # string offset=991
.Linfo_string47:
.asciz "cpuinfo_uarch_broadwell" # string offset=1013
.Linfo_string48:
.asciz "cpuinfo_uarch_sky_lake" # string offset=1037
.Linfo_string49:
.asciz "cpuinfo_uarch_kaby_lake" # string offset=1060
.Linfo_string50:
.asciz "cpuinfo_uarch_palm_cove" # string offset=1084
.Linfo_string51:
.asciz "cpuinfo_uarch_sunny_cove" # string offset=1108
.Linfo_string52:
.asciz "cpuinfo_uarch_willamette" # string offset=1133
.Linfo_string53:
.asciz "cpuinfo_uarch_prescott" # string offset=1158
.Linfo_string54:
.asciz "cpuinfo_uarch_bonnell" # string offset=1181
.Linfo_string55:
.asciz "cpuinfo_uarch_saltwell" # string offset=1203
.Linfo_string56:
.asciz "cpuinfo_uarch_silvermont" # string offset=1226
.Linfo_string57:
.asciz "cpuinfo_uarch_airmont" # string offset=1251
.Linfo_string58:
.asciz "cpuinfo_uarch_goldmont" # string offset=1273
.Linfo_string59:
.asciz "cpuinfo_uarch_goldmont_plus" # string offset=1296
.Linfo_string60:
.asciz "cpuinfo_uarch_knights_ferry" # string offset=1324
.Linfo_string61:
.asciz "cpuinfo_uarch_knights_corner" # string offset=1352
.Linfo_string62:
.asciz "cpuinfo_uarch_knights_landing" # string offset=1381
.Linfo_string63:
.asciz "cpuinfo_uarch_knights_hill" # string offset=1411
.Linfo_string64:
.asciz "cpuinfo_uarch_knights_mill" # string offset=1438
.Linfo_string65:
.asciz "cpuinfo_uarch_xscale" # string offset=1465
.Linfo_string66:
.asciz "cpuinfo_uarch_k5" # string offset=1486
.Linfo_string67:
.asciz "cpuinfo_uarch_k6" # string offset=1503
.Linfo_string68:
.asciz "cpuinfo_uarch_k7" # string offset=1520
.Linfo_string69:
.asciz "cpuinfo_uarch_k8" # string offset=1537
.Linfo_string70:
.asciz "cpuinfo_uarch_k10" # string offset=1554
.Linfo_string71:
.asciz "cpuinfo_uarch_bulldozer" # string offset=1572
.Linfo_string72:
.asciz "cpuinfo_uarch_piledriver" # string offset=1596
.Linfo_string73:
.asciz "cpuinfo_uarch_steamroller" # string offset=1621
.Linfo_string74:
.asciz "cpuinfo_uarch_excavator" # string offset=1647
.Linfo_string75:
.asciz "cpuinfo_uarch_zen" # string offset=1671
.Linfo_string76:
.asciz "cpuinfo_uarch_zen2" # string offset=1689
.Linfo_string77:
.asciz "cpuinfo_uarch_zen3" # string offset=1708
.Linfo_string78:
.asciz "cpuinfo_uarch_geode" # string offset=1727
.Linfo_string79:
.asciz "cpuinfo_uarch_bobcat" # string offset=1747
.Linfo_string80:
.asciz "cpuinfo_uarch_jaguar" # string offset=1768
.Linfo_string81:
.asciz "cpuinfo_uarch_puma" # string offset=1789
.Linfo_string82:
.asciz "cpuinfo_uarch_arm7" # string offset=1808
.Linfo_string83:
.asciz "cpuinfo_uarch_arm9" # string offset=1827
.Linfo_string84:
.asciz "cpuinfo_uarch_arm11" # string offset=1846
.Linfo_string85:
.asciz "cpuinfo_uarch_cortex_a5" # string offset=1866
.Linfo_string86:
.asciz "cpuinfo_uarch_cortex_a7" # string offset=1890
.Linfo_string87:
.asciz "cpuinfo_uarch_cortex_a8" # string offset=1914
.Linfo_string88:
.asciz "cpuinfo_uarch_cortex_a9" # string offset=1938
.Linfo_string89:
.asciz "cpuinfo_uarch_cortex_a12" # string offset=1962
.Linfo_string90:
.asciz "cpuinfo_uarch_cortex_a15" # string offset=1987
.Linfo_string91:
.asciz "cpuinfo_uarch_cortex_a17" # string offset=2012
.Linfo_string92:
.asciz "cpuinfo_uarch_cortex_a32" # string offset=2037
.Linfo_string93:
.asciz "cpuinfo_uarch_cortex_a35" # string offset=2062
.Linfo_string94:
.asciz "cpuinfo_uarch_cortex_a53" # string offset=2087
.Linfo_string95:
.asciz "cpuinfo_uarch_cortex_a55r0" # string offset=2112
.Linfo_string96:
.asciz "cpuinfo_uarch_cortex_a55" # string offset=2139
.Linfo_string97:
.asciz "cpuinfo_uarch_cortex_a57" # string offset=2164
.Linfo_string98:
.asciz "cpuinfo_uarch_cortex_a65" # string offset=2189
.Linfo_string99:
.asciz "cpuinfo_uarch_cortex_a72" # string offset=2214
.Linfo_string100:
.asciz "cpuinfo_uarch_cortex_a73" # string offset=2239
.Linfo_string101:
.asciz "cpuinfo_uarch_cortex_a75" # string offset=2264
.Linfo_string102:
.asciz "cpuinfo_uarch_cortex_a76" # string offset=2289
.Linfo_string103:
.asciz "cpuinfo_uarch_cortex_a77" # string offset=2314
.Linfo_string104:
.asciz "cpuinfo_uarch_cortex_a78" # string offset=2339
.Linfo_string105:
.asciz "cpuinfo_uarch_neoverse_n1" # string offset=2364
.Linfo_string106:
.asciz "cpuinfo_uarch_neoverse_e1" # string offset=2390
.Linfo_string107:
.asciz "cpuinfo_uarch_cortex_x1" # string offset=2416
.Linfo_string108:
.asciz "cpuinfo_uarch_cortex_x2" # string offset=2440
.Linfo_string109:
.asciz "cpuinfo_uarch_cortex_a510" # string offset=2464
.Linfo_string110:
.asciz "cpuinfo_uarch_cortex_a710" # string offset=2490
.Linfo_string111:
.asciz "cpuinfo_uarch_scorpion" # string offset=2516
.Linfo_string112:
.asciz "cpuinfo_uarch_krait" # string offset=2539
.Linfo_string113:
.asciz "cpuinfo_uarch_kryo" # string offset=2559
.Linfo_string114:
.asciz "cpuinfo_uarch_falkor" # string offset=2578
.Linfo_string115:
.asciz "cpuinfo_uarch_saphira" # string offset=2599
.Linfo_string116:
.asciz "cpuinfo_uarch_denver" # string offset=2621
.Linfo_string117:
.asciz "cpuinfo_uarch_denver2" # string offset=2642
.Linfo_string118:
.asciz "cpuinfo_uarch_carmel" # string offset=2664
.Linfo_string119:
.asciz "cpuinfo_uarch_exynos_m1" # string offset=2685
.Linfo_string120:
.asciz "cpuinfo_uarch_exynos_m2" # string offset=2709
.Linfo_string121:
.asciz "cpuinfo_uarch_exynos_m3" # string offset=2733
.Linfo_string122:
.asciz "cpuinfo_uarch_exynos_m4" # string offset=2757
.Linfo_string123:
.asciz "cpuinfo_uarch_exynos_m5" # string offset=2781
.Linfo_string124:
.asciz "cpuinfo_uarch_cortex_a76ae" # string offset=2805
.Linfo_string125:
.asciz "cpuinfo_uarch_mongoose_m1" # string offset=2832
.Linfo_string126:
.asciz "cpuinfo_uarch_mongoose_m2" # string offset=2858
.Linfo_string127:
.asciz "cpuinfo_uarch_meerkat_m3" # string offset=2884
.Linfo_string128:
.asciz "cpuinfo_uarch_meerkat_m4" # string offset=2909
.Linfo_string129:
.asciz "cpuinfo_uarch_swift" # string offset=2934
.Linfo_string130:
.asciz "cpuinfo_uarch_cyclone" # string offset=2954
.Linfo_string131:
.asciz "cpuinfo_uarch_typhoon" # string offset=2976
.Linfo_string132:
.asciz "cpuinfo_uarch_twister" # string offset=2998
.Linfo_string133:
.asciz "cpuinfo_uarch_hurricane" # string offset=3020
.Linfo_string134:
.asciz "cpuinfo_uarch_monsoon" # string offset=3044
.Linfo_string135:
.asciz "cpuinfo_uarch_mistral" # string offset=3066
.Linfo_string136:
.asciz "cpuinfo_uarch_vortex" # string offset=3088
.Linfo_string137:
.asciz "cpuinfo_uarch_tempest" # string offset=3109
.Linfo_string138:
.asciz "cpuinfo_uarch_lightning" # string offset=3131
.Linfo_string139:
.asciz "cpuinfo_uarch_thunder" # string offset=3155
.Linfo_string140:
.asciz "cpuinfo_uarch_firestorm" # string offset=3177
.Linfo_string141:
.asciz "cpuinfo_uarch_icestorm" # string offset=3201
.Linfo_string142:
.asciz "cpuinfo_uarch_thunderx" # string offset=3224
.Linfo_string143:
.asciz "cpuinfo_uarch_thunderx2" # string offset=3247
.Linfo_string144:
.asciz "cpuinfo_uarch_pj4" # string offset=3271
.Linfo_string145:
.asciz "cpuinfo_uarch_brahma_b15" # string offset=3289
.Linfo_string146:
.asciz "cpuinfo_uarch_brahma_b53" # string offset=3314
.Linfo_string147:
.asciz "cpuinfo_uarch_xgene" # string offset=3339
.Linfo_string148:
.asciz "cpuinfo_uarch_dhyana" # string offset=3359
.Linfo_string149:
.asciz "cpuinfo_uarch_taishan_v110" # string offset=3380
.Linfo_string150:
.asciz "cpuinfo_uarch" # string offset=3407
.Linfo_string151:
.asciz "unsigned long" # string offset=3421
.Linfo_string152:
.asciz "__uint64_t" # string offset=3435
.Linfo_string153:
.asciz "uint64_t" # string offset=3446
.Linfo_string154:
.asciz "cpuidex" # string offset=3455
.Linfo_string155:
.asciz "eax" # string offset=3463
.Linfo_string156:
.asciz "__uint32_t" # string offset=3467
.Linfo_string157:
.asciz "uint32_t" # string offset=3478
.Linfo_string158:
.asciz "ebx" # string offset=3487
.Linfo_string159:
.asciz "ecx" # string offset=3491
.Linfo_string160:
.asciz "edx" # string offset=3495
.Linfo_string161:
.asciz "cpuid_regs" # string offset=3499
.Linfo_string162:
.asciz "regs" # string offset=3510
.Linfo_string163:
.asciz "cpuid" # string offset=3515
.Linfo_string164:
.asciz "xgetbv" # string offset=3521
.Linfo_string165:
.asciz "ext_ctrl_reg" # string offset=3528
.Linfo_string166:
.asciz "lo" # string offset=3541
.Linfo_string167:
.asciz "hi" # string offset=3544
.Linfo_string168:
.asciz "DW_ATE_unsigned_32" # string offset=3547
.Linfo_string169:
.asciz "DW_ATE_unsigned_64" # string offset=3566
.Linfo_string170:
.asciz "cpuinfo_x86_detect_isa" # string offset=3585
.Linfo_string171:
.asciz "rdtscp" # string offset=3608
.Linfo_string172:
.asciz "_Bool" # string offset=3615
.Linfo_string173:
.asciz "rdpid" # string offset=3621
.Linfo_string174:
.asciz "sysenter" # string offset=3627
.Linfo_string175:
.asciz "msr" # string offset=3636
.Linfo_string176:
.asciz "clzero" # string offset=3640
.Linfo_string177:
.asciz "clflush" # string offset=3647
.Linfo_string178:
.asciz "clflushopt" # string offset=3655
.Linfo_string179:
.asciz "mwait" # string offset=3666
.Linfo_string180:
.asciz "mwaitx" # string offset=3672
.Linfo_string181:
.asciz "fxsave" # string offset=3679
.Linfo_string182:
.asciz "xsave" # string offset=3686
.Linfo_string183:
.asciz "three_d_now" # string offset=3692
.Linfo_string184:
.asciz "three_d_now_plus" # string offset=3704
.Linfo_string185:
.asciz "prefetch" # string offset=3721
.Linfo_string186:
.asciz "prefetchw" # string offset=3730
.Linfo_string187:
.asciz "prefetchwt1" # string offset=3740
.Linfo_string188:
.asciz "sse3" # string offset=3752
.Linfo_string189:
.asciz "ssse3" # string offset=3757
.Linfo_string190:
.asciz "sse4_1" # string offset=3763
.Linfo_string191:
.asciz "sse4_2" # string offset=3770
.Linfo_string192:
.asciz "sse4a" # string offset=3777
.Linfo_string193:
.asciz "misaligned_sse" # string offset=3783
.Linfo_string194:
.asciz "avx" # string offset=3798
.Linfo_string195:
.asciz "fma3" # string offset=3802
.Linfo_string196:
.asciz "fma4" # string offset=3807
.Linfo_string197:
.asciz "xop" # string offset=3812
.Linfo_string198:
.asciz "f16c" # string offset=3816
.Linfo_string199:
.asciz "avx2" # string offset=3821
.Linfo_string200:
.asciz "avx512f" # string offset=3826
.Linfo_string201:
.asciz "avx512pf" # string offset=3834
.Linfo_string202:
.asciz "avx512er" # string offset=3843
.Linfo_string203:
.asciz "avx512cd" # string offset=3852
.Linfo_string204:
.asciz "avx512dq" # string offset=3861
.Linfo_string205:
.asciz "avx512bw" # string offset=3870
.Linfo_string206:
.asciz "avx512vl" # string offset=3879
.Linfo_string207:
.asciz "avx512ifma" # string offset=3888
.Linfo_string208:
.asciz "avx512vbmi" # string offset=3899
.Linfo_string209:
.asciz "avx512vbmi2" # string offset=3910
.Linfo_string210:
.asciz "avx512bitalg" # string offset=3922
.Linfo_string211:
.asciz "avx512vpopcntdq" # string offset=3935
.Linfo_string212:
.asciz "avx512vnni" # string offset=3951
.Linfo_string213:
.asciz "avx512bf16" # string offset=3962
.Linfo_string214:
.asciz "avx512vp2intersect" # string offset=3973
.Linfo_string215:
.asciz "avx512_4vnniw" # string offset=3992
.Linfo_string216:
.asciz "avx512_4fmaps" # string offset=4006
.Linfo_string217:
.asciz "hle" # string offset=4020
.Linfo_string218:
.asciz "rtm" # string offset=4024
.Linfo_string219:
.asciz "xtest" # string offset=4028
.Linfo_string220:
.asciz "mpx" # string offset=4034
.Linfo_string221:
.asciz "cmpxchg16b" # string offset=4038
.Linfo_string222:
.asciz "clwb" # string offset=4049
.Linfo_string223:
.asciz "movbe" # string offset=4054
.Linfo_string224:
.asciz "lahf_sahf" # string offset=4060
.Linfo_string225:
.asciz "fs_gs_base" # string offset=4070
.Linfo_string226:
.asciz "lzcnt" # string offset=4081
.Linfo_string227:
.asciz "popcnt" # string offset=4087
.Linfo_string228:
.asciz "tbm" # string offset=4094
.Linfo_string229:
.asciz "bmi" # string offset=4098
.Linfo_string230:
.asciz "bmi2" # string offset=4102
.Linfo_string231:
.asciz "adx" # string offset=4107
.Linfo_string232:
.asciz "aes" # string offset=4111
.Linfo_string233:
.asciz "vaes" # string offset=4115
.Linfo_string234:
.asciz "pclmulqdq" # string offset=4120
.Linfo_string235:
.asciz "vpclmulqdq" # string offset=4130
.Linfo_string236:
.asciz "gfni" # string offset=4141
.Linfo_string237:
.asciz "rdrand" # string offset=4146
.Linfo_string238:
.asciz "rdseed" # string offset=4153
.Linfo_string239:
.asciz "sha" # string offset=4160
.Linfo_string240:
.asciz "rng" # string offset=4164
.Linfo_string241:
.asciz "ace" # string offset=4168
.Linfo_string242:
.asciz "ace2" # string offset=4172
.Linfo_string243:
.asciz "phe" # string offset=4177
.Linfo_string244:
.asciz "pmm" # string offset=4181
.Linfo_string245:
.asciz "lwp" # string offset=4185
.Linfo_string246:
.asciz "cpuinfo_x86_isa" # string offset=4189
.Linfo_string247:
.asciz "basic_info" # string offset=4205
.Linfo_string248:
.asciz "extended_info" # string offset=4216
.Linfo_string249:
.asciz "max_base_index" # string offset=4230
.Linfo_string250:
.asciz "max_extended_index" # string offset=4245
.Linfo_string251:
.asciz "vendor" # string offset=4264
.Linfo_string252:
.asciz "uarch" # string offset=4271
.Linfo_string253:
.asciz "isa" # string offset=4277
.Linfo_string254:
.asciz "structured_feature_info1" # string offset=4281
.Linfo_string255:
.asciz "processor_capacity_info_index" # string offset=4306
.Linfo_string256:
.asciz "processor_capacity_info" # string offset=4336
.Linfo_string257:
.asciz "avx_regs" # string offset=4360
.Linfo_string258:
.asciz "avx512_regs" # string offset=4369
.Linfo_string259:
.asciz "mpx_regs" # string offset=4381
.Linfo_string260:
.asciz "osxsave_mask" # string offset=4390
.Linfo_string261:
.asciz "xcr0_valid_bits" # string offset=4403
.Linfo_string262:
.asciz "avx_regs_mask" # string offset=4419
.Linfo_string263:
.asciz "avx512_regs_mask" # string offset=4433
.Linfo_string264:
.asciz "mpx_regs_mask" # string offset=4450
.Linfo_string265:
.asciz "padlock_meta_info" # string offset=4464
.Linfo_string266:
.asciz "max_padlock_index" # string offset=4482
.Linfo_string267:
.asciz "padlock_info_index" # string offset=4500
.Linfo_string268:
.asciz "padlock_info" # string offset=4519
.Linfo_string269:
.asciz "padlock_rng_mask" # string offset=4532
.Linfo_string270:
.asciz "padlock_ace_mask" # string offset=4549
.Linfo_string271:
.asciz "padlock_ace2_mask" # string offset=4566
.Linfo_string272:
.asciz "padlock_phe_mask" # string offset=4584
.Linfo_string273:
.asciz "padlock_pmm_mask" # string offset=4601
.Linfo_string274:
.asciz "structured_feature_info0" # string offset=4618
.Linfo_string275:
.asciz "xfeature_enabled_mask" # string offset=4643
.section .debug_str_offsets,"",@progbits
.long .Linfo_string0
.long .Linfo_string1
.long .Linfo_string2
.long .Linfo_string3
.long .Linfo_string4
.long .Linfo_string5
.long .Linfo_string6
.long .Linfo_string7
.long .Linfo_string8
.long .Linfo_string9
.long .Linfo_string10
.long .Linfo_string11
.long .Linfo_string12
.long .Linfo_string13
.long .Linfo_string14
.long .Linfo_string15
.long .Linfo_string16
.long .Linfo_string17
.long .Linfo_string18
.long .Linfo_string19
.long .Linfo_string20
.long .Linfo_string21
.long .Linfo_string22
.long .Linfo_string23
.long .Linfo_string24
.long .Linfo_string25
.long .Linfo_string26
.long .Linfo_string27
.long .Linfo_string28
.long .Linfo_string29
.long .Linfo_string30
.long .Linfo_string31
.long .Linfo_string32
.long .Linfo_string33
.long .Linfo_string34
.long .Linfo_string35
.long .Linfo_string36
.long .Linfo_string37
.long .Linfo_string38
.long .Linfo_string39
.long .Linfo_string40
.long .Linfo_string41
.long .Linfo_string42
.long .Linfo_string43
.long .Linfo_string44
.long .Linfo_string45
.long .Linfo_string46
.long .Linfo_string47
.long .Linfo_string48
.long .Linfo_string49
.long .Linfo_string50
.long .Linfo_string51
.long .Linfo_string52
.long .Linfo_string53
.long .Linfo_string54
.long .Linfo_string55
.long .Linfo_string56
.long .Linfo_string57
.long .Linfo_string58
.long .Linfo_string59
.long .Linfo_string60
.long .Linfo_string61
.long .Linfo_string62
.long .Linfo_string63
.long .Linfo_string64
.long .Linfo_string65
.long .Linfo_string66
.long .Linfo_string67
.long .Linfo_string68
.long .Linfo_string69
.long .Linfo_string70
.long .Linfo_string71
.long .Linfo_string72
.long .Linfo_string73
.long .Linfo_string74
.long .Linfo_string75
.long .Linfo_string76
.long .Linfo_string77
.long .Linfo_string78
.long .Linfo_string79
.long .Linfo_string80
.long .Linfo_string81
.long .Linfo_string82
.long .Linfo_string83
.long .Linfo_string84
.long .Linfo_string85
.long .Linfo_string86
.long .Linfo_string87
.long .Linfo_string88
.long .Linfo_string89
.long .Linfo_string90
.long .Linfo_string91
.long .Linfo_string92
.long .Linfo_string93
.long .Linfo_string94
.long .Linfo_string95
.long .Linfo_string96
.long .Linfo_string97
.long .Linfo_string98
.long .Linfo_string99
.long .Linfo_string100
.long .Linfo_string101
.long .Linfo_string102
.long .Linfo_string103
.long .Linfo_string104
.long .Linfo_string105
.long .Linfo_string106
.long .Linfo_string107
.long .Linfo_string108
.long .Linfo_string109
.long .Linfo_string110
.long .Linfo_string111
.long .Linfo_string112
.long .Linfo_string113
.long .Linfo_string114
.long .Linfo_string115
.long .Linfo_string116
.long .Linfo_string117
.long .Linfo_string118
.long .Linfo_string119
.long .Linfo_string120
.long .Linfo_string121
.long .Linfo_string122
.long .Linfo_string123
.long .Linfo_string124
.long .Linfo_string125
.long .Linfo_string126
.long .Linfo_string127
.long .Linfo_string128
.long .Linfo_string129
.long .Linfo_string130
.long .Linfo_string131
.long .Linfo_string132
.long .Linfo_string133
.long .Linfo_string134
.long .Linfo_string135
.long .Linfo_string136
.long .Linfo_string137
.long .Linfo_string138
.long .Linfo_string139
.long .Linfo_string140
.long .Linfo_string141
.long .Linfo_string142
.long .Linfo_string143
.long .Linfo_string144
.long .Linfo_string145
.long .Linfo_string146
.long .Linfo_string147
.long .Linfo_string148
.long .Linfo_string149
.long .Linfo_string150
.long .Linfo_string151
.long .Linfo_string152
.long .Linfo_string153
.long .Linfo_string154
.long .Linfo_string155
.long .Linfo_string156
.long .Linfo_string157
.long .Linfo_string158
.long .Linfo_string159
.long .Linfo_string160
.long .Linfo_string161
.long .Linfo_string162
.long .Linfo_string163
.long .Linfo_string164
.long .Linfo_string165
.long .Linfo_string166
.long .Linfo_string167
.long .Linfo_string168
.long .Linfo_string169
.long .Linfo_string170
.long .Linfo_string171
.long .Linfo_string172
.long .Linfo_string173
.long .Linfo_string174
.long .Linfo_string175
.long .Linfo_string176
.long .Linfo_string177
.long .Linfo_string178
.long .Linfo_string179
.long .Linfo_string180
.long .Linfo_string181
.long .Linfo_string182
.long .Linfo_string183
.long .Linfo_string184
.long .Linfo_string185
.long .Linfo_string186
.long .Linfo_string187
.long .Linfo_string188
.long .Linfo_string189
.long .Linfo_string190
.long .Linfo_string191
.long .Linfo_string192
.long .Linfo_string193
.long .Linfo_string194
.long .Linfo_string195
.long .Linfo_string196
.long .Linfo_string197
.long .Linfo_string198
.long .Linfo_string199
.long .Linfo_string200
.long .Linfo_string201
.long .Linfo_string202
.long .Linfo_string203
.long .Linfo_string204
.long .Linfo_string205
.long .Linfo_string206
.long .Linfo_string207
.long .Linfo_string208
.long .Linfo_string209
.long .Linfo_string210
.long .Linfo_string211
.long .Linfo_string212
.long .Linfo_string213
.long .Linfo_string214
.long .Linfo_string215
.long .Linfo_string216
.long .Linfo_string217
.long .Linfo_string218
.long .Linfo_string219
.long .Linfo_string220
.long .Linfo_string221
.long .Linfo_string222
.long .Linfo_string223
.long .Linfo_string224
.long .Linfo_string225
.long .Linfo_string226
.long .Linfo_string227
.long .Linfo_string228
.long .Linfo_string229
.long .Linfo_string230
.long .Linfo_string231
.long .Linfo_string232
.long .Linfo_string233
.long .Linfo_string234
.long .Linfo_string235
.long .Linfo_string236
.long .Linfo_string237
.long .Linfo_string238
.long .Linfo_string239
.long .Linfo_string240
.long .Linfo_string241
.long .Linfo_string242
.long .Linfo_string243
.long .Linfo_string244
.long .Linfo_string245
.long .Linfo_string246
.long .Linfo_string247
.long .Linfo_string248
.long .Linfo_string249
.long .Linfo_string250
.long .Linfo_string251
.long .Linfo_string252
.long .Linfo_string253
.long .Linfo_string254
.long .Linfo_string255
.long .Linfo_string256
.long .Linfo_string257
.long .Linfo_string258
.long .Linfo_string259
.long .Linfo_string260
.long .Linfo_string261
.long .Linfo_string262
.long .Linfo_string263
.long .Linfo_string264
.long .Linfo_string265
.long .Linfo_string266
.long .Linfo_string267
.long .Linfo_string268
.long .Linfo_string269
.long .Linfo_string270
.long .Linfo_string271
.long .Linfo_string272
.long .Linfo_string273
.long .Linfo_string274
.long .Linfo_string275
.section .debug_addr,"",@progbits
.long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
.Ldebug_addr_start0:
.short 5 # DWARF version number
.byte 8 # Address size
.byte 0 # Segment selector size
.Laddr_table_base0:
.quad .Lfunc_begin0
.quad .Ltmp5
.quad .Ltmp10
.quad .Ltmp16
.quad .Ltmp26
.quad .Ltmp28
.quad .Ltmp67
.quad .Ltmp70
.Ldebug_addr_end0:
.ident "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab"
.section ".note.GNU-stack","",@progbits
.section .debug_line,"",@progbits
.Lline_table_start0:
.text
.file "isa.c"
.file 0 "workspace" "cpuinfo/src/x86/isa.c" md5 0x1f066767a48d692a7df3bd0b30681f63
.file 1 "cpuinfo/include" "cpuinfo.h" md5 0xb2d9902226e7212a1e7a8aecca87c8f4
.file 2 "glibc/include/bits" "types.h" md5 0x25679ba19d359e314e48661b21f5aa1f
.file 3 "glibc/include/bits" "stdint-uintn.h" md5 0x9754ebe022edbe8d7928fa709e442f0d
.section .rodata.cst16,"aM",@progbits,16
.p2align 4 # -- Begin function cpuinfo_x86_detect_isa
.LCPI0_0:
.quad 6 # 0x6
.quad 230 # 0xe6
.LCPI0_1:
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 0 # 0x0
.byte 1 # 0x1
.byte 8 # 0x8
.byte 9 # 0x9
.byte 8 # 0x8
.byte 9 # 0x9
.LCPI0_6:
.quad 12 # 0xc
.quad 14 # 0xe
.LCPI0_9:
.quad 35 # 0x23
.quad 40 # 0x28
.LCPI0_10:
.quad 10 # 0xa
.quad 8 # 0x8
.LCPI0_11:
.byte 0 # 0x0
.byte 8 # 0x8
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.LCPI0_12:
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.zero 1
.byte 0 # 0x0
.byte 8 # 0x8
.LCPI0_13:
.long 12288 # 0x3000
.long 3072 # 0xc00
.long 768 # 0x300
.long 192 # 0xc0
.section .rodata.cst32,"aM",@progbits,32
.p2align 5
.LCPI0_2:
.long 0 # 0x0
.long 0 # 0x0
.long 1 # 0x1
.long 1 # 0x1
.long 0 # 0x0
.long 2 # 0x2
.long 2 # 0x2
.long 2 # 0x2
.LCPI0_3:
.long 268435456 # 0x10000000
.long 4096 # 0x1000
.long 65536 # 0x10000
.long 2048 # 0x800
.long 536870912 # 0x20000000
.long 32 # 0x20
.long 65536 # 0x10000
.long 67108864 # 0x4000000
.section .rodata,"a",@progbits
.p2align 1
.LCPI0_4:
.short 1 # 0x1
.LCPI0_5:
.byte 1 # 0x1
.LCPI0_7:
.byte 8 # 0x8
.LCPI0_8:
.byte 128 # 0x80
.text
.hidden cpuinfo_x86_detect_isa
.globl cpuinfo_x86_detect_isa
.type cpuinfo_x86_detect_isa,@function
cpuinfo_x86_detect_isa: # @cpuinfo_x86_detect_isa
.Lfunc_begin0:
.loc 0 42 0 # cpuinfo/src/x86/isa.c:42:0
.cfi_sections .debug_frame
.cfi_startproc
# %bb.0: # %entry
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 0 64] $rsi
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 0 64] $rcx
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r9d
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 $72, %rsp
.cfi_offset %rbx, -56
.cfi_offset %r12, -48
.cfi_offset %r13, -40
.cfi_offset %r14, -32
.cfi_offset %r15, -24
.Ltmp0:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rdi+0]
movl %r9d, %r12d
movq %r8, -64(%rbp) # 8-byte Spill
movq %rdx, %r15
movq %rdi, %r13
.Ltmp1:
.loc 0 0 0 is_stmt 0 # cpuinfo/src/x86/isa.c:0:0
movq __msan_param_tls@GOTTPOFF(%rip), %rax
movq %fs:(%rax), %rcx
.Ltmp2:
movq %rcx, -48(%rbp) # 8-byte Spill
movq %fs:16(%rax), %r14
movq %fs:32(%rax), %rax
.Ltmp3:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_convert 64 7, DW_OP_LLVM_convert 32 7, DW_OP_stack_value, DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] undef
movq %rax, -56(%rbp) # 8-byte Spill
xorl %ebx, %ebx
.loc 0 43 25 prologue_end is_stmt 1 # cpuinfo/src/x86/isa.c:43:25
movl $74, %edx
xorl %esi, %esi
.Ltmp4:
callq __msan_memset@PLT
.Ltmp5:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
.loc 0 46 19 # cpuinfo/src/x86/isa.c:46:19
cmpl $7, %r12d
.loc 0 46 3 is_stmt 0 # cpuinfo/src/x86/isa.c:46:3
jb .LBB0_1
.Ltmp6:
# %bb.2: # %cond.true2
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuidex:eax <- 7
#DEBUG_VALUE: cpuidex:ecx <- 0
.file 4 "cpuinfo/src/x86" "cpuid.h" md5 0xf9e451aa7a48009ba003a034c14f0ac3
.loc 4 56 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:56:5
xorl %ecx, %ecx
movl $7, %eax
#APP
xchgq %rbx, %r9
cpuid
xchgq %rbx, %r9
#NO_APP
# kill: def $edx killed $edx def $rdx
.Ltmp7:
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 32 32] $r9d
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] $ecx
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 96 32] $edx
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 0 32] undef
.loc 4 65 4 # cpuinfo/src/x86/cpuid.h:65:4
shlq $32, %r9
.Ltmp8:
shlq $32, %rdx
.Ltmp9:
movl %ecx, %ebx
.Ltmp10:
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] $ebx
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] $ebx
orq %rdx, %rbx
.Ltmp11:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info0 <- [DW_OP_LLVM_fragment 64 64] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info0 <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: cpuidex:eax <- 7
#DEBUG_VALUE: cpuidex:ecx <- 1
.loc 4 56 5 # cpuinfo/src/x86/cpuid.h:56:5
movl $7, %eax
movl $1, %ecx
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
movl %eax, %esi
.Ltmp12:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info1 <- [DW_OP_LLVM_arg 0, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] 0, $esi
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 0 32] $eax
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info1 <- [DW_OP_LLVM_fragment 64 64] undef
.loc 0 48 3 # cpuinfo/src/x86/isa.c:48:3
shrb $5, %sil
.Ltmp13:
andb $1, %sil
jmp .LBB0_3
.Ltmp14:
.LBB0_1:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
.loc 0 0 3 is_stmt 0 # cpuinfo/src/x86/isa.c:0:3
xorl %r9d, %r9d
xorl %esi, %esi
.Ltmp15:
.LBB0_3: # %cond.end9
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:structured_feature_info1 <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
.loc 0 52 23 is_stmt 1 # cpuinfo/src/x86/isa.c:52:23
cmpl $-2147483640, 16(%rbp) # imm = 0x80000008
.loc 0 52 3 is_stmt 0 # cpuinfo/src/x86/isa.c:52:3
jb .LBB0_4
.Ltmp16:
# %bb.5: # %cond.true11
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuid:eax <- -2147483640
.loc 4 30 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:30:5
movl $-2147483640, %eax # imm = 0x80000008
#APP
xchgq %rbx, %rdx
cpuid
xchgq %rbx, %rdx
#NO_APP
.Ltmp17:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] undef, undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 32 32] $edx
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 0 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info <- [DW_OP_LLVM_fragment 64 64] undef
.loc 0 52 3 # cpuinfo/src/x86/isa.c:52:3
andb $1, %dl
jmp .LBB0_6
.Ltmp18:
.LBB0_4:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
.loc 0 0 3 is_stmt 0 # cpuinfo/src/x86/isa.c:0:3
xorl %edx, %edx
.Ltmp19:
.LBB0_6: # %cond.end18
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
movl $201326592, %ecx # imm = 0xC000000
.Ltmp20:
.loc 0 62 22 is_stmt 1 # cpuinfo/src/x86/isa.c:62:22
movl %r15d, %eax
andl %ecx, %eax
.loc 0 62 38 is_stmt 0 # cpuinfo/src/x86/isa.c:62:38
testl $201326592, %r14d # imm = 0xC000000
.Ltmp21:
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
je .LBB0_8
.Ltmp22:
# %bb.7: # %cond.end18
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 0 # cpuinfo/src/x86/isa.c:0:0
xorl %eax, %ecx
andnl %ecx, %r14d, %ecx
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
je .LBB0_25
.Ltmp23:
.LBB0_8:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 62 38 # cpuinfo/src/x86/isa.c:62:38
cmpl $201326592, %eax # imm = 0xC000000
movq %rsi, -88(%rbp) # 8-byte Spill
.Ltmp24:
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
jne .LBB0_9
.Ltmp25:
# %bb.10: # %if.then
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: xcr0_valid_bits <- 0
.loc 0 0 6 # cpuinfo/src/x86/isa.c:0:6
movl %edx, %edi
xorl %esi, %esi
.Ltmp26:
.loc 0 64 22 is_stmt 1 # cpuinfo/src/x86/isa.c:64:22
cmpl $13, %r12d
.Ltmp27:
.loc 0 64 7 is_stmt 0 # cpuinfo/src/x86/isa.c:64:7
jb .LBB0_12
.Ltmp28:
# %bb.11: # %if.then22
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: xcr0_valid_bits <- 0
#DEBUG_VALUE: cpuidex:eax <- 13
#DEBUG_VALUE: cpuidex:ecx <- 0
.loc 4 56 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:56:5
movl $13, %eax
xorl %ecx, %ecx
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
.Ltmp29:
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 0 32] $eax
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuidex:regs <- [DW_OP_LLVM_fragment 96 32] undef
.loc 4 65 4 # cpuinfo/src/x86/cpuid.h:65:4
movl %eax, %esi
.Ltmp30:
#DEBUG_VALUE: regs <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] undef, undef
#DEBUG_VALUE: regs <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] undef, undef
#DEBUG_VALUE: xcr0_valid_bits <- $eax
.LBB0_12: # %if.end
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: xcr0_valid_bits <- $rsi
#DEBUG_VALUE: xgetbv:ext_ctrl_reg <- 0
.loc 4 75 3 # cpuinfo/src/x86/cpuid.h:75:3
xorl %ecx, %ecx
#APP
.byte 15
.byte 1
.byte 208
#NO_APP
.Ltmp31:
.loc 0 77 7 # cpuinfo/src/x86/isa.c:77:7
vmovd %eax, %xmm0
.Ltmp32:
#DEBUG_VALUE: xgetbv:lo <- $eax
#DEBUG_VALUE: xgetbv:hi <- undef
.loc 4 76 34 # cpuinfo/src/x86/cpuid.h:76:34
notl %eax
.Ltmp33:
#DEBUG_VALUE: avx_regs_mask <- 6
#DEBUG_VALUE: xfeature_enabled_mask <- [DW_OP_LLVM_arg 0, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_or, DW_OP_stack_value] undef
.loc 0 77 24 # cpuinfo/src/x86/isa.c:77:24
movl %esi, %ecx
notl %ecx
.Ltmp34:
.loc 0 100 41 # cpuinfo/src/x86/isa.c:100:41
orl %eax, %ecx
.Ltmp35:
.loc 0 77 24 # cpuinfo/src/x86/isa.c:77:24
vmovq %rsi, %xmm1
vpbroadcastq %xmm1, %xmm1
vmovdqa .LCPI0_0(%rip), %xmm2 # xmm2 = [6,230]
vpand %xmm2, %xmm1, %xmm1
.Ltmp36:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- undef
#DEBUG_VALUE: avx512_regs_mask <- 230
.loc 0 77 41 is_stmt 0 # cpuinfo/src/x86/isa.c:77:41
vpcmpeqq %xmm2, %xmm1, %xmm1
.Ltmp37:
.loc 0 77 7 # cpuinfo/src/x86/isa.c:77:7
vpbroadcastd %xmm0, %xmm0
vpand %xmm2, %xmm0, %xmm0
vpcmpeqq %xmm2, %xmm0, %xmm0
vpand %xmm0, %xmm1, %xmm0
.Ltmp38:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- undef
#DEBUG_VALUE: mpx_regs_mask <- 24
.loc 0 100 7 is_stmt 1 # cpuinfo/src/x86/isa.c:100:7
testb $24, %cl
sete %al
.Ltmp39:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- undef
.loc 0 0 7 is_stmt 0 # cpuinfo/src/x86/isa.c:0:7
movl %eax, -68(%rbp) # 4-byte Spill
movl %edi, %edx
jmp .LBB0_13
.Ltmp40:
.LBB0_9:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
vpxor %xmm0, %xmm0, %xmm0
movl $0, -68(%rbp) # 4-byte Folded Spill
.Ltmp41:
.LBB0_13: # %if.end54
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
movq -48(%rbp), %rax # 8-byte Reload
.Ltmp42:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- undef
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- undef
movq %rbx, -48(%rbp) # 8-byte Spill
.loc 0 118 15 is_stmt 1 # cpuinfo/src/x86/isa.c:118:15
testq %rax, %rax
jne .LBB0_26
.Ltmp43:
# %bb.14:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 15 is_stmt 0 # cpuinfo/src/x86/isa.c:0:15
movq -56(%rbp), %r8 # 8-byte Reload
movq %r8, %rbx
shrq $32, %rbx
movq -64(%rbp), %r12 # 8-byte Reload
.Ltmp44:
shrq $32, %r12
.Ltmp45:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
movq %r14, %rax
shrq $32, %rax
movq %r15, %rdi
shrq $32, %rdi
.Ltmp46:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_convert 64 7, DW_OP_LLVM_convert 32 7, DW_OP_stack_value, DW_OP_LLVM_fragment 96 32] $rdi
leaq 2(%r13), %rcx
movq %r14, %rsi
shrq $43, %rsi
andb $1, %sil
movabsq $87960930222080, %r11 # imm = 0x500000000000
.loc 0 118 15 # cpuinfo/src/x86/isa.c:118:15
xorq %r11, %rcx
movb %sil, (%rcx)
movq %r15, %rcx
shrq $43, %rcx
andb $1, %cl
movb %cl, 2(%r13)
.loc 0 133 31 is_stmt 1 # cpuinfo/src/x86/isa.c:133:31
movl %r12d, %ecx
notl %ecx
andnl %ebx, %edi, %esi
orl %ebx, %ecx
andl %ecx, %eax
orl %esi, %eax
movl %eax, %r10d
orq %r12, %rdi
.Ltmp47:
.loc 0 133 6 is_stmt 0 # cpuinfo/src/x86/isa.c:133:6
leaq 3(%r13), %rsi
.loc 0 133 10 # cpuinfo/src/x86/isa.c:133:10
shrb $5, %al
andb $1, %al
xorq %r11, %rsi
movb %al, (%rsi)
movl %edi, %eax
shrb $5, %al
andb $1, %al
movb %al, 3(%r13)
.loc 0 139 6 is_stmt 1 # cpuinfo/src/x86/isa.c:139:6
leaq 4(%r13), %rax
.loc 0 139 13 is_stmt 0 # cpuinfo/src/x86/isa.c:139:13
xorq %r11, %rax
xorl %ecx, %ecx
movb %cl, (%rax)
movb %dl, 4(%r13)
.loc 0 145 6 is_stmt 1 # cpuinfo/src/x86/isa.c:145:6
leaq 5(%r13), %rax
.loc 0 145 14 is_stmt 0 # cpuinfo/src/x86/isa.c:145:14
movq %r14, %rsi
shrq $51, %rsi
andb $1, %sil
xorq %r11, %rax
movb %sil, (%rax)
movq %r15, %rax
shrq $51, %rax
andb $1, %al
movb %al, 5(%r13)
.loc 0 151 6 is_stmt 1 # cpuinfo/src/x86/isa.c:151:6
leaq 6(%r13), %rax
.loc 0 151 17 is_stmt 0 # cpuinfo/src/x86/isa.c:151:17
movq %r9, %rsi
shrq $55, %rsi
andb $1, %sil
xorq %r11, %rax
movb %cl, (%rax)
movb %sil, 6(%r13)
.loc 0 157 6 is_stmt 1 # cpuinfo/src/x86/isa.c:157:6
leaq 7(%r13), %rax
.loc 0 157 12 is_stmt 0 # cpuinfo/src/x86/isa.c:157:12
movl %r14d, %ecx
shrb $3, %cl
movl %r15d, %edx
shrb $3, %dl
andb $1, %cl
andb $1, %dl
xorq %r11, %rax
movb %cl, (%rax)
movb %dl, 7(%r13)
.loc 0 163 6 is_stmt 1 # cpuinfo/src/x86/isa.c:163:6
leaq 8(%r13), %rax
.loc 0 163 13 is_stmt 0 # cpuinfo/src/x86/isa.c:163:13
movl %r8d, %ecx
shrl $29, %ecx
andb $1, %cl
xorq %r11, %rax
movb %cl, (%rax)
.loc 0 133 31 is_stmt 1 # cpuinfo/src/x86/isa.c:133:31
shrl $24, %r10d
movq -64(%rbp), %rdx # 8-byte Reload
.loc 0 163 13 # cpuinfo/src/x86/isa.c:163:13
movl %edx, %eax
shrl $29, %eax
andb $1, %al
movb %al, 8(%r13)
.Ltmp48:
.loc 0 178 8 # cpuinfo/src/x86/isa.c:178:8
leaq 9(%r13), %rax
.loc 0 178 15 is_stmt 0 # cpuinfo/src/x86/isa.c:178:15
andb $1, %r10b
xorq %r11, %rax
movb %r10b, (%rax)
shrq $24, %rdi
andb $1, %dil
movb %dil, 9(%r13)
.Ltmp49:
.loc 0 186 6 is_stmt 1 # cpuinfo/src/x86/isa.c:186:6
leaq 10(%r13), %rax
movq %r14, -96(%rbp) # 8-byte Spill
.loc 0 186 12 is_stmt 0 # cpuinfo/src/x86/isa.c:186:12
movl %r14d, %ecx
shrl $26, %ecx
andb $1, %cl
xorq %r11, %rax
movb %cl, (%rax)
movq %r15, %r10
movl %r15d, %eax
shrl $26, %eax
andb $1, %al
movb %al, 10(%r13)
.loc 0 215 6 is_stmt 1 # cpuinfo/src/x86/isa.c:215:6
leaq 11(%r13), %rax
.loc 0 215 18 is_stmt 0 # cpuinfo/src/x86/isa.c:215:18
movq %r8, %rcx
movq %r11, %r8
shrq $63, %rcx
xorq %r11, %rax
movb %cl, (%rax)
movq %rdx, %rax
shrq $63, %rax
movb %al, 11(%r13)
.loc 0 221 6 is_stmt 1 # cpuinfo/src/x86/isa.c:221:6
leaq 12(%r13), %rax
.loc 0 221 23 is_stmt 0 # cpuinfo/src/x86/isa.c:221:23
movl %ebx, %ecx
shrl $30, %ecx
andb $1, %cl
xorq %r11, %rax
movb %cl, (%rax)
movl 24(%rbp), %edi
vpshufb .LCPI0_1(%rip), %xmm0, %xmm1 # xmm1 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,8,9,8,9]
movl %r12d, %eax
shrl $30, %eax
andb $1, %al
movb %al, 12(%r13)
movq %r9, -80(%rbp) # 8-byte Spill
.loc 0 151 47 is_stmt 1 # cpuinfo/src/x86/isa.c:151:47
shrq $32, %r9
movq %r9, %r14
.loc 0 239 2 # cpuinfo/src/x86/isa.c:239:2
cmpl $1, %edi
je .LBB0_15
.Ltmp50:
# %bb.16:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edx
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
cmpl $16, %edi
je .LBB0_18
.Ltmp51:
# %bb.17:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edx
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
cmpl $2, %edi
jne .LBB0_19
.Ltmp52:
.LBB0_18: # %sw.bb
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edx
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 2 is_stmt 0 # cpuinfo/src/x86/isa.c:0:2
movl $256, %eax # imm = 0x100
movq -56(%rbp), %rcx # 8-byte Reload
# kill: def $ecx killed $ecx killed $rcx
.Ltmp53:
.loc 0 248 41 is_stmt 1 # cpuinfo/src/x86/isa.c:248:41
andl %eax, %ecx
andl -64(%rbp), %eax # 4-byte Folded Reload
movl $-536870912, %edx # imm = 0xE0000000
.Ltmp54:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
.loc 0 248 86 is_stmt 0 # cpuinfo/src/x86/isa.c:248:86
movl %ebx, %esi
andl %edx, %esi
.loc 0 248 65 # cpuinfo/src/x86/isa.c:248:65
orl %ecx, %esi
.loc 0 248 86 # cpuinfo/src/x86/isa.c:248:86
andl %r12d, %edx
.loc 0 248 65 # cpuinfo/src/x86/isa.c:248:65
orl %eax, %edx
.loc 0 248 20 # cpuinfo/src/x86/isa.c:248:20
testl %esi, %esi
setne %cl
andnl %edx, %esi, %eax
sete %al
andb %cl, %al
testl %edx, %edx
setne %cl
jmp .LBB0_20
.Ltmp55:
.LBB0_15:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edx
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 20 # cpuinfo/src/x86/isa.c:0:20
movl $-1073741824, %eax # imm = 0xC0000000
jmp .LBB0_21
.Ltmp56:
.LBB0_19: # %sw.default132
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $edx
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 255 20 is_stmt 1 # cpuinfo/src/x86/isa.c:255:20
andnl %r12d, %ebx, %eax
movl $1073741824, %ecx # imm = 0x40000000
cmpl %ecx, %eax
setae %dl
.Ltmp57:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
movl %r12d, %eax
orl %ebx, %eax
cmpl %ecx, %eax
setae %al
xorb %dl, %al
cmpl %ecx, %r12d
setae %cl
.Ltmp58:
.LBB0_20: # %sw.epilog140
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 0 is_stmt 0 # cpuinfo/src/x86/isa.c:0:0
leaq 13(%r13), %rdx
xorq %r8, %rdx
movb %al, (%rdx)
movb %cl, 13(%r13)
.Ltmp59:
.loc 0 267 2 is_stmt 1 # cpuinfo/src/x86/isa.c:267:2
xorl %ecx, %ecx
cmpl $16, %edi
sete %cl
orl $-2, %ecx
shll $29, %ecx
cmpl $2, %edi
movl $-536870912, %eax # imm = 0xE0000000
cmovnel %ecx, %eax
.Ltmp60:
.LBB0_21: # %sw.epilog162
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 96 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 0 0 is_stmt 0 # cpuinfo/src/x86/isa.c:0:0
movl %eax, %ecx
movq %rbx, -112(%rbp) # 8-byte Spill
andl %ebx, %ecx
movq %r12, -104(%rbp) # 8-byte Spill
.Ltmp61:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 104, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
andl %r12d, %eax
movl %eax, %edx
notl %edx
orl %ecx, %edx
movq -56(%rbp), %r15 # 8-byte Reload
.Ltmp62:
andl %r15d, %edx
movl $256, %esi # imm = 0x100
movq -64(%rbp), %rbx # 8-byte Reload
movl %ebx, %edi
andl %esi, %edi
andnl %ecx, %edi, %ecx
andl %esi, %edx
orl %ecx, %edx
orl %eax, %edi
testl %edx, %edx
setne %al
andnl %edi, %edx, %ecx
sete %cl
andb %al, %cl
leaq 14(%r13), %rax
xorq %r8, %rax
testl %edi, %edi
movb %cl, (%rax)
setne 14(%r13)
.Ltmp63:
.loc 0 282 6 is_stmt 1 # cpuinfo/src/x86/isa.c:282:6
leaq 15(%r13), %rax
movq -48(%rbp), %r9 # 8-byte Reload
.loc 0 282 18 is_stmt 0 # cpuinfo/src/x86/isa.c:282:18
movl %r9d, %ecx
andb $1, %cl
xorq %r8, %rax
xorl %r12d, %r12d
movb %r12b, (%rax)
movb %cl, 15(%r13)
.loc 0 302 6 is_stmt 1 # cpuinfo/src/x86/isa.c:302:6
leaq 16(%r13), %rax
movq -96(%rbp), %r11 # 8-byte Reload
.loc 0 302 11 is_stmt 0 # cpuinfo/src/x86/isa.c:302:11
movl %r11d, %ecx
andb $1, %cl
movq %r10, %r8
movl %r8d, %edx
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 16(%r13)
.loc 0 334 6 is_stmt 1 # cpuinfo/src/x86/isa.c:334:6
leaq 17(%r13), %rax
.loc 0 334 12 is_stmt 0 # cpuinfo/src/x86/isa.c:334:12
movq %r11, %rcx
shrq $9, %rcx
movq %r10, %rdx
shrq $9, %rdx
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 17(%r13)
.loc 0 341 6 is_stmt 1 # cpuinfo/src/x86/isa.c:341:6
leaq 18(%r13), %rax
.loc 0 341 13 is_stmt 0 # cpuinfo/src/x86/isa.c:341:13
movq %r11, %rcx
shrq $19, %rcx
movq %r10, %rdx
shrq $19, %rdx
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 18(%r13)
.loc 0 347 6 is_stmt 1 # cpuinfo/src/x86/isa.c:347:6
leaq 19(%r13), %rax
.loc 0 347 13 is_stmt 0 # cpuinfo/src/x86/isa.c:347:13
movq %r11, %rcx
shrq $20, %rcx
movq %r10, %rdx
shrq $20, %rdx
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 19(%r13)
.loc 0 353 6 is_stmt 1 # cpuinfo/src/x86/isa.c:353:6
leaq 20(%r13), %rax
.loc 0 353 12 is_stmt 0 # cpuinfo/src/x86/isa.c:353:12
movl %r15d, %ecx
shrb $6, %cl
movl %ebx, %edx
shrb $6, %dl
andb $1, %cl
andb $1, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 20(%r13)
.loc 0 359 6 is_stmt 1 # cpuinfo/src/x86/isa.c:359:6
leaq 21(%r13), %rax
.loc 0 359 21 is_stmt 0 # cpuinfo/src/x86/isa.c:359:21
movl %r15d, %ecx
shrb $7, %cl
movl %ebx, %edx
shrb $7, %dl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %cl, (%rax)
movb %dl, 21(%r13)
.loc 0 365 21 is_stmt 1 # cpuinfo/src/x86/isa.c:365:21
vmovd %r11d, %xmm2
vpinsrd $1, %r15d, %xmm2, %xmm2
vmovd %r8d, %xmm3
vpinsrd $1, %ebx, %xmm3, %xmm3
vpinsrd $2, %r14d, %xmm3, %xmm3
vmovq %xmm2, %xmm2 # xmm2 = xmm2[0],zero
vmovdqa .LCPI0_2(%rip), %ymm4 # ymm4 = [0,0,1,1,0,2,2,2]
vpermd %ymm2, %ymm4, %ymm2
vpermd %ymm3, %ymm4, %ymm3
vmovdqa .LCPI0_3(%rip), %ymm4 # ymm4 = [268435456,4096,65536,2048,536870912,32,65536,67108864]
vpand %ymm4, %ymm2, %ymm2
vpand %ymm4, %ymm3, %ymm3
.loc 0 365 6 is_stmt 0 # cpuinfo/src/x86/isa.c:365:6
leaq 22(%r13), %rax
.loc 0 365 21 # cpuinfo/src/x86/isa.c:365:21
vpcmpeqd %ymm4, %ymm2, %ymm5
vpxor %xmm6, %xmm6, %xmm6
vpandn %ymm3, %ymm2, %ymm2
vpcmpeqd %ymm6, %ymm2, %ymm2
vpand %ymm2, %ymm5, %ymm2
vextracti128 $1, %ymm2, %xmm5
vpackssdw %xmm5, %xmm2, %xmm2
vpcmpeqd %ymm4, %ymm3, %ymm3
vextracti128 $1, %ymm3, %xmm4
vpbroadcastw .LCPI0_4(%rip), %xmm5 # xmm5 = [1,1,1,1,1,1,1,1]
vpackssdw %xmm4, %xmm3, %xmm3
vpand %xmm2, %xmm1, %xmm2
vpand %xmm5, %xmm2, %xmm2
vpand %xmm3, %xmm1, %xmm1
vpand %xmm5, %xmm1, %xmm1
.loc 0 365 10 # cpuinfo/src/x86/isa.c:365:10
vpackuswb %xmm2, %xmm2, %xmm2
vpackuswb %xmm1, %xmm1, %xmm1
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
vmovq %xmm2, (%rax)
vmovq %xmm1, 22(%r13)
.loc 0 413 29 is_stmt 1 # cpuinfo/src/x86/isa.c:413:29
movl %r14d, %eax
shrl $27, %eax
vpextrb $8, %xmm0, %ecx
andl %ecx, %eax
movl %ecx, -72(%rbp) # 4-byte Spill
andl $1, %eax
.loc 0 413 6 is_stmt 0 # cpuinfo/src/x86/isa.c:413:6
leaq 30(%r13), %rdx
.loc 0 413 15 # cpuinfo/src/x86/isa.c:413:15
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rdx
movb %r12b, (%rdx)
movb %al, 30(%r13)
.loc 0 419 29 is_stmt 1 # cpuinfo/src/x86/isa.c:419:29
movl %r14d, %eax
shrl $28, %eax
andl %ecx, %eax
andl $1, %eax
.loc 0 419 6 is_stmt 0 # cpuinfo/src/x86/isa.c:419:6
leaq 31(%r13), %rdx
.loc 0 419 15 # cpuinfo/src/x86/isa.c:419:15
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rdx
movq -80(%rbp), %r15 # 8-byte Reload
.loc 0 425 29 is_stmt 1 # cpuinfo/src/x86/isa.c:425:29
movq %r15, %rsi
shrq $49, %rsi
.loc 0 431 29 # cpuinfo/src/x86/isa.c:431:29
movl %r14d, %edi
shrl $30, %edi
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vmovd %esi, %xmm1
vpinsrb $1, %edi, %xmm1, %xmm2
.loc 0 419 15 # cpuinfo/src/x86/isa.c:419:15
movb %r12b, (%rdx)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpbroadcastb .LCPI0_5(%rip), %xmm1 # xmm1 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
.loc 0 419 15 # cpuinfo/src/x86/isa.c:419:15
movb %al, 31(%r13)
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpand %xmm1, %xmm2, %xmm3
.loc 0 437 29 # cpuinfo/src/x86/isa.c:437:29
movl %r14d, %esi
shrl $31, %esi
.loc 0 443 31 # cpuinfo/src/x86/isa.c:443:31
movq %r15, %rdx
.loc 0 449 31 # cpuinfo/src/x86/isa.c:449:31
movl %r9d, %eax
shrb %al
movq -48(%rbp), %rdi # 8-byte Reload
.loc 0 455 32 # cpuinfo/src/x86/isa.c:455:32
movl %edi, %ebx
.loc 0 461 33 # cpuinfo/src/x86/isa.c:461:33
vmovq -48(%rbp), %xmm2 # 8-byte Folded Reload
# xmm2 = mem[0],zero
vpbroadcastq %xmm2, %xmm2
vpsrlvq .LCPI0_6(%rip), %xmm2, %xmm4
.loc 0 449 31 # cpuinfo/src/x86/isa.c:449:31
movzbl %al, %eax
vmovd %eax, %xmm5
.loc 0 461 33 # cpuinfo/src/x86/isa.c:461:33
vpextrb $8, %xmm4, %eax
.loc 0 455 32 # cpuinfo/src/x86/isa.c:455:32
shrb $6, %bl
.loc 0 449 31 # cpuinfo/src/x86/isa.c:449:31
movzbl %bl, %edi
vpinsrb $1, %edi, %xmm5, %xmm5
.loc 0 443 31 # cpuinfo/src/x86/isa.c:443:31
shrq $53, %rdx
.loc 0 461 33 # cpuinfo/src/x86/isa.c:461:33
vmovd %xmm4, %edi
.loc 0 449 31 # cpuinfo/src/x86/isa.c:449:31
vpinsrb $2, %edi, %xmm5, %xmm4
vpinsrb $3, %eax, %xmm4, %xmm4
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpinsrb $2, %esi, %xmm3, %xmm3
.loc 0 443 31 # cpuinfo/src/x86/isa.c:443:31
andb $1, %dl
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
movzbl %dl, %eax
vpinsrb $3, %eax, %xmm3, %xmm5
.loc 0 425 6 is_stmt 0 # cpuinfo/src/x86/isa.c:425:6
leaq 32(%r13), %rax
.loc 0 425 15 # cpuinfo/src/x86/isa.c:425:15
movabsq $87960930222080, %rdx # imm = 0x500000000000
xorq %rdx, %rax
movq $0, (%rax)
movq -48(%rbp), %rax # 8-byte Reload
.loc 0 473 31 is_stmt 1 # cpuinfo/src/x86/isa.c:473:31
shrq $11, %rax
andb $1, %al
.loc 0 473 6 is_stmt 0 # cpuinfo/src/x86/isa.c:473:6
leaq 40(%r13), %rdx
.loc 0 473 17 # cpuinfo/src/x86/isa.c:473:17
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rdx
movq -48(%rbp), %rsi # 8-byte Reload
.loc 0 479 34 is_stmt 1 # cpuinfo/src/x86/isa.c:479:34
shrq $34, %rsi
andb $1, %sil
.loc 0 479 6 is_stmt 0 # cpuinfo/src/x86/isa.c:479:6
leaq 43(%r13), %r10
.loc 0 479 20 # cpuinfo/src/x86/isa.c:479:20
movabsq $87960930222080, %rdi # imm = 0x500000000000
xorq %rdi, %r10
movq -48(%rbp), %r9 # 8-byte Reload
.loc 0 485 34 is_stmt 1 # cpuinfo/src/x86/isa.c:485:34
shrq $35, %r9
andb $1, %r9b
.loc 0 485 6 is_stmt 0 # cpuinfo/src/x86/isa.c:485:6
leaq 44(%r13), %rdi
.loc 0 485 20 # cpuinfo/src/x86/isa.c:485:20
movabsq $87960930222080, %rbx # imm = 0x500000000000
xorq %rbx, %rdi
movq -48(%rbp), %rbx # 8-byte Reload
.loc 0 491 39 is_stmt 1 # cpuinfo/src/x86/isa.c:491:39
shrq $40, %rbx
andb $1, %bl
.loc 0 491 6 is_stmt 0 # cpuinfo/src/x86/isa.c:491:6
leaq 42(%r13), %r12
.loc 0 491 25 # cpuinfo/src/x86/isa.c:491:25
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %r12
.loc 0 473 31 is_stmt 1 # cpuinfo/src/x86/isa.c:473:31
testb $1, -72(%rbp) # 1-byte Folded Reload
.loc 0 365 10 # cpuinfo/src/x86/isa.c:365:10
vpxor %xmm3, %xmm3, %xmm3
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpbroadcastb .LCPI0_7(%rip), %xmm6 # xmm6 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
vpshufb %xmm6, %xmm0, %xmm0
vpbroadcastb .LCPI0_8(%rip), %xmm6 # xmm6 = [128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128]
.loc 0 449 31 # cpuinfo/src/x86/isa.c:449:31
vpand %xmm1, %xmm4, %xmm4
.loc 0 425 29 # cpuinfo/src/x86/isa.c:425:29
vpsllw $7, %xmm0, %xmm0
vpand %xmm6, %xmm0, %xmm0
vpcmpgtb %xmm0, %xmm3, %xmm0
vpunpckldq %xmm4, %xmm5, %xmm4 # xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
vpand %xmm4, %xmm0, %xmm0
.loc 0 425 15 is_stmt 0 # cpuinfo/src/x86/isa.c:425:15
vmovq %xmm0, 32(%r13)
movl $0, %ecx
.loc 0 473 17 is_stmt 1 # cpuinfo/src/x86/isa.c:473:17
movb %cl, (%rdx)
.loc 0 473 31 is_stmt 0 # cpuinfo/src/x86/isa.c:473:31
movzbl %al, %eax
cmovel %ecx, %eax
.loc 0 473 17 # cpuinfo/src/x86/isa.c:473:17
movb %al, 40(%r13)
.loc 0 479 34 is_stmt 1 # cpuinfo/src/x86/isa.c:479:34
movzbl %sil, %eax
cmovel %ecx, %eax
.loc 0 479 20 is_stmt 0 # cpuinfo/src/x86/isa.c:479:20
movb %cl, (%r10)
movb %al, 43(%r13)
.loc 0 485 20 is_stmt 1 # cpuinfo/src/x86/isa.c:485:20
movb %cl, (%rdi)
.loc 0 485 34 is_stmt 0 # cpuinfo/src/x86/isa.c:485:34
movzbl %r9b, %eax
cmovel %ecx, %eax
.loc 0 485 20 # cpuinfo/src/x86/isa.c:485:20
movb %al, 44(%r13)
.loc 0 491 39 is_stmt 1 # cpuinfo/src/x86/isa.c:491:39
movzbl %bl, %eax
cmovel %ecx, %eax
.loc 0 491 25 is_stmt 0 # cpuinfo/src/x86/isa.c:491:25
movb %cl, (%r12)
movq -64(%rbp), %r12 # 8-byte Reload
movb %al, 42(%r13)
.loc 0 497 31 is_stmt 1 # cpuinfo/src/x86/isa.c:497:31
movzbl -88(%rbp), %eax # 1-byte Folded Reload
cmovel %ecx, %eax
xorl %r9d, %r9d
.loc 0 497 6 is_stmt 0 # cpuinfo/src/x86/isa.c:497:6
leaq 41(%r13), %rcx
.loc 0 497 17 # cpuinfo/src/x86/isa.c:497:17
movabsq $87960930222080, %rdx # imm = 0x500000000000
xorq %rdx, %rcx
movb %r9b, (%rcx)
movb %al, 41(%r13)
.loc 0 503 6 is_stmt 1 # cpuinfo/src/x86/isa.c:503:6
leaq 45(%r13), %rax
.loc 0 503 10 is_stmt 0 # cpuinfo/src/x86/isa.c:503:10
movq %r15, %rdx
shrq $36, %rdx
movl %edx, %ecx
andb $1, %cl
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rax
movb %r9b, (%rax)
movb %cl, 45(%r13)
.loc 0 509 6 is_stmt 1 # cpuinfo/src/x86/isa.c:509:6
leaq 46(%r13), %rcx
.loc 0 509 10 is_stmt 0 # cpuinfo/src/x86/isa.c:509:10
movl %r14d, %eax
shrl $11, %eax
andl $1, %eax
movabsq $87960930222080, %rsi # imm = 0x500000000000
xorq %rsi, %rcx
movb %r9b, (%rcx)
.loc 0 515 22 is_stmt 1 # cpuinfo/src/x86/isa.c:515:22
orb %al, %dl
.loc 0 515 6 is_stmt 0 # cpuinfo/src/x86/isa.c:515:6
leaq 47(%r13), %rsi
.loc 0 515 12 # cpuinfo/src/x86/isa.c:515:12
andb $1, %dl
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rsi
.loc 0 521 21 is_stmt 1 # cpuinfo/src/x86/isa.c:521:21
movq %r15, %rcx
shrq $46, %rcx
andb $1, %cl
movzbl %cl, %r10d
cmpb $0, -68(%rbp) # 1-byte Folded Reload
cmovel %r9d, %r10d
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %r11d, %edi
shrl $13, %edi
movzbl %dil, %edi
vmovd %edi, %xmm0
movl %r11d, %edi
shrl $22, %edi
vpinsrb $2, %edi, %xmm0, %xmm0
movq -56(%rbp), %rdi # 8-byte Reload
.loc 0 576 12 # cpuinfo/src/x86/isa.c:576:12
movl %edi, %ebx
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $3, %edi, %xmm0, %xmm0
movq %rdi, %rcx
.loc 0 576 12 # cpuinfo/src/x86/isa.c:576:12
shrb $5, %bl
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movzbl %bl, %edi
movq -48(%rbp), %rbx # 8-byte Reload
vpinsrb $5, %edi, %xmm0, %xmm0
.loc 0 509 10 # cpuinfo/src/x86/isa.c:509:10
movb %al, 46(%r13)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %r11d, %eax
shrl $23, %eax
vpinsrb $6, %eax, %xmm0, %xmm0
.loc 0 515 12 # cpuinfo/src/x86/isa.c:515:12
movb %r9b, (%rsi)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movl %ecx, %eax
shrl $21, %eax
vpinsrb $7, %eax, %xmm0, %xmm0
.loc 0 515 12 # cpuinfo/src/x86/isa.c:515:12
movb %dl, 47(%r13)
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movq %r8, %rax
shrq $13, %rax
vmovd %eax, %xmm4
.loc 0 549 11 # cpuinfo/src/x86/isa.c:549:11
movq %r15, %rax
shrq $56, %rax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $1, %eax, %xmm4, %xmm4
.loc 0 521 6 # cpuinfo/src/x86/isa.c:521:6
leaq 48(%r13), %rax
.loc 0 521 10 is_stmt 0 # cpuinfo/src/x86/isa.c:521:10
movabsq $87960930222080, %rdx # imm = 0x500000000000
xorq %rdx, %rax
movb %r9b, (%rax)
.loc 0 543 17 is_stmt 1 # cpuinfo/src/x86/isa.c:543:17
movl %r8d, %eax
shrl $22, %eax
vpinsrb $2, %eax, %xmm4, %xmm4
.loc 0 576 12 # cpuinfo/src/x86/isa.c:576:12
movl %r12d, %eax
.loc 0 594 10 # cpuinfo/src/x86/isa.c:594:10
vmovq %r15, %xmm5
vpbroadcastq %xmm5, %xmm5
vpsrlvq .LCPI0_9(%rip), %xmm5, %xmm5
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $3, %r12d, %xmm4, %xmm4
vpinsrb $4, %r14d, %xmm4, %xmm4
.loc 0 576 12 # cpuinfo/src/x86/isa.c:576:12
shrb $5, %al
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movzbl %al, %eax
vpinsrb $5, %eax, %xmm4, %xmm4
movl %r8d, %eax
shrl $23, %eax
vpinsrb $6, %eax, %xmm4, %xmm4
movl %r12d, %eax
shrl $21, %eax
vpinsrb $7, %eax, %xmm4, %xmm4
.loc 0 606 10 # cpuinfo/src/x86/isa.c:606:10
movq %r15, %rax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpshufb .LCPI0_11(%rip), %xmm5, %xmm5 # xmm5 = xmm5[0,8,u,u,u,u,u,u,u,u,u,u,u,u,u,u]
.loc 0 606 10 # cpuinfo/src/x86/isa.c:606:10
shrq $51, %rax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpunpcklqdq %xmm5, %xmm4, %xmm4 # xmm4 = xmm4[0],xmm5[0]
vpinsrb $10, %eax, %xmm4, %xmm4
.loc 0 612 10 # cpuinfo/src/x86/isa.c:612:10
movl %r11d, %eax
shrl $25, %eax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vmovq %xmm0, %xmm0 # xmm0 = xmm0[0],zero
vpinsrb $11, %eax, %xmm0, %xmm0
.loc 0 612 10 # cpuinfo/src/x86/isa.c:612:10
movl %r8d, %eax
shrl $25, %eax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $11, %eax, %xmm4, %xmm4
movl %ebx, %eax
shrl $9, %eax
vpinsrb $12, %eax, %xmm4, %xmm4
.loc 0 624 16 # cpuinfo/src/x86/isa.c:624:16
movl %r11d, %eax
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpinsrb $12, %r9d, %xmm0, %xmm0
.loc 0 624 16 # cpuinfo/src/x86/isa.c:624:16
shrb %al
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movzbl %al, %eax
vpinsrb $13, %eax, %xmm0, %xmm0
.loc 0 624 16 # cpuinfo/src/x86/isa.c:624:16
movl %r8d, %eax
shrb %al
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
movzbl %al, %eax
vpinsrb $13, %eax, %xmm4, %xmm4
.loc 0 521 10 # cpuinfo/src/x86/isa.c:521:10
movb %r10b, 48(%r13)
.loc 0 543 6 # cpuinfo/src/x86/isa.c:543:6
leaq 49(%r13), %rax
.loc 0 630 17 # cpuinfo/src/x86/isa.c:630:17
vpsrlvq .LCPI0_10(%rip), %xmm2, %xmm2
.loc 0 543 17 # cpuinfo/src/x86/isa.c:543:17
vpblendw $128, %xmm3, %xmm0, %xmm0 # xmm0 = xmm0[0,1,2,3,4,5,6],xmm3[7]
vpshufb .LCPI0_12(%rip), %xmm2, %xmm2 # xmm2 = xmm2[u,u,u,u,u,u,u,u,u,u,u,u,u,u,0,8]
vpblendw $128, %xmm2, %xmm4, %xmm2 # xmm2 = xmm4[0,1,2,3,4,5,6],xmm2[7]
vpand %xmm1, %xmm0, %xmm0
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
vmovdqu %xmm0, (%rax)
vpand %xmm1, %xmm2, %xmm0
vmovdqu %xmm0, 49(%r13)
.loc 0 642 6 # cpuinfo/src/x86/isa.c:642:6
leaq 65(%r13), %rax
.loc 0 642 13 is_stmt 0 # cpuinfo/src/x86/isa.c:642:13
shrl $30, %r11d
andb $1, %r11b
movabsq $87960930222080, %rcx # imm = 0x500000000000
xorq %rcx, %rax
movb %r11b, (%rax)
shrl $30, %r8d
andb $1, %r8b
movb %r8b, 65(%r13)
movabsq $87960930222080, %rdi # imm = 0x500000000000
.loc 0 648 6 is_stmt 1 # cpuinfo/src/x86/isa.c:648:6
leaq 66(%r13), %rax
.loc 0 648 13 is_stmt 0 # cpuinfo/src/x86/isa.c:648:13
xorq %rdi, %rax
movb %r9b, (%rax)
shrq $50, %r15
andb $1, %r15b
movb %r15b, 66(%r13)
.loc 0 654 6 is_stmt 1 # cpuinfo/src/x86/isa.c:654:6
leaq 67(%r13), %rax
.loc 0 654 10 is_stmt 0 # cpuinfo/src/x86/isa.c:654:10
xorq %rdi, %rax
movb %r9b, (%rax)
shrl $29, %r14d
andb $1, %r14b
movb %r14b, 67(%r13)
.Ltmp64:
.loc 0 656 13 is_stmt 1 # cpuinfo/src/x86/isa.c:656:13
cmpl $11, 24(%rbp)
.Ltmp65:
.loc 0 656 6 is_stmt 0 # cpuinfo/src/x86/isa.c:656:6
jne .LBB0_24
.Ltmp66:
# %bb.22: # %if.then578
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 104, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: cpuid:eax <- -1073741824
.loc 4 30 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:30:5
movl $-1073741824, %eax # imm = 0xC0000000
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
.Ltmp67:
#DEBUG_VALUE: padlock_meta_info <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 0 64] 0, $eax
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 0 32] $eax
#DEBUG_VALUE: max_padlock_index <- $eax
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 96 32] undef
#DEBUG_VALUE: padlock_meta_info <- [DW_OP_LLVM_fragment 64 64] undef
#DEBUG_VALUE: padlock_info_index <- -1073741823
.loc 0 660 25 # cpuinfo/src/x86/isa.c:660:25
cmpl $-1073741823, %eax # imm = 0xC0000001
.Ltmp68:
.loc 0 660 7 is_stmt 0 # cpuinfo/src/x86/isa.c:660:7
jb .LBB0_24
.Ltmp69:
# %bb.23: # %if.then583
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 104, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
#DEBUG_VALUE: max_padlock_index <- $eax
#DEBUG_VALUE: padlock_info_index <- -1073741823
#DEBUG_VALUE: cpuid:eax <- -1073741823
.loc 4 30 5 is_stmt 1 # cpuinfo/src/x86/cpuid.h:30:5
movl $-1073741823, %eax # imm = 0xC0000001
.Ltmp70:
#APP
xchgq %rbx, %rsi
cpuid
xchgq %rbx, %rsi
#NO_APP
.Ltmp71:
#DEBUG_VALUE: padlock_info <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_constu 32, DW_OP_shl, DW_OP_LLVM_arg 1, DW_OP_LLVM_convert 32 7, DW_OP_LLVM_convert 64 7, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] undef, undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 96 32] $edx
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 0 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 32 32] undef
#DEBUG_VALUE: cpuid:regs <- [DW_OP_LLVM_fragment 64 32] undef
#DEBUG_VALUE: padlock_info <- [DW_OP_LLVM_fragment 0 64] undef
#DEBUG_VALUE: padlock_rng_mask <- 12
.loc 0 669 52 # cpuinfo/src/x86/isa.c:669:52
movl %edx, %ecx
notl %ecx
.loc 0 669 8 is_stmt 0 # cpuinfo/src/x86/isa.c:669:8
leaq 68(%r13), %rsi
.loc 0 669 12 # cpuinfo/src/x86/isa.c:669:12
xorq %rdi, %rsi
xorl %r9d, %r9d
.loc 0 669 52 # cpuinfo/src/x86/isa.c:669:52
testb $12, %cl
.loc 0 669 12 # cpuinfo/src/x86/isa.c:669:12
movb %r9b, (%rsi)
sete 68(%r13)
.Ltmp72:
#DEBUG_VALUE: padlock_ace_mask <- 192
.loc 0 701 32 is_stmt 1 # cpuinfo/src/x86/isa.c:701:32
vmovd %edx, %xmm0
.loc 0 677 8 # cpuinfo/src/x86/isa.c:677:8
leaq 69(%r13), %rsi
.Ltmp73:
#DEBUG_VALUE: padlock_ace2_mask <- 768
.loc 0 685 8 # cpuinfo/src/x86/isa.c:685:8
leaq 70(%r13), %r8
.Ltmp74:
#DEBUG_VALUE: padlock_phe_mask <- 3072
.loc 0 693 8 # cpuinfo/src/x86/isa.c:693:8
leaq 71(%r13), %r10
.Ltmp75:
#DEBUG_VALUE: padlock_pmm_mask <- 12288
.loc 0 701 32 # cpuinfo/src/x86/isa.c:701:32
vpbroadcastd %xmm0, %xmm0
vmovdqa .LCPI0_13(%rip), %xmm1 # xmm1 = [12288,3072,768,192]
vpand %xmm1, %xmm0, %xmm0
.loc 0 701 52 is_stmt 0 # cpuinfo/src/x86/isa.c:701:52
vpcmpeqd %xmm1, %xmm0, %xmm0
vmovmskps %xmm0, %ecx
movl %ecx, %ebx
andb $2, %bl
shrb %bl
movl %ecx, %eax
andb $4, %al
shrb $2, %al
movl %ecx, %edx
shrb $3, %dl
.loc 0 677 12 is_stmt 1 # cpuinfo/src/x86/isa.c:677:12
xorq %rdi, %rsi
movb %r9b, (%rsi)
movb %dl, 69(%r13)
.loc 0 685 13 # cpuinfo/src/x86/isa.c:685:13
xorq %rdi, %r8
movb %r9b, (%r8)
movb %al, 70(%r13)
.loc 0 693 12 # cpuinfo/src/x86/isa.c:693:12
xorq %rdi, %r10
movb %r9b, (%r10)
movb %bl, 71(%r13)
movq -48(%rbp), %rbx # 8-byte Reload
.loc 0 701 8 # cpuinfo/src/x86/isa.c:701:8
leaq 72(%r13), %rax
.loc 0 701 12 is_stmt 0 # cpuinfo/src/x86/isa.c:701:12
andb $1, %cl
xorq %rdi, %rax
movb %r9b, (%rax)
movb %cl, 72(%r13)
.Ltmp76:
.LBB0_24: # %if.end611
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- [DW_OP_LLVM_entry_value 1] $r9d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_LLVM_fragment 64 32] $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 104, DW_OP_minus, DW_OP_LLVM_fragment 96 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 709 6 is_stmt 1 # cpuinfo/src/x86/isa.c:709:6
leaq 73(%r13), %rax
movq -56(%rbp), %rcx # 8-byte Reload
.loc 0 709 10 is_stmt 0 # cpuinfo/src/x86/isa.c:709:10
shrq $15, %rcx
shrq $15, %r12
.Ltmp77:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
andb $1, %cl
andb $1, %r12b
xorq %rdi, %rax
movb %cl, (%rax)
movb %r12b, 73(%r13)
movq -112(%rbp), %rcx # 8-byte Reload
.loc 0 715 13 is_stmt 1 # cpuinfo/src/x86/isa.c:715:13
shrl $27, %ecx
movq -104(%rbp), %rdx # 8-byte Reload
shrl $27, %edx
andb $1, %cl
andb $1, %dl
movq %r13, %rax
xorq %rdi, %rax
movb %cl, (%rax)
movb %dl, (%r13)
.loc 0 721 6 # cpuinfo/src/x86/isa.c:721:6
leaq 1(%r13), %rax
.loc 0 721 12 is_stmt 0 # cpuinfo/src/x86/isa.c:721:12
shrq $22, %rbx
andb $1, %bl
xorq %rdi, %rax
movb $0, (%rax)
movb %bl, 1(%r13)
.loc 0 724 1 is_stmt 1 # cpuinfo/src/x86/isa.c:724:1
movq %r13, %rax
addq $72, %rsp
popq %rbx
popq %r12
popq %r13
.Ltmp78:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$rax+0]
popq %r14
popq %r15
popq %rbp
.cfi_def_cfa %rsp, 8
vzeroupper
retq
.Ltmp79:
.LBB0_25:
.cfi_def_cfa %rbp, 16
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:avx512_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:mpx_regs <- 0
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 62 6 # cpuinfo/src/x86/isa.c:62:6
xorl %edi, %edi
callq __msan_warning_with_origin_noreturn@PLT
.Ltmp80:
.LBB0_26:
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_base_index <- $r12d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:max_extended_index <- [DW_OP_plus_uconst 16] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:vendor <- [DW_OP_plus_uconst 24] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:uarch <- [DW_OP_plus_uconst 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:isa <- [$r13+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:basic_info <- [DW_OP_LLVM_fragment 64 32] $r15d
#DEBUG_VALUE: cpuinfo_x86_detect_isa:extended_info <- [DW_OP_constu 64, DW_OP_minus, DW_OP_LLVM_fragment 64 32] [$rbp+0]
#DEBUG_VALUE: cpuinfo_x86_detect_isa:processor_capacity_info_index <- -2147483640
#DEBUG_VALUE: cpuinfo_x86_detect_isa:osxsave_mask <- 201326592
.loc 0 118 15 # cpuinfo/src/x86/isa.c:118:15
xorl %edi, %edi
callq __msan_warning_with_origin_noreturn@PLT
.Ltmp81:
.Lfunc_end0:
.size cpuinfo_x86_detect_isa, .Lfunc_end0-cpuinfo_x86_detect_isa
.cfi_endproc
.file 5 "cpuinfo/src/x86" "api.h" md5 0x27c8ee589f06b55198de5debd23b68da
# -- End function
.section .text.msan.module_ctor,"axR",@progbits
.p2align 4, 0x90 # -- Begin function msan.module_ctor
.type msan.module_ctor,@function
msan.module_ctor: # @msan.module_ctor
.Lfunc_begin1:
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
callq __msan_init@PLT
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end1:
.size msan.module_ctor, .Lfunc_end1-msan.module_ctor
.cfi_endproc
# -- End function
.section .init_array.0,"aw",@init_array
.p2align 3
.quad msan.module_ctor
.section .debug_loclists,"",@progbits
.long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
.Ldebug_list_header_start0:
.short 5 # Version
.byte 8 # Address size
.byte 0 # Segment selector size
.long 25 # Offset entry count
.Lloclists_table_base0:
.long .Ldebug_loc0-.Lloclists_table_base0
.long .Ldebug_loc1-.Lloclists_table_base0
.long .Ldebug_loc2-.Lloclists_table_base0
.long .Ldebug_loc3-.Lloclists_table_base0
.long .Ldebug_loc4-.Lloclists_table_base0
.long .Ldebug_loc5-.Lloclists_table_base0
.long .Ldebug_loc6-.Lloclists_table_base0
.long .Ldebug_loc7-.Lloclists_table_base0
.long .Ldebug_loc8-.Lloclists_table_base0
.long .Ldebug_loc9-.Lloclists_table_base0
.long .Ldebug_loc10-.Lloclists_table_base0
.long .Ldebug_loc11-.Lloclists_table_base0
.long .Ldebug_loc12-.Lloclists_table_base0
.long .Ldebug_loc13-.Lloclists_table_base0
.long .Ldebug_loc14-.Lloclists_table_base0
.long .Ldebug_loc15-.Lloclists_table_base0
.long .Ldebug_loc16-.Lloclists_table_base0
.long .Ldebug_loc17-.Lloclists_table_base0
.long .Ldebug_loc18-.Lloclists_table_base0
.long .Ldebug_loc19-.Lloclists_table_base0
.long .Ldebug_loc20-.Lloclists_table_base0
.long .Ldebug_loc21-.Lloclists_table_base0
.long .Ldebug_loc22-.Lloclists_table_base0
.long .Ldebug_loc23-.Lloclists_table_base0
.long .Ldebug_loc24-.Lloclists_table_base0
.Ldebug_loc0:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp3-.Lfunc_begin0 # ending offset
.byte 3 # Loc expr size
.byte 84 # DW_OP_reg4
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp3-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp4-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 84 # DW_OP_reg4
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 95 # super-register DW_OP_reg15
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp4-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp46-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 95 # super-register DW_OP_reg15
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp46-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp47-.Lfunc_begin0 # ending offset
.byte 20 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 95 # super-register DW_OP_reg15
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 117 # DW_OP_breg5
.byte 0 # 0
.byte 168 # DW_OP_convert
.asciz "\253\200\200" #
.byte 168 # DW_OP_convert
.asciz "\257\200\200" #
.byte 159 # DW_OP_stack_value
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp47-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp62-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 95 # super-register DW_OP_reg15
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 95 # super-register DW_OP_reg15
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc1:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp2-.Lfunc_begin0 # ending offset
.byte 3 # Loc expr size
.byte 82 # DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp3-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp45-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 64 # -64
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp45-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp50-.Lfunc_begin0 # ending offset
.byte 9 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 64 # -64
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 92 # super-register DW_OP_reg12
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp50-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp54-.Lfunc_begin0 # ending offset
.byte 8 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 81 # super-register DW_OP_reg1
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 92 # super-register DW_OP_reg12
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp54-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp55-.Lfunc_begin0 # ending offset
.byte 9 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 64 # -64
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 92 # super-register DW_OP_reg12
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp55-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp57-.Lfunc_begin0 # ending offset
.byte 8 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 81 # super-register DW_OP_reg1
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 92 # super-register DW_OP_reg12
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp57-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp61-.Lfunc_begin0 # ending offset
.byte 9 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 64 # -64
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 92 # super-register DW_OP_reg12
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp61-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp66-.Lfunc_begin0 # ending offset
.byte 11 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 64 # -64
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 118 # DW_OP_breg6
.byte 152 # -104
.byte 127 #
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp66-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp77-.Lfunc_begin0 # ending offset
.byte 10 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 92 # super-register DW_OP_reg12
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 118 # DW_OP_breg6
.byte 152 # -104
.byte 127 #
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp77-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp79-.Lfunc_begin0 # ending offset
.byte 11 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 64 # -64
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 118 # DW_OP_breg6
.byte 152 # -104
.byte 127 #
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 118 # DW_OP_breg6
.byte 64 # -64
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc2:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Lfunc_begin0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp5-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 89 # super-register DW_OP_reg9
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp5-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp44-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 92 # super-register DW_OP_reg12
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp45-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp79-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 163 # DW_OP_entry_value
.byte 1 # 1
.byte 89 # super-register DW_OP_reg9
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 92 # super-register DW_OP_reg12
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc3:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp0-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp5-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 117 # DW_OP_breg5
.byte 0 # 0
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp5-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp78-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 125 # DW_OP_breg13
.byte 0 # 0
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp78-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp79-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 112 # DW_OP_breg0
.byte 0 # 0
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 125 # DW_OP_breg13
.byte 0 # 0
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc4:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp7-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp8-.Lfunc_begin0 # ending offset
.byte 11 # Loc expr size
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 89 # super-register DW_OP_reg9
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 82 # super-register DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 81 # super-register DW_OP_reg1
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp8-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp9-.Lfunc_begin0 # ending offset
.byte 8 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 82 # super-register DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 81 # super-register DW_OP_reg1
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp9-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp10-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 82 # super-register DW_OP_reg2
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp10-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp11-.Lfunc_begin0 # ending offset
.byte 5 # Loc expr size
.byte 147 # DW_OP_piece
.byte 8 # 8
.byte 83 # super-register DW_OP_reg3
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc5:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp12-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp13-.Lfunc_begin0 # ending offset
.byte 27 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 16 # DW_OP_constu
.byte 32 # 32
.byte 36 # DW_OP_shl
.byte 116 # DW_OP_breg4
.byte 0 # 0
.byte 16 # DW_OP_constu
.byte 255 # 4294967295
.byte 255 #
.byte 255 #
.byte 255 #
.byte 15 #
.byte 26 # DW_OP_and
.byte 168 # DW_OP_convert
.asciz "\257\200\200" #
.byte 168 # DW_OP_convert
.asciz "\253\200\200" #
.byte 33 # DW_OP_or
.byte 159 # DW_OP_stack_value
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc6:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp15-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 12 # Loc expr size
.byte 16 # DW_OP_constu
.byte 136 # 18446744071562067976
.byte 128 #
.byte 128 #
.byte 128 #
.byte 248 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc7:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp36-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp40-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp41-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp80-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc8:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp38-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp40-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp41-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp80-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc9:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp39-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp40-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp41-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp79-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp80-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc10:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp19-.Lfunc_begin0 # starting offset
.uleb128 .Lfunc_end0-.Lfunc_begin0 # ending offset
.byte 6 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 201326592
.byte 128 #
.byte 128 #
.byte 96 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc11:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp25-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp30-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 159 # DW_OP_stack_value
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp30-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 84 # DW_OP_reg4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc12:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp29-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp30-.Lfunc_begin0 # ending offset
.byte 3 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc13:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp32-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp33-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc14:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp33-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 54 # DW_OP_lit6
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc15:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp36-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 230 # 230
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc16:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp38-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp40-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 72 # DW_OP_lit24
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc17:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp67-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp69-.Lfunc_begin0 # ending offset
.byte 24 # Loc expr size
.byte 48 # DW_OP_lit0
.byte 112 # DW_OP_breg0
.byte 0 # 0
.byte 16 # DW_OP_constu
.byte 255 # 4294967295
.byte 255 #
.byte 255 #
.byte 255 #
.byte 15 #
.byte 26 # DW_OP_and
.byte 168 # DW_OP_convert
.asciz "\257\200\200" #
.byte 168 # DW_OP_convert
.asciz "\253\200\200" #
.byte 33 # DW_OP_or
.byte 159 # DW_OP_stack_value
.byte 147 # DW_OP_piece
.byte 4 # 4
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc18:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp67-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp70-.Lfunc_begin0 # ending offset
.byte 1 # Loc expr size
.byte 80 # super-register DW_OP_reg0
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc19:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp67-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp76-.Lfunc_begin0 # ending offset
.byte 12 # Loc expr size
.byte 16 # DW_OP_constu
.byte 129 # 18446744072635809793
.byte 128 #
.byte 128 #
.byte 128 #
.byte 252 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 255 #
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc20:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp71-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp76-.Lfunc_begin0 # ending offset
.byte 2 # Loc expr size
.byte 60 # DW_OP_lit12
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc21:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp72-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp76-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 192 # 192
.byte 1 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc22:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp73-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp76-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 768
.byte 6 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc23:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp74-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp76-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 3072
.byte 24 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_loc24:
.byte 4 # DW_LLE_offset_pair
.uleb128 .Ltmp75-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp76-.Lfunc_begin0 # ending offset
.byte 4 # Loc expr size
.byte 16 # DW_OP_constu
.byte 128 # 12288
.byte 96 #
.byte 159 # DW_OP_stack_value
.byte 0 # DW_LLE_end_of_list
.Ldebug_list_header_end0:
.section .debug_abbrev,"",@progbits
.byte 1 # Abbreviation Code
.byte 17 # DW_TAG_compile_unit
.byte 1 # DW_CHILDREN_yes
.byte 37 # DW_AT_producer
.byte 37 # DW_FORM_strx1
.byte 19 # DW_AT_language
.byte 5 # DW_FORM_data2
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 114 # DW_AT_str_offsets_base
.byte 23 # DW_FORM_sec_offset
.byte 16 # DW_AT_stmt_list
.byte 23 # DW_FORM_sec_offset
.byte 27 # DW_AT_comp_dir
.byte 37 # DW_FORM_strx1
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 115 # DW_AT_addr_base
.byte 23 # DW_FORM_sec_offset
.byte 116 # DW_AT_rnglists_base
.byte 23 # DW_FORM_sec_offset
.ascii "\214\001" # DW_AT_loclists_base
.byte 23 # DW_FORM_sec_offset
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 2 # Abbreviation Code
.byte 36 # DW_TAG_base_type
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 62 # DW_AT_encoding
.byte 11 # DW_FORM_data1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 3 # Abbreviation Code
.byte 4 # DW_TAG_enumeration_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 4 # Abbreviation Code
.byte 40 # DW_TAG_enumerator
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 28 # DW_AT_const_value
.byte 15 # DW_FORM_udata
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 5 # Abbreviation Code
.byte 4 # DW_TAG_enumeration_type
.byte 1 # DW_CHILDREN_yes
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 6 # Abbreviation Code
.byte 22 # DW_TAG_typedef
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 7 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 32 # DW_AT_inline
.byte 33 # DW_FORM_implicit_const
.byte 1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 8 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 9 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 10 # Abbreviation Code
.byte 19 # DW_TAG_structure_type
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 11 # Abbreviation Code
.byte 13 # DW_TAG_member
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 56 # DW_AT_data_member_location
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 12 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 54 # DW_AT_calling_convention
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 32 # DW_AT_inline
.byte 33 # DW_FORM_implicit_const
.byte 1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 13 # Abbreviation Code
.byte 46 # DW_TAG_subprogram
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 64 # DW_AT_frame_base
.byte 24 # DW_FORM_exprloc
.byte 122 # DW_AT_call_all_calls
.byte 25 # DW_FORM_flag_present
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 39 # DW_AT_prototyped
.byte 25 # DW_FORM_flag_present
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 63 # DW_AT_external
.byte 25 # DW_FORM_flag_present
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 14 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 15 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 24 # DW_FORM_exprloc
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 16 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 17 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 18 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 11 # DW_FORM_data1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 19 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 11 # DW_FORM_data1
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 20 # Abbreviation Code
.byte 5 # DW_TAG_formal_parameter
.byte 0 # DW_CHILDREN_no
.byte 28 # DW_AT_const_value
.byte 15 # DW_FORM_udata
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 21 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 22 # Abbreviation Code
.byte 11 # DW_TAG_lexical_block
.byte 1 # DW_CHILDREN_yes
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 23 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 85 # DW_AT_ranges
.byte 35 # DW_FORM_rnglistx
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 11 # DW_FORM_data1
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 24 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 2 # DW_AT_location
.byte 34 # DW_FORM_loclistx
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 25 # Abbreviation Code
.byte 29 # DW_TAG_inlined_subroutine
.byte 1 # DW_CHILDREN_yes
.byte 49 # DW_AT_abstract_origin
.byte 19 # DW_FORM_ref4
.byte 17 # DW_AT_low_pc
.byte 27 # DW_FORM_addrx
.byte 18 # DW_AT_high_pc
.byte 6 # DW_FORM_data4
.byte 88 # DW_AT_call_file
.byte 11 # DW_FORM_data1
.byte 89 # DW_AT_call_line
.byte 5 # DW_FORM_data2
.byte 87 # DW_AT_call_column
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 26 # Abbreviation Code
.byte 52 # DW_TAG_variable
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 38 # DW_FORM_strx2
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 27 # Abbreviation Code
.byte 19 # DW_TAG_structure_type
.byte 1 # DW_CHILDREN_yes
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 11 # DW_AT_byte_size
.byte 11 # DW_FORM_data1
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 28 # Abbreviation Code
.byte 13 # DW_TAG_member
.byte 0 # DW_CHILDREN_no
.byte 3 # DW_AT_name
.byte 37 # DW_FORM_strx1
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 58 # DW_AT_decl_file
.byte 11 # DW_FORM_data1
.byte 59 # DW_AT_decl_line
.byte 5 # DW_FORM_data2
.byte 56 # DW_AT_data_member_location
.byte 11 # DW_FORM_data1
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 29 # Abbreviation Code
.byte 38 # DW_TAG_const_type
.byte 0 # DW_CHILDREN_no
.byte 73 # DW_AT_type
.byte 19 # DW_FORM_ref4
.byte 0 # EOM(1)
.byte 0 # EOM(2)
.byte 0 # EOM(3)
.section .debug_info,"",@progbits
.Lcu_begin0:
.long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
.Ldebug_info_start0:
.short 5 # DWARF version number
.byte 1 # DWARF Unit Type
.byte 8 # Address Size (in bytes)
.long .debug_abbrev # Offset Into Abbrev. Section
.byte 1 # Abbrev [1] 0xc:0x8f5 DW_TAG_compile_unit
.byte 0 # DW_AT_producer
.short 12 # DW_AT_language
.byte 1 # DW_AT_name
.long .Lstr_offsets_base0 # DW_AT_str_offsets_base
.long .Lline_table_start0 # DW_AT_stmt_list
.byte 2 # DW_AT_comp_dir
.byte 0 # DW_AT_low_pc
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
.long .Laddr_table_base0 # DW_AT_addr_base
.long .Lrnglists_table_base0 # DW_AT_rnglists_base
.long .Lloclists_table_base0 # DW_AT_loclists_base
.byte 2 # Abbrev [2] 0x2b:0x4 DW_TAG_base_type
.byte 169 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 8 # DW_AT_byte_size
.byte 2 # Abbrev [2] 0x2f:0x4 DW_TAG_base_type
.byte 168 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 4 # DW_AT_byte_size
.byte 3 # Abbrev [3] 0x33:0x64 DW_TAG_enumeration_type
.long 151 # DW_AT_type
.byte 34 # DW_AT_name
.byte 4 # DW_AT_byte_size
.byte 1 # DW_AT_decl_file
.byte 137 # DW_AT_decl_line
.byte 4 # Abbrev [4] 0x3c:0x3 DW_TAG_enumerator
.byte 4 # DW_AT_name
.byte 0 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x3f:0x3 DW_TAG_enumerator
.byte 5 # DW_AT_name
.byte 1 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x42:0x3 DW_TAG_enumerator
.byte 6 # DW_AT_name
.byte 2 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x45:0x3 DW_TAG_enumerator
.byte 7 # DW_AT_name
.byte 3 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x48:0x3 DW_TAG_enumerator
.byte 8 # DW_AT_name
.byte 4 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x4b:0x3 DW_TAG_enumerator
.byte 9 # DW_AT_name
.byte 5 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x4e:0x3 DW_TAG_enumerator
.byte 10 # DW_AT_name
.byte 6 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x51:0x3 DW_TAG_enumerator
.byte 11 # DW_AT_name
.byte 7 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x54:0x3 DW_TAG_enumerator
.byte 12 # DW_AT_name
.byte 8 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x57:0x3 DW_TAG_enumerator
.byte 13 # DW_AT_name
.byte 9 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x5a:0x3 DW_TAG_enumerator
.byte 14 # DW_AT_name
.byte 10 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x5d:0x3 DW_TAG_enumerator
.byte 15 # DW_AT_name
.byte 11 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x60:0x3 DW_TAG_enumerator
.byte 16 # DW_AT_name
.byte 12 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x63:0x3 DW_TAG_enumerator
.byte 17 # DW_AT_name
.byte 13 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x66:0x3 DW_TAG_enumerator
.byte 18 # DW_AT_name
.byte 14 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x69:0x3 DW_TAG_enumerator
.byte 19 # DW_AT_name
.byte 15 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x6c:0x3 DW_TAG_enumerator
.byte 20 # DW_AT_name
.byte 16 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x6f:0x3 DW_TAG_enumerator
.byte 21 # DW_AT_name
.byte 30 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x72:0x3 DW_TAG_enumerator
.byte 22 # DW_AT_name
.byte 31 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x75:0x3 DW_TAG_enumerator
.byte 23 # DW_AT_name
.byte 32 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x78:0x3 DW_TAG_enumerator
.byte 24 # DW_AT_name
.byte 33 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x7b:0x3 DW_TAG_enumerator
.byte 25 # DW_AT_name
.byte 34 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x7e:0x3 DW_TAG_enumerator
.byte 26 # DW_AT_name
.byte 50 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x81:0x3 DW_TAG_enumerator
.byte 27 # DW_AT_name
.byte 51 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x84:0x3 DW_TAG_enumerator
.byte 28 # DW_AT_name
.byte 52 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x87:0x3 DW_TAG_enumerator
.byte 29 # DW_AT_name
.byte 53 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x8a:0x3 DW_TAG_enumerator
.byte 30 # DW_AT_name
.byte 54 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x8d:0x3 DW_TAG_enumerator
.byte 31 # DW_AT_name
.byte 55 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x90:0x3 DW_TAG_enumerator
.byte 32 # DW_AT_name
.byte 56 # DW_AT_const_value
.byte 4 # Abbrev [4] 0x93:0x3 DW_TAG_enumerator
.byte 33 # DW_AT_name
.byte 57 # DW_AT_const_value
.byte 0 # End Of Children Mark
.byte 2 # Abbrev [2] 0x97:0x4 DW_TAG_base_type
.byte 3 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 4 # DW_AT_byte_size
.byte 5 # Abbrev [5] 0x9b:0x29c DW_TAG_enumeration_type
.long 151 # DW_AT_type
.byte 150 # DW_AT_name
.byte 4 # DW_AT_byte_size
.byte 1 # DW_AT_decl_file
.short 266 # DW_AT_decl_line
.byte 4 # Abbrev [4] 0xa5:0x3 DW_TAG_enumerator
.byte 35 # DW_AT_name
.byte 0 # DW_AT_const_value
.byte 4 # Abbrev [4] 0xa8:0x5 DW_TAG_enumerator
.byte 36 # DW_AT_name
.ascii "\200\202@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xad:0x5 DW_TAG_enumerator
.byte 37 # DW_AT_name
.ascii "\201\202@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xb2:0x5 DW_TAG_enumerator
.byte 38 # DW_AT_name
.ascii "\200\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xb7:0x5 DW_TAG_enumerator
.byte 39 # DW_AT_name
.ascii "\201\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xbc:0x5 DW_TAG_enumerator
.byte 40 # DW_AT_name
.ascii "\202\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xc1:0x5 DW_TAG_enumerator
.byte 41 # DW_AT_name
.ascii "\203\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xc6:0x5 DW_TAG_enumerator
.byte 42 # DW_AT_name
.ascii "\204\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xcb:0x5 DW_TAG_enumerator
.byte 43 # DW_AT_name
.ascii "\205\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xd0:0x5 DW_TAG_enumerator
.byte 44 # DW_AT_name
.ascii "\206\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xd5:0x5 DW_TAG_enumerator
.byte 45 # DW_AT_name
.ascii "\207\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xda:0x5 DW_TAG_enumerator
.byte 46 # DW_AT_name
.ascii "\210\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xdf:0x5 DW_TAG_enumerator
.byte 47 # DW_AT_name
.ascii "\211\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xe4:0x5 DW_TAG_enumerator
.byte 48 # DW_AT_name
.ascii "\212\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xe9:0x5 DW_TAG_enumerator
.byte 49 # DW_AT_name
.ascii "\212\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xee:0x5 DW_TAG_enumerator
.byte 50 # DW_AT_name
.ascii "\213\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xf3:0x5 DW_TAG_enumerator
.byte 51 # DW_AT_name
.ascii "\214\204@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xf8:0x5 DW_TAG_enumerator
.byte 52 # DW_AT_name
.ascii "\200\206@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0xfd:0x5 DW_TAG_enumerator
.byte 53 # DW_AT_name
.ascii "\201\206@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x102:0x5 DW_TAG_enumerator
.byte 54 # DW_AT_name
.ascii "\200\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x107:0x5 DW_TAG_enumerator
.byte 55 # DW_AT_name
.ascii "\201\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x10c:0x5 DW_TAG_enumerator
.byte 56 # DW_AT_name
.ascii "\202\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x111:0x5 DW_TAG_enumerator
.byte 57 # DW_AT_name
.ascii "\203\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x116:0x5 DW_TAG_enumerator
.byte 58 # DW_AT_name
.ascii "\204\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x11b:0x5 DW_TAG_enumerator
.byte 59 # DW_AT_name
.ascii "\205\210@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x120:0x5 DW_TAG_enumerator
.byte 60 # DW_AT_name
.ascii "\200\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x125:0x5 DW_TAG_enumerator
.byte 61 # DW_AT_name
.ascii "\201\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x12a:0x5 DW_TAG_enumerator
.byte 62 # DW_AT_name
.ascii "\202\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x12f:0x5 DW_TAG_enumerator
.byte 63 # DW_AT_name
.ascii "\203\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x134:0x5 DW_TAG_enumerator
.byte 64 # DW_AT_name
.ascii "\204\212@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x139:0x5 DW_TAG_enumerator
.byte 65 # DW_AT_name
.ascii "\200\214@" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x13e:0x6 DW_TAG_enumerator
.byte 66 # DW_AT_name
.ascii "\200\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x144:0x6 DW_TAG_enumerator
.byte 67 # DW_AT_name
.ascii "\201\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x14a:0x6 DW_TAG_enumerator
.byte 68 # DW_AT_name
.ascii "\202\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x150:0x6 DW_TAG_enumerator
.byte 69 # DW_AT_name
.ascii "\203\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x156:0x6 DW_TAG_enumerator
.byte 70 # DW_AT_name
.ascii "\204\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x15c:0x6 DW_TAG_enumerator
.byte 71 # DW_AT_name
.ascii "\205\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x162:0x6 DW_TAG_enumerator
.byte 72 # DW_AT_name
.ascii "\206\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x168:0x6 DW_TAG_enumerator
.byte 73 # DW_AT_name
.ascii "\207\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x16e:0x6 DW_TAG_enumerator
.byte 74 # DW_AT_name
.ascii "\210\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x174:0x6 DW_TAG_enumerator
.byte 75 # DW_AT_name
.ascii "\211\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x17a:0x6 DW_TAG_enumerator
.byte 76 # DW_AT_name
.ascii "\212\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x180:0x6 DW_TAG_enumerator
.byte 77 # DW_AT_name
.ascii "\213\202\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x186:0x6 DW_TAG_enumerator
.byte 78 # DW_AT_name
.ascii "\200\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x18c:0x6 DW_TAG_enumerator
.byte 79 # DW_AT_name
.ascii "\201\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x192:0x6 DW_TAG_enumerator
.byte 80 # DW_AT_name
.ascii "\202\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x198:0x6 DW_TAG_enumerator
.byte 81 # DW_AT_name
.ascii "\203\204\200\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x19e:0x6 DW_TAG_enumerator
.byte 82 # DW_AT_name
.ascii "\200\202\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1a4:0x6 DW_TAG_enumerator
.byte 83 # DW_AT_name
.ascii "\201\202\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1aa:0x6 DW_TAG_enumerator
.byte 84 # DW_AT_name
.ascii "\202\202\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1b0:0x6 DW_TAG_enumerator
.byte 85 # DW_AT_name
.ascii "\205\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1b6:0x6 DW_TAG_enumerator
.byte 86 # DW_AT_name
.ascii "\207\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1bc:0x6 DW_TAG_enumerator
.byte 87 # DW_AT_name
.ascii "\210\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1c2:0x6 DW_TAG_enumerator
.byte 88 # DW_AT_name
.ascii "\211\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1c8:0x6 DW_TAG_enumerator
.byte 89 # DW_AT_name
.ascii "\222\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1ce:0x6 DW_TAG_enumerator
.byte 90 # DW_AT_name
.ascii "\225\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1d4:0x6 DW_TAG_enumerator
.byte 91 # DW_AT_name
.ascii "\227\204\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1da:0x6 DW_TAG_enumerator
.byte 92 # DW_AT_name
.ascii "\262\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1e0:0x6 DW_TAG_enumerator
.byte 93 # DW_AT_name
.ascii "\265\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1e6:0x6 DW_TAG_enumerator
.byte 94 # DW_AT_name
.ascii "\323\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1ec:0x6 DW_TAG_enumerator
.byte 95 # DW_AT_name
.ascii "\324\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1f2:0x6 DW_TAG_enumerator
.byte 96 # DW_AT_name
.ascii "\325\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1f8:0x6 DW_TAG_enumerator
.byte 97 # DW_AT_name
.ascii "\327\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x1fe:0x6 DW_TAG_enumerator
.byte 98 # DW_AT_name
.ascii "\345\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x204:0x6 DW_TAG_enumerator
.byte 99 # DW_AT_name
.ascii "\362\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x20a:0x6 DW_TAG_enumerator
.byte 100 # DW_AT_name
.ascii "\363\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x210:0x6 DW_TAG_enumerator
.byte 101 # DW_AT_name
.ascii "\365\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x216:0x6 DW_TAG_enumerator
.byte 102 # DW_AT_name
.ascii "\366\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x21c:0x6 DW_TAG_enumerator
.byte 103 # DW_AT_name
.ascii "\367\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x222:0x6 DW_TAG_enumerator
.byte 104 # DW_AT_name
.ascii "\370\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x228:0x6 DW_TAG_enumerator
.byte 105 # DW_AT_name
.ascii "\200\210\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x22e:0x6 DW_TAG_enumerator
.byte 106 # DW_AT_name
.ascii "\201\210\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x234:0x6 DW_TAG_enumerator
.byte 107 # DW_AT_name
.ascii "\200\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x23a:0x6 DW_TAG_enumerator
.byte 108 # DW_AT_name
.ascii "\202\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x240:0x6 DW_TAG_enumerator
.byte 109 # DW_AT_name
.ascii "\321\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x246:0x6 DW_TAG_enumerator
.byte 110 # DW_AT_name
.ascii "\361\212\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x24c:0x6 DW_TAG_enumerator
.byte 111 # DW_AT_name
.ascii "\200\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x252:0x6 DW_TAG_enumerator
.byte 112 # DW_AT_name
.ascii "\201\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x258:0x6 DW_TAG_enumerator
.byte 113 # DW_AT_name
.ascii "\202\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x25e:0x6 DW_TAG_enumerator
.byte 114 # DW_AT_name
.ascii "\203\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x264:0x6 DW_TAG_enumerator
.byte 115 # DW_AT_name
.ascii "\204\202\200\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x26a:0x6 DW_TAG_enumerator
.byte 116 # DW_AT_name
.ascii "\200\202\300\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x270:0x6 DW_TAG_enumerator
.byte 117 # DW_AT_name
.ascii "\201\202\300\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x276:0x6 DW_TAG_enumerator
.byte 118 # DW_AT_name
.ascii "\202\202\300\002" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x27c:0x6 DW_TAG_enumerator
.byte 119 # DW_AT_name
.ascii "\200\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x282:0x6 DW_TAG_enumerator
.byte 120 # DW_AT_name
.ascii "\201\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x288:0x6 DW_TAG_enumerator
.byte 121 # DW_AT_name
.ascii "\202\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x28e:0x6 DW_TAG_enumerator
.byte 122 # DW_AT_name
.ascii "\203\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x294:0x6 DW_TAG_enumerator
.byte 123 # DW_AT_name
.ascii "\204\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x29a:0x6 DW_TAG_enumerator
.byte 124 # DW_AT_name
.ascii "\366\206\300\001" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2a0:0x6 DW_TAG_enumerator
.byte 125 # DW_AT_name
.ascii "\200\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2a6:0x6 DW_TAG_enumerator
.byte 126 # DW_AT_name
.ascii "\201\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2ac:0x6 DW_TAG_enumerator
.byte 127 # DW_AT_name
.ascii "\202\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2b2:0x6 DW_TAG_enumerator
.byte 128 # DW_AT_name
.ascii "\203\202\200\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2b8:0x6 DW_TAG_enumerator
.byte 129 # DW_AT_name
.ascii "\200\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2be:0x6 DW_TAG_enumerator
.byte 130 # DW_AT_name
.ascii "\201\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2c4:0x6 DW_TAG_enumerator
.byte 131 # DW_AT_name
.ascii "\202\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2ca:0x6 DW_TAG_enumerator
.byte 132 # DW_AT_name
.ascii "\203\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2d0:0x6 DW_TAG_enumerator
.byte 133 # DW_AT_name
.ascii "\204\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2d6:0x6 DW_TAG_enumerator
.byte 134 # DW_AT_name
.ascii "\205\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2dc:0x6 DW_TAG_enumerator
.byte 135 # DW_AT_name
.ascii "\206\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2e2:0x6 DW_TAG_enumerator
.byte 136 # DW_AT_name
.ascii "\207\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2e8:0x6 DW_TAG_enumerator
.byte 137 # DW_AT_name
.ascii "\210\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2ee:0x6 DW_TAG_enumerator
.byte 138 # DW_AT_name
.ascii "\211\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2f4:0x6 DW_TAG_enumerator
.byte 139 # DW_AT_name
.ascii "\212\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x2fa:0x6 DW_TAG_enumerator
.byte 140 # DW_AT_name
.ascii "\213\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x300:0x6 DW_TAG_enumerator
.byte 141 # DW_AT_name
.ascii "\214\202\300\003" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x306:0x6 DW_TAG_enumerator
.byte 142 # DW_AT_name
.ascii "\200\202\200\004" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x30c:0x6 DW_TAG_enumerator
.byte 143 # DW_AT_name
.ascii "\200\204\200\004" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x312:0x6 DW_TAG_enumerator
.byte 144 # DW_AT_name
.ascii "\200\202\300\004" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x318:0x6 DW_TAG_enumerator
.byte 145 # DW_AT_name
.ascii "\200\202\200\005" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x31e:0x6 DW_TAG_enumerator
.byte 146 # DW_AT_name
.ascii "\201\202\200\005" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x324:0x6 DW_TAG_enumerator
.byte 147 # DW_AT_name
.ascii "\200\202\300\005" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x32a:0x6 DW_TAG_enumerator
.byte 148 # DW_AT_name
.ascii "\200\202\200\b" # DW_AT_const_value
.byte 4 # Abbrev [4] 0x330:0x6 DW_TAG_enumerator
.byte 149 # DW_AT_name
.ascii "\200\202\200\006" # DW_AT_const_value
.byte 0 # End Of Children Mark
.byte 6 # Abbrev [6] 0x337:0x8 DW_TAG_typedef
.long 831 # DW_AT_type
.byte 153 # DW_AT_name
.byte 3 # DW_AT_decl_file
.byte 27 # DW_AT_decl_line
.byte 6 # Abbrev [6] 0x33f:0x8 DW_TAG_typedef
.long 839 # DW_AT_type
.byte 152 # DW_AT_name
.byte 2 # DW_AT_decl_file
.byte 44 # DW_AT_decl_line
.byte 2 # Abbrev [2] 0x347:0x4 DW_TAG_base_type
.byte 151 # DW_AT_name
.byte 7 # DW_AT_encoding
.byte 8 # DW_AT_byte_size
.byte 7 # Abbrev [7] 0x34b:0x21 DW_TAG_subprogram
.byte 154 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
# DW_AT_prototyped
.long 876 # DW_AT_type
# DW_AT_inline
.byte 8 # Abbrev [8] 0x353:0x8 DW_TAG_formal_parameter
.byte 155 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 8 # Abbrev [8] 0x35b:0x8 DW_TAG_formal_parameter
.byte 159 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x363:0x8 DW_TAG_variable
.byte 162 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 54 # DW_AT_decl_line
.long 876 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 10 # Abbrev [10] 0x36c:0x2a DW_TAG_structure_type
.byte 161 # DW_AT_name
.byte 16 # DW_AT_byte_size
.byte 5 # DW_AT_decl_file
.byte 10 # DW_AT_decl_line
.byte 11 # Abbrev [11] 0x371:0x9 DW_TAG_member
.byte 155 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 11 # DW_AT_decl_line
.byte 0 # DW_AT_data_member_location
.byte 11 # Abbrev [11] 0x37a:0x9 DW_TAG_member
.byte 158 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 12 # DW_AT_decl_line
.byte 4 # DW_AT_data_member_location
.byte 11 # Abbrev [11] 0x383:0x9 DW_TAG_member
.byte 159 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 13 # DW_AT_decl_line
.byte 8 # DW_AT_data_member_location
.byte 11 # Abbrev [11] 0x38c:0x9 DW_TAG_member
.byte 160 # DW_AT_name
.long 918 # DW_AT_type
.byte 5 # DW_AT_decl_file
.byte 14 # DW_AT_decl_line
.byte 12 # DW_AT_data_member_location
.byte 0 # End Of Children Mark
.byte 6 # Abbrev [6] 0x396:0x8 DW_TAG_typedef
.long 926 # DW_AT_type
.byte 157 # DW_AT_name
.byte 3 # DW_AT_decl_file
.byte 26 # DW_AT_decl_line
.byte 6 # Abbrev [6] 0x39e:0x8 DW_TAG_typedef
.long 151 # DW_AT_type
.byte 156 # DW_AT_name
.byte 2 # DW_AT_decl_file
.byte 41 # DW_AT_decl_line
.byte 7 # Abbrev [7] 0x3a6:0x19 DW_TAG_subprogram
.byte 163 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 17 # DW_AT_decl_line
# DW_AT_prototyped
.long 876 # DW_AT_type
# DW_AT_inline
.byte 8 # Abbrev [8] 0x3ae:0x8 DW_TAG_formal_parameter
.byte 155 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 17 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x3b6:0x8 DW_TAG_variable
.byte 162 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 28 # DW_AT_decl_line
.long 876 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 12 # Abbrev [12] 0x3bf:0x22 DW_TAG_subprogram
.byte 164 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 70 # DW_AT_decl_line
# DW_AT_prototyped
.byte 3 # DW_AT_calling_convention
.long 823 # DW_AT_type
# DW_AT_inline
.byte 8 # Abbrev [8] 0x3c8:0x8 DW_TAG_formal_parameter
.byte 165 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 70 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x3d0:0x8 DW_TAG_variable
.byte 166 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 74 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 9 # Abbrev [9] 0x3d8:0x8 DW_TAG_variable
.byte 167 # DW_AT_name
.byte 4 # DW_AT_decl_file
.byte 74 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 0 # End Of Children Mark
.byte 13 # Abbrev [13] 0x3e1:0x221 DW_TAG_subprogram
.byte 0 # DW_AT_low_pc
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
.byte 1 # DW_AT_frame_base
.byte 86
# DW_AT_call_all_calls
.byte 170 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 38 # DW_AT_decl_line
# DW_AT_prototyped
.long 1538 # DW_AT_type
# DW_AT_external
.byte 14 # Abbrev [14] 0x3f0:0x9 DW_TAG_formal_parameter
.byte 0 # DW_AT_location
.byte 247 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 39 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 14 # Abbrev [14] 0x3f9:0x9 DW_TAG_formal_parameter
.byte 1 # DW_AT_location
.byte 248 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 39 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 14 # Abbrev [14] 0x402:0x9 DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 249 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 40 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 15 # Abbrev [15] 0x40b:0xb DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 145
.byte 16
.byte 250 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 40 # DW_AT_decl_line
.long 918 # DW_AT_type
.byte 15 # Abbrev [15] 0x416:0xb DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 145
.byte 24
.byte 251 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 41 # DW_AT_decl_line
.long 51 # DW_AT_type
.byte 15 # Abbrev [15] 0x421:0xb DW_TAG_formal_parameter
.byte 2 # DW_AT_location
.byte 145
.byte 32
.byte 252 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 41 # DW_AT_decl_line
.long 155 # DW_AT_type
.byte 16 # Abbrev [16] 0x42c:0x9 DW_TAG_variable
.byte 3 # DW_AT_location
.byte 253 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 43 # DW_AT_decl_line
.long 1538 # DW_AT_type
.byte 16 # Abbrev [16] 0x435:0x9 DW_TAG_variable
.byte 5 # DW_AT_location
.byte 254 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 47 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 16 # Abbrev [16] 0x43e:0x9 DW_TAG_variable
.byte 6 # DW_AT_location
.byte 255 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 50 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 17 # Abbrev [17] 0x447:0x9 DW_TAG_variable
.short 256 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 51 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 18 # Abbrev [18] 0x450:0xa DW_TAG_variable
.byte 7 # DW_AT_location
.short 257 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 55 # DW_AT_decl_line
.long 2285 # DW_AT_type
.byte 18 # Abbrev [18] 0x45a:0xa DW_TAG_variable
.byte 8 # DW_AT_location
.short 258 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 55 # DW_AT_decl_line
.long 2285 # DW_AT_type
.byte 18 # Abbrev [18] 0x464:0xa DW_TAG_variable
.byte 9 # DW_AT_location
.short 259 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 55 # DW_AT_decl_line
.long 2285 # DW_AT_type
.byte 18 # Abbrev [18] 0x46e:0xa DW_TAG_variable
.byte 10 # DW_AT_location
.short 260 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 61 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 17 # Abbrev [17] 0x478:0x9 DW_TAG_variable
.short 274 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 45 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 19 # Abbrev [19] 0x481:0x20 DW_TAG_inlined_subroutine
.long 843 # DW_AT_abstract_origin
.byte 1 # DW_AT_low_pc
.long .Ltmp11-.Ltmp6 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 46 # DW_AT_call_line
.byte 27 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x48e:0x6 DW_TAG_formal_parameter
.byte 7 # DW_AT_const_value
.long 851 # DW_AT_abstract_origin
.byte 20 # Abbrev [20] 0x494:0x6 DW_TAG_formal_parameter
.byte 0 # DW_AT_const_value
.long 859 # DW_AT_abstract_origin
.byte 21 # Abbrev [21] 0x49a:0x6 DW_TAG_variable
.byte 4 # DW_AT_location
.long 867 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 19 # Abbrev [19] 0x4a1:0x1a DW_TAG_inlined_subroutine
.long 843 # DW_AT_abstract_origin
.byte 2 # DW_AT_low_pc
.long .Ltmp12-.Ltmp11 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 48 # DW_AT_call_line
.byte 27 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x4ae:0x6 DW_TAG_formal_parameter
.byte 7 # DW_AT_const_value
.long 851 # DW_AT_abstract_origin
.byte 20 # Abbrev [20] 0x4b4:0x6 DW_TAG_formal_parameter
.byte 1 # DW_AT_const_value
.long 859 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 19 # Abbrev [19] 0x4bb:0x1d DW_TAG_inlined_subroutine
.long 934 # DW_AT_abstract_origin
.byte 3 # DW_AT_low_pc
.long .Ltmp17-.Ltmp16 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 53 # DW_AT_call_line
.byte 4 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x4c8:0xf DW_TAG_formal_parameter
.ascii "\210\200\200\200\370\377\377\377\377\001" # DW_AT_const_value
.long 942 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 22 # Abbrev [22] 0x4d8:0x7d DW_TAG_lexical_block
.byte 4 # DW_AT_low_pc
.long .Ltmp40-.Ltmp26 # DW_AT_high_pc
.byte 18 # Abbrev [18] 0x4de:0xa DW_TAG_variable
.byte 11 # DW_AT_location
.short 261 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 63 # DW_AT_decl_line
.long 823 # DW_AT_type
.byte 18 # Abbrev [18] 0x4e8:0xa DW_TAG_variable
.byte 14 # DW_AT_location
.short 262 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 76 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 18 # Abbrev [18] 0x4f2:0xa DW_TAG_variable
.byte 15 # DW_AT_location
.short 263 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 89 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 18 # Abbrev [18] 0x4fc:0xa DW_TAG_variable
.byte 16 # DW_AT_location
.short 264 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 99 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 17 # Abbrev [17] 0x506:0x9 DW_TAG_variable
.short 275 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 69 # DW_AT_decl_line
.long 2299 # DW_AT_type
.byte 22 # Abbrev [22] 0x50f:0x2f DW_TAG_lexical_block
.byte 5 # DW_AT_low_pc
.long .Ltmp30-.Ltmp28 # DW_AT_high_pc
.byte 9 # Abbrev [9] 0x515:0x8 DW_TAG_variable
.byte 162 # DW_AT_name
.byte 0 # DW_AT_decl_file
.byte 65 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 19 # Abbrev [19] 0x51d:0x20 DW_TAG_inlined_subroutine
.long 843 # DW_AT_abstract_origin
.byte 5 # DW_AT_low_pc
.long .Ltmp30-.Ltmp28 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.byte 65 # DW_AT_call_line
.byte 35 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x52a:0x6 DW_TAG_formal_parameter
.byte 13 # DW_AT_const_value
.long 851 # DW_AT_abstract_origin
.byte 20 # Abbrev [20] 0x530:0x6 DW_TAG_formal_parameter
.byte 0 # DW_AT_const_value
.long 859 # DW_AT_abstract_origin
.byte 21 # Abbrev [21] 0x536:0x6 DW_TAG_variable
.byte 12 # DW_AT_location
.long 867 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 23 # Abbrev [23] 0x53e:0x16 DW_TAG_inlined_subroutine
.long 959 # DW_AT_abstract_origin
.byte 0 # DW_AT_ranges
.byte 0 # DW_AT_call_file
.byte 69 # DW_AT_call_line
.byte 42 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x547:0x6 DW_TAG_formal_parameter
.byte 0 # DW_AT_const_value
.long 968 # DW_AT_abstract_origin
.byte 21 # Abbrev [21] 0x54d:0x6 DW_TAG_variable
.byte 13 # DW_AT_location
.long 976 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 22 # Abbrev [22] 0x555:0xac DW_TAG_lexical_block
.byte 6 # DW_AT_low_pc
.long .Ltmp76-.Ltmp66 # DW_AT_high_pc
.byte 24 # Abbrev [24] 0x55b:0xb DW_TAG_variable
.byte 17 # DW_AT_location
.short 265 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 657 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 24 # Abbrev [24] 0x566:0xb DW_TAG_variable
.byte 18 # DW_AT_location
.short 266 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 658 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x571:0xb DW_TAG_variable
.byte 19 # DW_AT_location
.short 267 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 659 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 25 # Abbrev [25] 0x57c:0x1e DW_TAG_inlined_subroutine
.long 934 # DW_AT_abstract_origin
.byte 6 # DW_AT_low_pc
.long .Ltmp67-.Ltmp66 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.short 657 # DW_AT_call_line
.byte 47 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x58a:0xf DW_TAG_formal_parameter
.ascii "\200\200\200\200\374\377\377\377\377\001" # DW_AT_const_value
.long 942 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 22 # Abbrev [22] 0x59a:0x66 DW_TAG_lexical_block
.byte 7 # DW_AT_low_pc
.long .Ltmp76-.Ltmp69 # DW_AT_high_pc
.byte 26 # Abbrev [26] 0x5a0:0xa DW_TAG_variable
.short 268 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 661 # DW_AT_decl_line
.long 2289 # DW_AT_type
.byte 24 # Abbrev [24] 0x5aa:0xb DW_TAG_variable
.byte 20 # DW_AT_location
.short 269 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 668 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5b5:0xb DW_TAG_variable
.byte 21 # DW_AT_location
.short 270 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 676 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5c0:0xb DW_TAG_variable
.byte 22 # DW_AT_location
.short 271 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 684 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5cb:0xb DW_TAG_variable
.byte 23 # DW_AT_location
.short 272 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 692 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 24 # Abbrev [24] 0x5d6:0xb DW_TAG_variable
.byte 24 # DW_AT_location
.short 273 # DW_AT_name
.byte 0 # DW_AT_decl_file
.short 700 # DW_AT_decl_line
.long 2294 # DW_AT_type
.byte 25 # Abbrev [25] 0x5e1:0x1e DW_TAG_inlined_subroutine
.long 934 # DW_AT_abstract_origin
.byte 7 # DW_AT_low_pc
.long .Ltmp71-.Ltmp69 # DW_AT_high_pc
.byte 0 # DW_AT_call_file
.short 661 # DW_AT_call_line
.byte 43 # DW_AT_call_column
.byte 20 # Abbrev [20] 0x5ef:0xf DW_TAG_formal_parameter
.ascii "\201\200\200\200\374\377\377\377\377\001" # DW_AT_const_value
.long 942 # DW_AT_abstract_origin
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 0 # End Of Children Mark
.byte 27 # Abbrev [27] 0x602:0x2eb DW_TAG_structure_type
.byte 246 # DW_AT_name
.byte 74 # DW_AT_byte_size
.byte 1 # DW_AT_decl_file
.short 670 # DW_AT_decl_line
.byte 28 # Abbrev [28] 0x608:0xa DW_TAG_member
.byte 171 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 674 # DW_AT_decl_line
.byte 0 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x612:0xa DW_TAG_member
.byte 173 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 675 # DW_AT_decl_line
.byte 1 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x61c:0xa DW_TAG_member
.byte 174 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 676 # DW_AT_decl_line
.byte 2 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x626:0xa DW_TAG_member
.byte 175 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 680 # DW_AT_decl_line
.byte 3 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x630:0xa DW_TAG_member
.byte 176 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 681 # DW_AT_decl_line
.byte 4 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x63a:0xa DW_TAG_member
.byte 177 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 682 # DW_AT_decl_line
.byte 5 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x644:0xa DW_TAG_member
.byte 178 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 683 # DW_AT_decl_line
.byte 6 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x64e:0xa DW_TAG_member
.byte 179 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 684 # DW_AT_decl_line
.byte 7 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x658:0xa DW_TAG_member
.byte 180 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 685 # DW_AT_decl_line
.byte 8 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x662:0xa DW_TAG_member
.byte 181 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 689 # DW_AT_decl_line
.byte 9 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x66c:0xa DW_TAG_member
.byte 182 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 690 # DW_AT_decl_line
.byte 10 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x676:0xa DW_TAG_member
.byte 183 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 696 # DW_AT_decl_line
.byte 11 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x680:0xa DW_TAG_member
.byte 184 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 697 # DW_AT_decl_line
.byte 12 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x68a:0xa DW_TAG_member
.byte 185 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 701 # DW_AT_decl_line
.byte 13 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x694:0xa DW_TAG_member
.byte 186 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 702 # DW_AT_decl_line
.byte 14 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x69e:0xa DW_TAG_member
.byte 187 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 703 # DW_AT_decl_line
.byte 15 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6a8:0xa DW_TAG_member
.byte 188 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 709 # DW_AT_decl_line
.byte 16 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6b2:0xa DW_TAG_member
.byte 189 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 710 # DW_AT_decl_line
.byte 17 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6bc:0xa DW_TAG_member
.byte 190 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 711 # DW_AT_decl_line
.byte 18 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6c6:0xa DW_TAG_member
.byte 191 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 712 # DW_AT_decl_line
.byte 19 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6d0:0xa DW_TAG_member
.byte 192 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 713 # DW_AT_decl_line
.byte 20 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6da:0xa DW_TAG_member
.byte 193 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 714 # DW_AT_decl_line
.byte 21 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6e4:0xa DW_TAG_member
.byte 194 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 715 # DW_AT_decl_line
.byte 22 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6ee:0xa DW_TAG_member
.byte 195 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 716 # DW_AT_decl_line
.byte 23 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x6f8:0xa DW_TAG_member
.byte 196 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 717 # DW_AT_decl_line
.byte 24 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x702:0xa DW_TAG_member
.byte 197 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 718 # DW_AT_decl_line
.byte 25 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x70c:0xa DW_TAG_member
.byte 198 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 719 # DW_AT_decl_line
.byte 26 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x716:0xa DW_TAG_member
.byte 199 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 720 # DW_AT_decl_line
.byte 27 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x720:0xa DW_TAG_member
.byte 200 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 721 # DW_AT_decl_line
.byte 28 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x72a:0xa DW_TAG_member
.byte 201 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 722 # DW_AT_decl_line
.byte 29 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x734:0xa DW_TAG_member
.byte 202 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 723 # DW_AT_decl_line
.byte 30 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x73e:0xa DW_TAG_member
.byte 203 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 724 # DW_AT_decl_line
.byte 31 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x748:0xa DW_TAG_member
.byte 204 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 725 # DW_AT_decl_line
.byte 32 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x752:0xa DW_TAG_member
.byte 205 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 726 # DW_AT_decl_line
.byte 33 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x75c:0xa DW_TAG_member
.byte 206 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 727 # DW_AT_decl_line
.byte 34 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x766:0xa DW_TAG_member
.byte 207 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 728 # DW_AT_decl_line
.byte 35 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x770:0xa DW_TAG_member
.byte 208 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 729 # DW_AT_decl_line
.byte 36 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x77a:0xa DW_TAG_member
.byte 209 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 730 # DW_AT_decl_line
.byte 37 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x784:0xa DW_TAG_member
.byte 210 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 731 # DW_AT_decl_line
.byte 38 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x78e:0xa DW_TAG_member
.byte 211 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 732 # DW_AT_decl_line
.byte 39 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x798:0xa DW_TAG_member
.byte 212 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 733 # DW_AT_decl_line
.byte 40 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7a2:0xa DW_TAG_member
.byte 213 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 734 # DW_AT_decl_line
.byte 41 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7ac:0xa DW_TAG_member
.byte 214 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 735 # DW_AT_decl_line
.byte 42 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7b6:0xa DW_TAG_member
.byte 215 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 736 # DW_AT_decl_line
.byte 43 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7c0:0xa DW_TAG_member
.byte 216 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 737 # DW_AT_decl_line
.byte 44 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7ca:0xa DW_TAG_member
.byte 217 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 738 # DW_AT_decl_line
.byte 45 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7d4:0xa DW_TAG_member
.byte 218 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 739 # DW_AT_decl_line
.byte 46 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7de:0xa DW_TAG_member
.byte 219 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 740 # DW_AT_decl_line
.byte 47 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7e8:0xa DW_TAG_member
.byte 220 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 741 # DW_AT_decl_line
.byte 48 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7f2:0xa DW_TAG_member
.byte 221 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 746 # DW_AT_decl_line
.byte 49 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x7fc:0xa DW_TAG_member
.byte 222 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 747 # DW_AT_decl_line
.byte 50 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x806:0xa DW_TAG_member
.byte 223 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 748 # DW_AT_decl_line
.byte 51 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x810:0xa DW_TAG_member
.byte 224 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 750 # DW_AT_decl_line
.byte 52 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x81a:0xa DW_TAG_member
.byte 225 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 752 # DW_AT_decl_line
.byte 53 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x824:0xa DW_TAG_member
.byte 226 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 753 # DW_AT_decl_line
.byte 54 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x82e:0xa DW_TAG_member
.byte 227 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 754 # DW_AT_decl_line
.byte 55 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x838:0xa DW_TAG_member
.byte 228 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 755 # DW_AT_decl_line
.byte 56 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x842:0xa DW_TAG_member
.byte 229 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 756 # DW_AT_decl_line
.byte 57 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x84c:0xa DW_TAG_member
.byte 230 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 757 # DW_AT_decl_line
.byte 58 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x856:0xa DW_TAG_member
.byte 231 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 758 # DW_AT_decl_line
.byte 59 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x860:0xa DW_TAG_member
.byte 232 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 759 # DW_AT_decl_line
.byte 60 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x86a:0xa DW_TAG_member
.byte 233 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 760 # DW_AT_decl_line
.byte 61 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x874:0xa DW_TAG_member
.byte 234 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 761 # DW_AT_decl_line
.byte 62 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x87e:0xa DW_TAG_member
.byte 235 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 762 # DW_AT_decl_line
.byte 63 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x888:0xa DW_TAG_member
.byte 236 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 763 # DW_AT_decl_line
.byte 64 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x892:0xa DW_TAG_member
.byte 237 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 764 # DW_AT_decl_line
.byte 65 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x89c:0xa DW_TAG_member
.byte 238 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 765 # DW_AT_decl_line
.byte 66 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8a6:0xa DW_TAG_member
.byte 239 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 766 # DW_AT_decl_line
.byte 67 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8b0:0xa DW_TAG_member
.byte 240 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 767 # DW_AT_decl_line
.byte 68 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8ba:0xa DW_TAG_member
.byte 241 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 768 # DW_AT_decl_line
.byte 69 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8c4:0xa DW_TAG_member
.byte 242 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 769 # DW_AT_decl_line
.byte 70 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8ce:0xa DW_TAG_member
.byte 243 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 770 # DW_AT_decl_line
.byte 71 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8d8:0xa DW_TAG_member
.byte 244 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 771 # DW_AT_decl_line
.byte 72 # DW_AT_data_member_location
.byte 28 # Abbrev [28] 0x8e2:0xa DW_TAG_member
.byte 245 # DW_AT_name
.long 2285 # DW_AT_type
.byte 1 # DW_AT_decl_file
.short 772 # DW_AT_decl_line
.byte 73 # DW_AT_data_member_location
.byte 0 # End Of Children Mark
.byte 2 # Abbrev [2] 0x8ed:0x4 DW_TAG_base_type
.byte 172 # DW_AT_name
.byte 2 # DW_AT_encoding
.byte 1 # DW_AT_byte_size
.byte 29 # Abbrev [29] 0x8f1:0x5 DW_TAG_const_type
.long 876 # DW_AT_type
.byte 29 # Abbrev [29] 0x8f6:0x5 DW_TAG_const_type
.long 918 # DW_AT_type
.byte 29 # Abbrev [29] 0x8fb:0x5 DW_TAG_const_type
.long 823 # DW_AT_type
.byte 0 # End Of Children Mark
.Ldebug_info_end0:
.section .debug_rnglists,"",@progbits
.long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
.Ldebug_list_header_start1:
.short 5 # Version
.byte 8 # Address size
.byte 0 # Segment selector size
.long 1 # Offset entry count
.Lrnglists_table_base0:
.long .Ldebug_ranges0-.Lrnglists_table_base0
.Ldebug_ranges0:
.byte 4 # DW_RLE_offset_pair
.uleb128 .Ltmp30-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp31-.Lfunc_begin0 # ending offset
.byte 4 # DW_RLE_offset_pair
.uleb128 .Ltmp32-.Lfunc_begin0 # starting offset
.uleb128 .Ltmp33-.Lfunc_begin0 # ending offset
.byte 0 # DW_RLE_end_of_list
.Ldebug_list_header_end1:
.section .debug_str_offsets,"",@progbits
.long 1108 # Length of String Offsets Set
.short 5
.short 0
.Lstr_offsets_base0:
.section .debug_str,"MS",@progbits,1
.Linfo_string0:
.asciz "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab" # string offset=0
.Linfo_string1:
.asciz "cpuinfo/src/x86/isa.c" # string offset=55
.Linfo_string2:
.asciz "workspace" # string offset=77
.Linfo_string3:
.asciz "unsigned int" # string offset=87
.Linfo_string4:
.asciz "cpuinfo_vendor_unknown" # string offset=100
.Linfo_string5:
.asciz "cpuinfo_vendor_intel" # string offset=123
.Linfo_string6:
.asciz "cpuinfo_vendor_amd" # string offset=144
.Linfo_string7:
.asciz "cpuinfo_vendor_arm" # string offset=163
.Linfo_string8:
.asciz "cpuinfo_vendor_qualcomm" # string offset=182
.Linfo_string9:
.asciz "cpuinfo_vendor_apple" # string offset=206
.Linfo_string10:
.asciz "cpuinfo_vendor_samsung" # string offset=227
.Linfo_string11:
.asciz "cpuinfo_vendor_nvidia" # string offset=250
.Linfo_string12:
.asciz "cpuinfo_vendor_mips" # string offset=272
.Linfo_string13:
.asciz "cpuinfo_vendor_ibm" # string offset=292
.Linfo_string14:
.asciz "cpuinfo_vendor_ingenic" # string offset=311
.Linfo_string15:
.asciz "cpuinfo_vendor_via" # string offset=334
.Linfo_string16:
.asciz "cpuinfo_vendor_cavium" # string offset=353
.Linfo_string17:
.asciz "cpuinfo_vendor_broadcom" # string offset=375
.Linfo_string18:
.asciz "cpuinfo_vendor_apm" # string offset=399
.Linfo_string19:
.asciz "cpuinfo_vendor_huawei" # string offset=418
.Linfo_string20:
.asciz "cpuinfo_vendor_hygon" # string offset=440
.Linfo_string21:
.asciz "cpuinfo_vendor_texas_instruments" # string offset=461
.Linfo_string22:
.asciz "cpuinfo_vendor_marvell" # string offset=494
.Linfo_string23:
.asciz "cpuinfo_vendor_rdc" # string offset=517
.Linfo_string24:
.asciz "cpuinfo_vendor_dmp" # string offset=536
.Linfo_string25:
.asciz "cpuinfo_vendor_motorola" # string offset=555
.Linfo_string26:
.asciz "cpuinfo_vendor_transmeta" # string offset=579
.Linfo_string27:
.asciz "cpuinfo_vendor_cyrix" # string offset=604
.Linfo_string28:
.asciz "cpuinfo_vendor_rise" # string offset=625
.Linfo_string29:
.asciz "cpuinfo_vendor_nsc" # string offset=645
.Linfo_string30:
.asciz "cpuinfo_vendor_sis" # string offset=664
.Linfo_string31:
.asciz "cpuinfo_vendor_nexgen" # string offset=683
.Linfo_string32:
.asciz "cpuinfo_vendor_umc" # string offset=705
.Linfo_string33:
.asciz "cpuinfo_vendor_dec" # string offset=724
.Linfo_string34:
.asciz "cpuinfo_vendor" # string offset=743
.Linfo_string35:
.asciz "cpuinfo_uarch_unknown" # string offset=758
.Linfo_string36:
.asciz "cpuinfo_uarch_p5" # string offset=780
.Linfo_string37:
.asciz "cpuinfo_uarch_quark" # string offset=797
.Linfo_string38:
.asciz "cpuinfo_uarch_p6" # string offset=817
.Linfo_string39:
.asciz "cpuinfo_uarch_dothan" # string offset=834
.Linfo_string40:
.asciz "cpuinfo_uarch_yonah" # string offset=855
.Linfo_string41:
.asciz "cpuinfo_uarch_conroe" # string offset=875
.Linfo_string42:
.asciz "cpuinfo_uarch_penryn" # string offset=896
.Linfo_string43:
.asciz "cpuinfo_uarch_nehalem" # string offset=917
.Linfo_string44:
.asciz "cpuinfo_uarch_sandy_bridge" # string offset=939
.Linfo_string45:
.asciz "cpuinfo_uarch_ivy_bridge" # string offset=966
.Linfo_string46:
.asciz "cpuinfo_uarch_haswell" # string offset=991
.Linfo_string47:
.asciz "cpuinfo_uarch_broadwell" # string offset=1013
.Linfo_string48:
.asciz "cpuinfo_uarch_sky_lake" # string offset=1037
.Linfo_string49:
.asciz "cpuinfo_uarch_kaby_lake" # string offset=1060
.Linfo_string50:
.asciz "cpuinfo_uarch_palm_cove" # string offset=1084
.Linfo_string51:
.asciz "cpuinfo_uarch_sunny_cove" # string offset=1108
.Linfo_string52:
.asciz "cpuinfo_uarch_willamette" # string offset=1133
.Linfo_string53:
.asciz "cpuinfo_uarch_prescott" # string offset=1158
.Linfo_string54:
.asciz "cpuinfo_uarch_bonnell" # string offset=1181
.Linfo_string55:
.asciz "cpuinfo_uarch_saltwell" # string offset=1203
.Linfo_string56:
.asciz "cpuinfo_uarch_silvermont" # string offset=1226
.Linfo_string57:
.asciz "cpuinfo_uarch_airmont" # string offset=1251
.Linfo_string58:
.asciz "cpuinfo_uarch_goldmont" # string offset=1273
.Linfo_string59:
.asciz "cpuinfo_uarch_goldmont_plus" # string offset=1296
.Linfo_string60:
.asciz "cpuinfo_uarch_knights_ferry" # string offset=1324
.Linfo_string61:
.asciz "cpuinfo_uarch_knights_corner" # string offset=1352
.Linfo_string62:
.asciz "cpuinfo_uarch_knights_landing" # string offset=1381
.Linfo_string63:
.asciz "cpuinfo_uarch_knights_hill" # string offset=1411
.Linfo_string64:
.asciz "cpuinfo_uarch_knights_mill" # string offset=1438
.Linfo_string65:
.asciz "cpuinfo_uarch_xscale" # string offset=1465
.Linfo_string66:
.asciz "cpuinfo_uarch_k5" # string offset=1486
.Linfo_string67:
.asciz "cpuinfo_uarch_k6" # string offset=1503
.Linfo_string68:
.asciz "cpuinfo_uarch_k7" # string offset=1520
.Linfo_string69:
.asciz "cpuinfo_uarch_k8" # string offset=1537
.Linfo_string70:
.asciz "cpuinfo_uarch_k10" # string offset=1554
.Linfo_string71:
.asciz "cpuinfo_uarch_bulldozer" # string offset=1572
.Linfo_string72:
.asciz "cpuinfo_uarch_piledriver" # string offset=1596
.Linfo_string73:
.asciz "cpuinfo_uarch_steamroller" # string offset=1621
.Linfo_string74:
.asciz "cpuinfo_uarch_excavator" # string offset=1647
.Linfo_string75:
.asciz "cpuinfo_uarch_zen" # string offset=1671
.Linfo_string76:
.asciz "cpuinfo_uarch_zen2" # string offset=1689
.Linfo_string77:
.asciz "cpuinfo_uarch_zen3" # string offset=1708
.Linfo_string78:
.asciz "cpuinfo_uarch_geode" # string offset=1727
.Linfo_string79:
.asciz "cpuinfo_uarch_bobcat" # string offset=1747
.Linfo_string80:
.asciz "cpuinfo_uarch_jaguar" # string offset=1768
.Linfo_string81:
.asciz "cpuinfo_uarch_puma" # string offset=1789
.Linfo_string82:
.asciz "cpuinfo_uarch_arm7" # string offset=1808
.Linfo_string83:
.asciz "cpuinfo_uarch_arm9" # string offset=1827
.Linfo_string84:
.asciz "cpuinfo_uarch_arm11" # string offset=1846
.Linfo_string85:
.asciz "cpuinfo_uarch_cortex_a5" # string offset=1866
.Linfo_string86:
.asciz "cpuinfo_uarch_cortex_a7" # string offset=1890
.Linfo_string87:
.asciz "cpuinfo_uarch_cortex_a8" # string offset=1914
.Linfo_string88:
.asciz "cpuinfo_uarch_cortex_a9" # string offset=1938
.Linfo_string89:
.asciz "cpuinfo_uarch_cortex_a12" # string offset=1962
.Linfo_string90:
.asciz "cpuinfo_uarch_cortex_a15" # string offset=1987
.Linfo_string91:
.asciz "cpuinfo_uarch_cortex_a17" # string offset=2012
.Linfo_string92:
.asciz "cpuinfo_uarch_cortex_a32" # string offset=2037
.Linfo_string93:
.asciz "cpuinfo_uarch_cortex_a35" # string offset=2062
.Linfo_string94:
.asciz "cpuinfo_uarch_cortex_a53" # string offset=2087
.Linfo_string95:
.asciz "cpuinfo_uarch_cortex_a55r0" # string offset=2112
.Linfo_string96:
.asciz "cpuinfo_uarch_cortex_a55" # string offset=2139
.Linfo_string97:
.asciz "cpuinfo_uarch_cortex_a57" # string offset=2164
.Linfo_string98:
.asciz "cpuinfo_uarch_cortex_a65" # string offset=2189
.Linfo_string99:
.asciz "cpuinfo_uarch_cortex_a72" # string offset=2214
.Linfo_string100:
.asciz "cpuinfo_uarch_cortex_a73" # string offset=2239
.Linfo_string101:
.asciz "cpuinfo_uarch_cortex_a75" # string offset=2264
.Linfo_string102:
.asciz "cpuinfo_uarch_cortex_a76" # string offset=2289
.Linfo_string103:
.asciz "cpuinfo_uarch_cortex_a77" # string offset=2314
.Linfo_string104:
.asciz "cpuinfo_uarch_cortex_a78" # string offset=2339
.Linfo_string105:
.asciz "cpuinfo_uarch_neoverse_n1" # string offset=2364
.Linfo_string106:
.asciz "cpuinfo_uarch_neoverse_e1" # string offset=2390
.Linfo_string107:
.asciz "cpuinfo_uarch_cortex_x1" # string offset=2416
.Linfo_string108:
.asciz "cpuinfo_uarch_cortex_x2" # string offset=2440
.Linfo_string109:
.asciz "cpuinfo_uarch_cortex_a510" # string offset=2464
.Linfo_string110:
.asciz "cpuinfo_uarch_cortex_a710" # string offset=2490
.Linfo_string111:
.asciz "cpuinfo_uarch_scorpion" # string offset=2516
.Linfo_string112:
.asciz "cpuinfo_uarch_krait" # string offset=2539
.Linfo_string113:
.asciz "cpuinfo_uarch_kryo" # string offset=2559
.Linfo_string114:
.asciz "cpuinfo_uarch_falkor" # string offset=2578
.Linfo_string115:
.asciz "cpuinfo_uarch_saphira" # string offset=2599
.Linfo_string116:
.asciz "cpuinfo_uarch_denver" # string offset=2621
.Linfo_string117:
.asciz "cpuinfo_uarch_denver2" # string offset=2642
.Linfo_string118:
.asciz "cpuinfo_uarch_carmel" # string offset=2664
.Linfo_string119:
.asciz "cpuinfo_uarch_exynos_m1" # string offset=2685
.Linfo_string120:
.asciz "cpuinfo_uarch_exynos_m2" # string offset=2709
.Linfo_string121:
.asciz "cpuinfo_uarch_exynos_m3" # string offset=2733
.Linfo_string122:
.asciz "cpuinfo_uarch_exynos_m4" # string offset=2757
.Linfo_string123:
.asciz "cpuinfo_uarch_exynos_m5" # string offset=2781
.Linfo_string124:
.asciz "cpuinfo_uarch_cortex_a76ae" # string offset=2805
.Linfo_string125:
.asciz "cpuinfo_uarch_mongoose_m1" # string offset=2832
.Linfo_string126:
.asciz "cpuinfo_uarch_mongoose_m2" # string offset=2858
.Linfo_string127:
.asciz "cpuinfo_uarch_meerkat_m3" # string offset=2884
.Linfo_string128:
.asciz "cpuinfo_uarch_meerkat_m4" # string offset=2909
.Linfo_string129:
.asciz "cpuinfo_uarch_swift" # string offset=2934
.Linfo_string130:
.asciz "cpuinfo_uarch_cyclone" # string offset=2954
.Linfo_string131:
.asciz "cpuinfo_uarch_typhoon" # string offset=2976
.Linfo_string132:
.asciz "cpuinfo_uarch_twister" # string offset=2998
.Linfo_string133:
.asciz "cpuinfo_uarch_hurricane" # string offset=3020
.Linfo_string134:
.asciz "cpuinfo_uarch_monsoon" # string offset=3044
.Linfo_string135:
.asciz "cpuinfo_uarch_mistral" # string offset=3066
.Linfo_string136:
.asciz "cpuinfo_uarch_vortex" # string offset=3088
.Linfo_string137:
.asciz "cpuinfo_uarch_tempest" # string offset=3109
.Linfo_string138:
.asciz "cpuinfo_uarch_lightning" # string offset=3131
.Linfo_string139:
.asciz "cpuinfo_uarch_thunder" # string offset=3155
.Linfo_string140:
.asciz "cpuinfo_uarch_firestorm" # string offset=3177
.Linfo_string141:
.asciz "cpuinfo_uarch_icestorm" # string offset=3201
.Linfo_string142:
.asciz "cpuinfo_uarch_thunderx" # string offset=3224
.Linfo_string143:
.asciz "cpuinfo_uarch_thunderx2" # string offset=3247
.Linfo_string144:
.asciz "cpuinfo_uarch_pj4" # string offset=3271
.Linfo_string145:
.asciz "cpuinfo_uarch_brahma_b15" # string offset=3289
.Linfo_string146:
.asciz "cpuinfo_uarch_brahma_b53" # string offset=3314
.Linfo_string147:
.asciz "cpuinfo_uarch_xgene" # string offset=3339
.Linfo_string148:
.asciz "cpuinfo_uarch_dhyana" # string offset=3359
.Linfo_string149:
.asciz "cpuinfo_uarch_taishan_v110" # string offset=3380
.Linfo_string150:
.asciz "cpuinfo_uarch" # string offset=3407
.Linfo_string151:
.asciz "unsigned long" # string offset=3421
.Linfo_string152:
.asciz "__uint64_t" # string offset=3435
.Linfo_string153:
.asciz "uint64_t" # string offset=3446
.Linfo_string154:
.asciz "cpuidex" # string offset=3455
.Linfo_string155:
.asciz "eax" # string offset=3463
.Linfo_string156:
.asciz "__uint32_t" # string offset=3467
.Linfo_string157:
.asciz "uint32_t" # string offset=3478
.Linfo_string158:
.asciz "ebx" # string offset=3487
.Linfo_string159:
.asciz "ecx" # string offset=3491
.Linfo_string160:
.asciz "edx" # string offset=3495
.Linfo_string161:
.asciz "cpuid_regs" # string offset=3499
.Linfo_string162:
.asciz "regs" # string offset=3510
.Linfo_string163:
.asciz "cpuid" # string offset=3515
.Linfo_string164:
.asciz "xgetbv" # string offset=3521
.Linfo_string165:
.asciz "ext_ctrl_reg" # string offset=3528
.Linfo_string166:
.asciz "lo" # string offset=3541
.Linfo_string167:
.asciz "hi" # string offset=3544
.Linfo_string168:
.asciz "DW_ATE_unsigned_32" # string offset=3547
.Linfo_string169:
.asciz "DW_ATE_unsigned_64" # string offset=3566
.Linfo_string170:
.asciz "cpuinfo_x86_detect_isa" # string offset=3585
.Linfo_string171:
.asciz "rdtscp" # string offset=3608
.Linfo_string172:
.asciz "_Bool" # string offset=3615
.Linfo_string173:
.asciz "rdpid" # string offset=3621
.Linfo_string174:
.asciz "sysenter" # string offset=3627
.Linfo_string175:
.asciz "msr" # string offset=3636
.Linfo_string176:
.asciz "clzero" # string offset=3640
.Linfo_string177:
.asciz "clflush" # string offset=3647
.Linfo_string178:
.asciz "clflushopt" # string offset=3655
.Linfo_string179:
.asciz "mwait" # string offset=3666
.Linfo_string180:
.asciz "mwaitx" # string offset=3672
.Linfo_string181:
.asciz "fxsave" # string offset=3679
.Linfo_string182:
.asciz "xsave" # string offset=3686
.Linfo_string183:
.asciz "three_d_now" # string offset=3692
.Linfo_string184:
.asciz "three_d_now_plus" # string offset=3704
.Linfo_string185:
.asciz "prefetch" # string offset=3721
.Linfo_string186:
.asciz "prefetchw" # string offset=3730
.Linfo_string187:
.asciz "prefetchwt1" # string offset=3740
.Linfo_string188:
.asciz "sse3" # string offset=3752
.Linfo_string189:
.asciz "ssse3" # string offset=3757
.Linfo_string190:
.asciz "sse4_1" # string offset=3763
.Linfo_string191:
.asciz "sse4_2" # string offset=3770
.Linfo_string192:
.asciz "sse4a" # string offset=3777
.Linfo_string193:
.asciz "misaligned_sse" # string offset=3783
.Linfo_string194:
.asciz "avx" # string offset=3798
.Linfo_string195:
.asciz "fma3" # string offset=3802
.Linfo_string196:
.asciz "fma4" # string offset=3807
.Linfo_string197:
.asciz "xop" # string offset=3812
.Linfo_string198:
.asciz "f16c" # string offset=3816
.Linfo_string199:
.asciz "avx2" # string offset=3821
.Linfo_string200:
.asciz "avx512f" # string offset=3826
.Linfo_string201:
.asciz "avx512pf" # string offset=3834
.Linfo_string202:
.asciz "avx512er" # string offset=3843
.Linfo_string203:
.asciz "avx512cd" # string offset=3852
.Linfo_string204:
.asciz "avx512dq" # string offset=3861
.Linfo_string205:
.asciz "avx512bw" # string offset=3870
.Linfo_string206:
.asciz "avx512vl" # string offset=3879
.Linfo_string207:
.asciz "avx512ifma" # string offset=3888
.Linfo_string208:
.asciz "avx512vbmi" # string offset=3899
.Linfo_string209:
.asciz "avx512vbmi2" # string offset=3910
.Linfo_string210:
.asciz "avx512bitalg" # string offset=3922
.Linfo_string211:
.asciz "avx512vpopcntdq" # string offset=3935
.Linfo_string212:
.asciz "avx512vnni" # string offset=3951
.Linfo_string213:
.asciz "avx512bf16" # string offset=3962
.Linfo_string214:
.asciz "avx512vp2intersect" # string offset=3973
.Linfo_string215:
.asciz "avx512_4vnniw" # string offset=3992
.Linfo_string216:
.asciz "avx512_4fmaps" # string offset=4006
.Linfo_string217:
.asciz "hle" # string offset=4020
.Linfo_string218:
.asciz "rtm" # string offset=4024
.Linfo_string219:
.asciz "xtest" # string offset=4028
.Linfo_string220:
.asciz "mpx" # string offset=4034
.Linfo_string221:
.asciz "cmpxchg16b" # string offset=4038
.Linfo_string222:
.asciz "clwb" # string offset=4049
.Linfo_string223:
.asciz "movbe" # string offset=4054
.Linfo_string224:
.asciz "lahf_sahf" # string offset=4060
.Linfo_string225:
.asciz "fs_gs_base" # string offset=4070
.Linfo_string226:
.asciz "lzcnt" # string offset=4081
.Linfo_string227:
.asciz "popcnt" # string offset=4087
.Linfo_string228:
.asciz "tbm" # string offset=4094
.Linfo_string229:
.asciz "bmi" # string offset=4098
.Linfo_string230:
.asciz "bmi2" # string offset=4102
.Linfo_string231:
.asciz "adx" # string offset=4107
.Linfo_string232:
.asciz "aes" # string offset=4111
.Linfo_string233:
.asciz "vaes" # string offset=4115
.Linfo_string234:
.asciz "pclmulqdq" # string offset=4120
.Linfo_string235:
.asciz "vpclmulqdq" # string offset=4130
.Linfo_string236:
.asciz "gfni" # string offset=4141
.Linfo_string237:
.asciz "rdrand" # string offset=4146
.Linfo_string238:
.asciz "rdseed" # string offset=4153
.Linfo_string239:
.asciz "sha" # string offset=4160
.Linfo_string240:
.asciz "rng" # string offset=4164
.Linfo_string241:
.asciz "ace" # string offset=4168
.Linfo_string242:
.asciz "ace2" # string offset=4172
.Linfo_string243:
.asciz "phe" # string offset=4177
.Linfo_string244:
.asciz "pmm" # string offset=4181
.Linfo_string245:
.asciz "lwp" # string offset=4185
.Linfo_string246:
.asciz "cpuinfo_x86_isa" # string offset=4189
.Linfo_string247:
.asciz "basic_info" # string offset=4205
.Linfo_string248:
.asciz "extended_info" # string offset=4216
.Linfo_string249:
.asciz "max_base_index" # string offset=4230
.Linfo_string250:
.asciz "max_extended_index" # string offset=4245
.Linfo_string251:
.asciz "vendor" # string offset=4264
.Linfo_string252:
.asciz "uarch" # string offset=4271
.Linfo_string253:
.asciz "isa" # string offset=4277
.Linfo_string254:
.asciz "structured_feature_info1" # string offset=4281
.Linfo_string255:
.asciz "processor_capacity_info_index" # string offset=4306
.Linfo_string256:
.asciz "processor_capacity_info" # string offset=4336
.Linfo_string257:
.asciz "avx_regs" # string offset=4360
.Linfo_string258:
.asciz "avx512_regs" # string offset=4369
.Linfo_string259:
.asciz "mpx_regs" # string offset=4381
.Linfo_string260:
.asciz "osxsave_mask" # string offset=4390
.Linfo_string261:
.asciz "xcr0_valid_bits" # string offset=4403
.Linfo_string262:
.asciz "avx_regs_mask" # string offset=4419
.Linfo_string263:
.asciz "avx512_regs_mask" # string offset=4433
.Linfo_string264:
.asciz "mpx_regs_mask" # string offset=4450
.Linfo_string265:
.asciz "padlock_meta_info" # string offset=4464
.Linfo_string266:
.asciz "max_padlock_index" # string offset=4482
.Linfo_string267:
.asciz "padlock_info_index" # string offset=4500
.Linfo_string268:
.asciz "padlock_info" # string offset=4519
.Linfo_string269:
.asciz "padlock_rng_mask" # string offset=4532
.Linfo_string270:
.asciz "padlock_ace_mask" # string offset=4549
.Linfo_string271:
.asciz "padlock_ace2_mask" # string offset=4566
.Linfo_string272:
.asciz "padlock_phe_mask" # string offset=4584
.Linfo_string273:
.asciz "padlock_pmm_mask" # string offset=4601
.Linfo_string274:
.asciz "structured_feature_info0" # string offset=4618
.Linfo_string275:
.asciz "xfeature_enabled_mask" # string offset=4643
.section .debug_str_offsets,"",@progbits
.long .Linfo_string0
.long .Linfo_string1
.long .Linfo_string2
.long .Linfo_string3
.long .Linfo_string4
.long .Linfo_string5
.long .Linfo_string6
.long .Linfo_string7
.long .Linfo_string8
.long .Linfo_string9
.long .Linfo_string10
.long .Linfo_string11
.long .Linfo_string12
.long .Linfo_string13
.long .Linfo_string14
.long .Linfo_string15
.long .Linfo_string16
.long .Linfo_string17
.long .Linfo_string18
.long .Linfo_string19
.long .Linfo_string20
.long .Linfo_string21
.long .Linfo_string22
.long .Linfo_string23
.long .Linfo_string24
.long .Linfo_string25
.long .Linfo_string26
.long .Linfo_string27
.long .Linfo_string28
.long .Linfo_string29
.long .Linfo_string30
.long .Linfo_string31
.long .Linfo_string32
.long .Linfo_string33
.long .Linfo_string34
.long .Linfo_string35
.long .Linfo_string36
.long .Linfo_string37
.long .Linfo_string38
.long .Linfo_string39
.long .Linfo_string40
.long .Linfo_string41
.long .Linfo_string42
.long .Linfo_string43
.long .Linfo_string44
.long .Linfo_string45
.long .Linfo_string46
.long .Linfo_string47
.long .Linfo_string48
.long .Linfo_string49
.long .Linfo_string50
.long .Linfo_string51
.long .Linfo_string52
.long .Linfo_string53
.long .Linfo_string54
.long .Linfo_string55
.long .Linfo_string56
.long .Linfo_string57
.long .Linfo_string58
.long .Linfo_string59
.long .Linfo_string60
.long .Linfo_string61
.long .Linfo_string62
.long .Linfo_string63
.long .Linfo_string64
.long .Linfo_string65
.long .Linfo_string66
.long .Linfo_string67
.long .Linfo_string68
.long .Linfo_string69
.long .Linfo_string70
.long .Linfo_string71
.long .Linfo_string72
.long .Linfo_string73
.long .Linfo_string74
.long .Linfo_string75
.long .Linfo_string76
.long .Linfo_string77
.long .Linfo_string78
.long .Linfo_string79
.long .Linfo_string80
.long .Linfo_string81
.long .Linfo_string82
.long .Linfo_string83
.long .Linfo_string84
.long .Linfo_string85
.long .Linfo_string86
.long .Linfo_string87
.long .Linfo_string88
.long .Linfo_string89
.long .Linfo_string90
.long .Linfo_string91
.long .Linfo_string92
.long .Linfo_string93
.long .Linfo_string94
.long .Linfo_string95
.long .Linfo_string96
.long .Linfo_string97
.long .Linfo_string98
.long .Linfo_string99
.long .Linfo_string100
.long .Linfo_string101
.long .Linfo_string102
.long .Linfo_string103
.long .Linfo_string104
.long .Linfo_string105
.long .Linfo_string106
.long .Linfo_string107
.long .Linfo_string108
.long .Linfo_string109
.long .Linfo_string110
.long .Linfo_string111
.long .Linfo_string112
.long .Linfo_string113
.long .Linfo_string114
.long .Linfo_string115
.long .Linfo_string116
.long .Linfo_string117
.long .Linfo_string118
.long .Linfo_string119
.long .Linfo_string120
.long .Linfo_string121
.long .Linfo_string122
.long .Linfo_string123
.long .Linfo_string124
.long .Linfo_string125
.long .Linfo_string126
.long .Linfo_string127
.long .Linfo_string128
.long .Linfo_string129
.long .Linfo_string130
.long .Linfo_string131
.long .Linfo_string132
.long .Linfo_string133
.long .Linfo_string134
.long .Linfo_string135
.long .Linfo_string136
.long .Linfo_string137
.long .Linfo_string138
.long .Linfo_string139
.long .Linfo_string140
.long .Linfo_string141
.long .Linfo_string142
.long .Linfo_string143
.long .Linfo_string144
.long .Linfo_string145
.long .Linfo_string146
.long .Linfo_string147
.long .Linfo_string148
.long .Linfo_string149
.long .Linfo_string150
.long .Linfo_string151
.long .Linfo_string152
.long .Linfo_string153
.long .Linfo_string154
.long .Linfo_string155
.long .Linfo_string156
.long .Linfo_string157
.long .Linfo_string158
.long .Linfo_string159
.long .Linfo_string160
.long .Linfo_string161
.long .Linfo_string162
.long .Linfo_string163
.long .Linfo_string164
.long .Linfo_string165
.long .Linfo_string166
.long .Linfo_string167
.long .Linfo_string168
.long .Linfo_string169
.long .Linfo_string170
.long .Linfo_string171
.long .Linfo_string172
.long .Linfo_string173
.long .Linfo_string174
.long .Linfo_string175
.long .Linfo_string176
.long .Linfo_string177
.long .Linfo_string178
.long .Linfo_string179
.long .Linfo_string180
.long .Linfo_string181
.long .Linfo_string182
.long .Linfo_string183
.long .Linfo_string184
.long .Linfo_string185
.long .Linfo_string186
.long .Linfo_string187
.long .Linfo_string188
.long .Linfo_string189
.long .Linfo_string190
.long .Linfo_string191
.long .Linfo_string192
.long .Linfo_string193
.long .Linfo_string194
.long .Linfo_string195
.long .Linfo_string196
.long .Linfo_string197
.long .Linfo_string198
.long .Linfo_string199
.long .Linfo_string200
.long .Linfo_string201
.long .Linfo_string202
.long .Linfo_string203
.long .Linfo_string204
.long .Linfo_string205
.long .Linfo_string206
.long .Linfo_string207
.long .Linfo_string208
.long .Linfo_string209
.long .Linfo_string210
.long .Linfo_string211
.long .Linfo_string212
.long .Linfo_string213
.long .Linfo_string214
.long .Linfo_string215
.long .Linfo_string216
.long .Linfo_string217
.long .Linfo_string218
.long .Linfo_string219
.long .Linfo_string220
.long .Linfo_string221
.long .Linfo_string222
.long .Linfo_string223
.long .Linfo_string224
.long .Linfo_string225
.long .Linfo_string226
.long .Linfo_string227
.long .Linfo_string228
.long .Linfo_string229
.long .Linfo_string230
.long .Linfo_string231
.long .Linfo_string232
.long .Linfo_string233
.long .Linfo_string234
.long .Linfo_string235
.long .Linfo_string236
.long .Linfo_string237
.long .Linfo_string238
.long .Linfo_string239
.long .Linfo_string240
.long .Linfo_string241
.long .Linfo_string242
.long .Linfo_string243
.long .Linfo_string244
.long .Linfo_string245
.long .Linfo_string246
.long .Linfo_string247
.long .Linfo_string248
.long .Linfo_string249
.long .Linfo_string250
.long .Linfo_string251
.long .Linfo_string252
.long .Linfo_string253
.long .Linfo_string254
.long .Linfo_string255
.long .Linfo_string256
.long .Linfo_string257
.long .Linfo_string258
.long .Linfo_string259
.long .Linfo_string260
.long .Linfo_string261
.long .Linfo_string262
.long .Linfo_string263
.long .Linfo_string264
.long .Linfo_string265
.long .Linfo_string266
.long .Linfo_string267
.long .Linfo_string268
.long .Linfo_string269
.long .Linfo_string270
.long .Linfo_string271
.long .Linfo_string272
.long .Linfo_string273
.long .Linfo_string274
.long .Linfo_string275
.section .debug_addr,"",@progbits
.long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
.Ldebug_addr_start0:
.short 5 # DWARF version number
.byte 8 # Address size
.byte 0 # Segment selector size
.Laddr_table_base0:
.quad .Lfunc_begin0
.quad .Ltmp6
.quad .Ltmp11
.quad .Ltmp16
.quad .Ltmp26
.quad .Ltmp28
.quad .Ltmp66
.quad .Ltmp69
.Ldebug_addr_end0:
.ident "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab"
.section ".note.GNU-stack","",@progbits
.section .debug_line,"",@progbits
.Lline_table_start0:
; ModuleID = 'cpuinfo/src/x86/isa.c'
source_filename = "cpuinfo/src/x86/isa.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.cpuinfo_x86_isa = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
@llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @msan.module_ctor to i8*)], section "llvm.metadata"
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 0, void ()* @msan.module_ctor, i8* null }]
@__msan_param_tls = external thread_local(initialexec) global [100 x i64]
; Function Attrs: nounwind optsize sanitize_memory
define hidden void @cpuinfo_x86_detect_isa(%struct.cpuinfo_x86_isa* noalias sret(%struct.cpuinfo_x86_isa) align 1 %agg.result, i64 %basic_info.coerce0, i64 %basic_info.coerce1, i64 %extended_info.coerce0, i64 %extended_info.coerce1, i32 noundef %max_base_index, i32 noundef %max_extended_index, i32 noundef %vendor, i32 noundef %uarch) local_unnamed_addr #0 !dbg !166 {
entry:
%0 = load i64, i64* inttoptr (i64 add (i64 ptrtoint ([100 x i64]* @__msan_param_tls to i64), i64 16) to i64*), align 8, !dbg !297
%1 = load i64, i64* inttoptr (i64 add (i64 ptrtoint ([100 x i64]* @__msan_param_tls to i64), i64 32) to i64*), align 8, !dbg !297
%2 = load i64, i64* getelementptr inbounds ([100 x i64], [100 x i64]* @__msan_param_tls, i32 0, i32 0), align 8, !dbg !297
call void @llvm.dbg.value(metadata i64 %basic_info.coerce0, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%_msprop = trunc i64 %0 to i32
%basic_info.sroa.1.8.extract.trunc = trunc i64 %basic_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %basic_info.sroa.1.8.extract.trunc, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%3 = lshr i64 %0, 32
%basic_info.sroa.18.8.extract.shift = lshr i64 %basic_info.coerce1, 32
call void @llvm.dbg.value(metadata i64 %basic_info.sroa.18.8.extract.shift, metadata !257, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i64 %extended_info.coerce0, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%_msprop939 = trunc i64 %1 to i32
%extended_info.sroa.1.8.extract.trunc = trunc i64 %extended_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.1.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%4 = lshr i64 %1, 32
%extended_info.sroa.14.8.extract.shift = lshr i64 %extended_info.coerce1, 32
%_msprop940 = trunc i64 %4 to i32
%extended_info.sroa.14.8.extract.trunc = trunc i64 %extended_info.sroa.14.8.extract.shift to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.14.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_base_index, metadata !259, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_extended_index, metadata !260, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %vendor, metadata !261, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %uarch, metadata !262, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.declare(metadata %struct.cpuinfo_x86_isa* %agg.result, metadata !263, metadata !DIExpression()), !dbg !298
%5 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 0, !dbg !298
%6 = call i8* @__msan_memset(i8* %5, i32 0, i64 74), !dbg !298
%7 = icmp ugt i32 %max_base_index, 6, !dbg !299
br i1 false, label %8, label %9, !dbg !300, !prof !301
8: ; preds = %entry
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !300
unreachable, !dbg !300
9: ; preds = %entry
br i1 %7, label %cond.true2, label %cond.end9, !dbg !300
cond.true2: ; preds = %9
call void @llvm.dbg.value(metadata i32 7, metadata !302, metadata !DIExpression()) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 0, metadata !308, metadata !DIExpression()) #5, !dbg !310
%10 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #6, !dbg !312, !srcloc !313
%asmresult3.i = extractvalue { i32, i32, i32, i32 } %10, 1, !dbg !312
%asmresult4.i = extractvalue { i32, i32, i32, i32 } %10, 2, !dbg !312
%asmresult5.i = extractvalue { i32, i32, i32, i32 } %10, 3, !dbg !312
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 %asmresult3.i, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 %asmresult4.i, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 %asmresult5.i, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !310
%retval.sroa.2.0.insert.ext.i = zext i32 %asmresult3.i to i64, !dbg !314
%retval.sroa.2.0.insert.shift.i = shl nuw i64 %retval.sroa.2.0.insert.ext.i, 32, !dbg !314
%retval.sroa.5.8.insert.ext.i = zext i32 %asmresult5.i to i64, !dbg !314
%retval.sroa.5.8.insert.shift.i = shl nuw i64 %retval.sroa.5.8.insert.ext.i, 32, !dbg !314
%retval.sroa.3.8.insert.ext.i = zext i32 %asmresult4.i to i64, !dbg !314
%11 = xor i64 %retval.sroa.5.8.insert.shift.i, -1, !dbg !314
%12 = xor i64 %retval.sroa.3.8.insert.ext.i, -1, !dbg !314
%retval.sroa.3.8.insert.insert.i = or i64 %retval.sroa.5.8.insert.shift.i, %retval.sroa.3.8.insert.ext.i, !dbg !314
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 7, metadata !302, metadata !DIExpression()) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 1, metadata !308, metadata !DIExpression()) #5, !dbg !315
%13 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #6, !dbg !317, !srcloc !313
%asmresult.i858 = extractvalue { i32, i32, i32, i32 } %13, 0, !dbg !317
call void @llvm.dbg.value(metadata i32 %asmresult.i858, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !315
%retval.sroa.0.0.insert.ext.i864 = trunc i32 %asmresult.i858 to i8, !dbg !318
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i858), metadata !265, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.bo935 = lshr i8 %retval.sroa.0.0.insert.ext.i864, 5, !dbg !319
%phi.bo936 = and i8 %phi.bo935, 1, !dbg !319
br label %cond.end9, !dbg !319
cond.end9: ; preds = %9, %cond.true2
%structured_feature_info0.sroa.25.0932 = phi i64 [ %retval.sroa.3.8.insert.insert.i, %cond.true2 ], [ 0, %9 ]
%structured_feature_info0.sroa.0.0930 = phi i64 [ %retval.sroa.2.0.insert.shift.i, %cond.true2 ], [ 0, %9 ]
%structured_feature_info1.sroa.0.0 = phi i8 [ %phi.bo936, %cond.true2 ], [ 0, %9 ]
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !266, metadata !DIExpression()), !dbg !297
%14 = icmp ugt i32 %max_extended_index, -2147483641, !dbg !320
br i1 false, label %15, label %16, !dbg !321, !prof !301
15: ; preds = %cond.end9
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !321
unreachable, !dbg !321
16: ; preds = %cond.end9
br i1 %14, label %cond.true11, label %cond.end18, !dbg !321
cond.true11: ; preds = %16
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !322, metadata !DIExpression()) #5, !dbg !328
%17 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483640) #6, !dbg !330, !srcloc !331
%asmresult2.i = extractvalue { i32, i32, i32, i32 } %17, 1, !dbg !330
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i32 %asmresult2.i, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.cast = trunc i32 %asmresult2.i to i8, !dbg !321
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult2.i, i32 undef), metadata !268, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%phi.bo = and i8 %phi.cast, 1, !dbg !321
br label %cond.end18, !dbg !321
cond.end18: ; preds = %16, %cond.true11
%processor_capacity_info.sroa.0.0 = phi i8 [ %phi.bo, %cond.true11 ], [ 0, %16 ]
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !271, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 201326592, metadata !272, metadata !DIExpression()), !dbg !297
%18 = and i32 %_msprop, 201326592, !dbg !332
%and = and i32 %basic_info.sroa.1.8.extract.trunc, 201326592, !dbg !332
%19 = xor i32 %and, 201326592, !dbg !333
%20 = icmp ne i32 %18, 0, !dbg !333
%21 = xor i32 %18, -1, !dbg !333
%22 = and i32 %21, %19, !dbg !333
%23 = icmp eq i32 %22, 0, !dbg !333
%_msprop_icmp = and i1 %20, %23, !dbg !333
%cmp20 = icmp eq i32 %and, 201326592, !dbg !333
br i1 %_msprop_icmp, label %24, label %25, !dbg !334, !prof !301
24: ; preds = %cond.end18
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !334
unreachable, !dbg !334
25: ; preds = %cond.end18
br i1 %cmp20, label %if.then, label %if.end54, !dbg !334
if.then: ; preds = %25
call void @llvm.dbg.value(metadata i64 0, metadata !273, metadata !DIExpression()), !dbg !335
%26 = icmp ugt i32 %max_base_index, 12, !dbg !336
br i1 false, label %27, label %28, !dbg !337, !prof !301
27: ; preds = %if.then
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !337
unreachable, !dbg !337
28: ; preds = %if.then
br i1 %26, label %if.then22, label %if.end, !dbg !337
if.then22: ; preds = %28
call void @llvm.dbg.value(metadata i32 13, metadata !302, metadata !DIExpression()) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 0, metadata !308, metadata !DIExpression()) #5, !dbg !338
%29 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 13, i32 0) #6, !dbg !340, !srcloc !313
%asmresult.i885 = extractvalue { i32, i32, i32, i32 } %29, 0, !dbg !340
call void @llvm.dbg.value(metadata i32 %asmresult.i885, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !338
%retval.sroa.0.0.insert.ext.i891 = zext i32 %asmresult.i885 to i64, !dbg !341
call void @llvm.dbg.value(metadata !DIArgList(i32 undef, i64 %retval.sroa.0.0.insert.ext.i891), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !342
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 undef), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !342
call void @llvm.dbg.value(metadata i64 %retval.sroa.0.0.insert.ext.i891, metadata !273, metadata !DIExpression()), !dbg !335
br label %if.end, !dbg !343
if.end: ; preds = %if.then22, %28
%xcr0_valid_bits.0 = phi i64 [ %retval.sroa.0.0.insert.ext.i891, %if.then22 ], [ 0, %28 ], !dbg !335
call void @llvm.dbg.value(metadata i64 %xcr0_valid_bits.0, metadata !273, metadata !DIExpression()), !dbg !335
call void @llvm.dbg.value(metadata i32 0, metadata !344, metadata !DIExpression()) #5, !dbg !351
%30 = tail call { i32, i32 } asm ".byte 0x0F, 0x01, 0xD0", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #6, !dbg !353, !srcloc !354
%asmresult.i899 = extractvalue { i32, i32 } %30, 0, !dbg !353
call void @llvm.dbg.value(metadata i32 %asmresult.i899, metadata !349, metadata !DIExpression()) #5, !dbg !351
call void @llvm.dbg.value(metadata i32 undef, metadata !350, metadata !DIExpression()) #5, !dbg !351
%conv2.i = zext i32 %asmresult.i899 to i64, !dbg !355
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i64 %conv2.i), metadata !279, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value)), !dbg !335
call void @llvm.dbg.value(metadata i64 6, metadata !281, metadata !DIExpression()), !dbg !335
%31 = insertelement <2 x i64> poison, i64 %xcr0_valid_bits.0, i64 0, !dbg !356
%32 = shufflevector <2 x i64> %31, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !356
%33 = and <2 x i64> %32, <i64 6, i64 230>, !dbg !356
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 230, metadata !282, metadata !DIExpression()), !dbg !335
%34 = xor <2 x i64> %33, <i64 6, i64 230>, !dbg !358
%35 = icmp eq <2 x i64> %34, zeroinitializer, !dbg !358
%36 = icmp eq <2 x i64> %33, <i64 6, i64 230>, !dbg !358
%37 = insertelement <2 x i64> poison, i64 %conv2.i, i64 0, !dbg !359
%38 = shufflevector <2 x i64> %37, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !359
%39 = and <2 x i64> %38, <i64 6, i64 230>, !dbg !359
%40 = xor <2 x i64> %39, <i64 6, i64 230>, !dbg !359
%41 = icmp eq <2 x i64> %40, zeroinitializer, !dbg !359
%42 = icmp eq <2 x i64> %39, <i64 6, i64 230>, !dbg !359
%43 = select <2 x i1> %36, <2 x i1> %42, <2 x i1> zeroinitializer, !dbg !359
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 24, metadata !283, metadata !DIExpression()), !dbg !335
%and45 = and i64 %xcr0_valid_bits.0, 24, !dbg !360
%44 = xor i64 %and45, 24, !dbg !362
%45 = icmp eq i64 %44, 0, !dbg !362
%cmp46 = icmp eq i64 %and45, 24, !dbg !362
%and49 = and i64 %conv2.i, 24, !dbg !363
%46 = xor i64 %and49, 24, !dbg !363
%47 = icmp eq i64 %46, 0, !dbg !363
%cmp50 = icmp eq i64 %and49, 24, !dbg !363
%mpx_regs.0 = select i1 %cmp46, i1 %cmp50, i1 false, !dbg !363
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
br label %if.end54, !dbg !364
if.end54: ; preds = %if.end, %25
%mpx_regs.1 = phi i1 [ %mpx_regs.0, %if.end ], [ false, %25 ], !dbg !297
%48 = phi <2 x i1> [ %43, %if.end ], [ zeroinitializer, %25 ], !dbg !297
%shuffle937 = shufflevector <2 x i1> %48, <2 x i1> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1>, !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
%sysenter = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 2, !dbg !365
%49 = lshr i64 %0, 43, !dbg !366
%and56815 = lshr i64 %basic_info.coerce1, 43, !dbg !366
%_msprop959 = trunc i64 %49 to i8, !dbg !366
%50 = trunc i64 %and56815 to i8, !dbg !366
%51 = and i8 %_msprop959, 1, !dbg !366
%52 = and i8 %50, 1, !dbg !366
%_mscmp = icmp ne i64 %2, 0, !dbg !366
br i1 %_mscmp, label %53, label %54, !dbg !366, !prof !301
53: ; preds = %if.end54
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !366
unreachable, !dbg !366
54: ; preds = %if.end54
%55 = ptrtoint i8* %sysenter to i64, !dbg !366
%56 = xor i64 %55, 87960930222080, !dbg !366
%57 = inttoptr i64 %56 to i8*, !dbg !366
store i8 %51, i8* %57, align 1, !dbg !366
store i8 %52, i8* %sysenter, align 1, !dbg !366
%58 = xor i64 %extended_info.sroa.14.8.extract.shift, -1, !dbg !367
%59 = xor i64 %basic_info.sroa.18.8.extract.shift, -1, !dbg !367
%60 = and i64 %4, %3, !dbg !367
%61 = and i64 %58, %3, !dbg !367
%62 = and i64 %4, %59, !dbg !367
%63 = or i64 %60, %61, !dbg !367
%64 = or i64 %63, %62, !dbg !367
%or61820 = or i64 %extended_info.sroa.14.8.extract.shift, %basic_info.sroa.18.8.extract.shift, !dbg !367
%msr = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 3, !dbg !368
%_msprop962 = trunc i64 %64 to i8, !dbg !369
%65 = trunc i64 %or61820 to i8, !dbg !369
%66 = lshr i8 %_msprop962, 5, !dbg !369
%67 = lshr i8 %65, 5, !dbg !369
%68 = and i8 %66, 1, !dbg !369
%69 = and i8 %67, 1, !dbg !369
br i1 false, label %70, label %71, !dbg !369, !prof !301
70: ; preds = %54
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !369
unreachable, !dbg !369
71: ; preds = %54
%72 = ptrtoint i8* %msr to i64, !dbg !369
%73 = xor i64 %72, 87960930222080, !dbg !369
%74 = inttoptr i64 %73 to i8*, !dbg !369
store i8 %68, i8* %74, align 1, !dbg !369
store i8 %69, i8* %msr, align 1, !dbg !369
%clzero = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 4, !dbg !370
br i1 false, label %75, label %76, !dbg !371, !prof !301
75: ; preds = %71
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !371
unreachable, !dbg !371
76: ; preds = %71
%77 = ptrtoint i8* %clzero to i64, !dbg !371
%78 = xor i64 %77, 87960930222080, !dbg !371
%79 = inttoptr i64 %78 to i8*, !dbg !371
store i8 0, i8* %79, align 1, !dbg !371
store i8 %processor_capacity_info.sroa.0.0, i8* %clzero, align 1, !dbg !371
%clflush = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 5, !dbg !372
%80 = lshr i64 %0, 51, !dbg !373
%and74817 = lshr i64 %basic_info.coerce1, 51, !dbg !373
%_msprop967 = trunc i64 %80 to i8, !dbg !373
%81 = trunc i64 %and74817 to i8, !dbg !373
%82 = and i8 %_msprop967, 1, !dbg !373
%83 = and i8 %81, 1, !dbg !373
br i1 false, label %84, label %85, !dbg !373, !prof !301
84: ; preds = %76
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !373
unreachable, !dbg !373
85: ; preds = %76
%86 = ptrtoint i8* %clflush to i64, !dbg !373
%87 = xor i64 %86, 87960930222080, !dbg !373
%88 = inttoptr i64 %87 to i8*, !dbg !373
store i8 %82, i8* %88, align 1, !dbg !373
store i8 %83, i8* %clflush, align 1, !dbg !373
%structured_feature_info0.sroa.0.4.extract.shift = lshr exact i64 %structured_feature_info0.sroa.0.0930, 32, !dbg !374
%structured_feature_info0.sroa.0.4.extract.trunc = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i32, !dbg !374
%clflushopt = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 6, !dbg !375
%and80818 = lshr i64 %structured_feature_info0.sroa.0.0930, 55, !dbg !376
%89 = trunc i64 %and80818 to i8, !dbg !376
%90 = and i8 %89, 1, !dbg !376
br i1 false, label %91, label %92, !dbg !376, !prof !301
91: ; preds = %85
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !376
unreachable, !dbg !376
92: ; preds = %85
%93 = ptrtoint i8* %clflushopt to i64, !dbg !376
%94 = xor i64 %93, 87960930222080, !dbg !376
%95 = inttoptr i64 %94 to i8*, !dbg !376
store i8 0, i8* %95, align 1, !dbg !376
store i8 %90, i8* %clflushopt, align 1, !dbg !376
%mwait = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 7, !dbg !377
%_msprop974 = trunc i64 %0 to i8, !dbg !378
%96 = trunc i64 %basic_info.coerce1 to i8, !dbg !378
%97 = lshr i8 %_msprop974, 3, !dbg !378
%98 = lshr i8 %96, 3, !dbg !378
%99 = and i8 %97, 1, !dbg !378
%100 = and i8 %98, 1, !dbg !378
br i1 false, label %101, label %102, !dbg !378, !prof !301
101: ; preds = %92
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !378
unreachable, !dbg !378
102: ; preds = %92
%103 = ptrtoint i8* %mwait to i64, !dbg !378
%104 = xor i64 %103, 87960930222080, !dbg !378
%105 = inttoptr i64 %104 to i8*, !dbg !378
store i8 %99, i8* %105, align 1, !dbg !378
store i8 %100, i8* %mwait, align 1, !dbg !378
%mwaitx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 8, !dbg !379
%106 = lshr i32 %_msprop939, 29, !dbg !380
%and92 = lshr i32 %extended_info.sroa.1.8.extract.trunc, 29, !dbg !380
%_msprop977 = trunc i32 %106 to i8, !dbg !380
%107 = trunc i32 %and92 to i8, !dbg !380
%108 = and i8 %_msprop977, 1, !dbg !380
%109 = and i8 %107, 1, !dbg !380
br i1 false, label %110, label %111, !dbg !380, !prof !301
110: ; preds = %102
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !380
unreachable, !dbg !380
111: ; preds = %102
%112 = ptrtoint i8* %mwaitx to i64, !dbg !380
%113 = xor i64 %112, 87960930222080, !dbg !380
%114 = inttoptr i64 %113 to i8*, !dbg !380
store i8 %108, i8* %114, align 1, !dbg !380
store i8 %109, i8* %mwaitx, align 1, !dbg !380
%fxsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 9, !dbg !381
%115 = lshr i64 %64, 24, !dbg !383
%and100821 = lshr i64 %or61820, 24, !dbg !383
%_msprop980 = trunc i64 %115 to i8, !dbg !383
%116 = trunc i64 %and100821 to i8, !dbg !383
%117 = and i8 %_msprop980, 1, !dbg !383
%118 = and i8 %116, 1, !dbg !383
br i1 false, label %119, label %120, !dbg !383, !prof !301
119: ; preds = %111
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !383
unreachable, !dbg !383
120: ; preds = %111
%121 = ptrtoint i8* %fxsave to i64, !dbg !383
%122 = xor i64 %121, 87960930222080, !dbg !383
%123 = inttoptr i64 %122 to i8*, !dbg !383
store i8 %117, i8* %123, align 1, !dbg !383
store i8 %118, i8* %fxsave, align 1, !dbg !383
%xsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 10, !dbg !384
%124 = lshr i32 %_msprop, 26, !dbg !385
%and106 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 26, !dbg !385
%_msprop983 = trunc i32 %124 to i8, !dbg !385
%125 = trunc i32 %and106 to i8, !dbg !385
%126 = and i8 %_msprop983, 1, !dbg !385
%127 = and i8 %125, 1, !dbg !385
br i1 false, label %128, label %129, !dbg !385, !prof !301
128: ; preds = %120
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !385
unreachable, !dbg !385
129: ; preds = %120
%130 = ptrtoint i8* %xsave to i64, !dbg !385
%131 = xor i64 %130, 87960930222080, !dbg !385
%132 = inttoptr i64 %131 to i8*, !dbg !385
store i8 %126, i8* %132, align 1, !dbg !385
store i8 %127, i8* %xsave, align 1, !dbg !385
%three_d_now = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 11, !dbg !386
%133 = lshr i64 %1, 63, !dbg !387
%extended_info.coerce1.lobit = lshr i64 %extended_info.coerce1, 63, !dbg !387
%_msprop986 = trunc i64 %133 to i8, !dbg !387
%134 = trunc i64 %extended_info.coerce1.lobit to i8, !dbg !387
br i1 false, label %135, label %136, !dbg !387, !prof !301
135: ; preds = %129
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !387
unreachable, !dbg !387
136: ; preds = %129
%137 = ptrtoint i8* %three_d_now to i64, !dbg !387
%138 = xor i64 %137, 87960930222080, !dbg !387
%139 = inttoptr i64 %138 to i8*, !dbg !387
store i8 %_msprop986, i8* %139, align 1, !dbg !387
store i8 %134, i8* %three_d_now, align 1, !dbg !387
%three_d_now_plus = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 12, !dbg !388
%140 = lshr i32 %_msprop940, 30, !dbg !389
%and118 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 30, !dbg !389
%_msprop989 = trunc i32 %140 to i8, !dbg !389
%141 = trunc i32 %and118 to i8, !dbg !389
%142 = and i8 %_msprop989, 1, !dbg !389
%143 = and i8 %141, 1, !dbg !389
br i1 false, label %144, label %145, !dbg !389, !prof !301
144: ; preds = %136
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !389
unreachable, !dbg !389
145: ; preds = %136
%146 = ptrtoint i8* %three_d_now_plus to i64, !dbg !389
%147 = xor i64 %146, 87960930222080, !dbg !389
%148 = inttoptr i64 %147 to i8*, !dbg !389
store i8 %142, i8* %148, align 1, !dbg !389
store i8 %143, i8* %three_d_now_plus, align 1, !dbg !389
switch i32 %vendor, label %sw.default132 [
i32 16, label %sw.bb
i32 2, label %sw.bb
i32 1, label %sw.epilog162
], !dbg !390
sw.bb: ; preds = %145, %145
%149 = and i32 %_msprop939, 256, !dbg !391
%and124 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !391
%150 = and i32 %_msprop940, -536870912, !dbg !393
%and126 = and i32 %extended_info.sroa.14.8.extract.trunc, -536870912, !dbg !393
%151 = xor i32 %and126, -1, !dbg !394
%152 = xor i32 %and124, -1, !dbg !394
%153 = or i32 %149, %150, !dbg !394
%or127 = or i32 %and126, %and124, !dbg !394
%154 = icmp ne i32 %153, 0, !dbg !395
%155 = xor i32 %153, -1, !dbg !395
%156 = and i32 %155, %or127, !dbg !395
%157 = icmp eq i32 %156, 0, !dbg !395
%_msprop_icmp1164 = and i1 %154, %157, !dbg !395
%tobool128 = icmp ne i32 %or127, 0, !dbg !395
br label %sw.epilog140, !dbg !396
sw.default132: ; preds = %145
%158 = xor i32 %_msprop940, -1, !dbg !397
%159 = and i32 %extended_info.sroa.14.8.extract.trunc, %158, !dbg !397
%160 = icmp ugt i32 %159, 1073741823, !dbg !397
%161 = or i32 %extended_info.sroa.14.8.extract.trunc, %_msprop940, !dbg !397
%162 = icmp ugt i32 %161, 1073741823, !dbg !397
%163 = xor i1 %160, %162, !dbg !397
%tobool135 = icmp ugt i32 %extended_info.sroa.14.8.extract.trunc, 1073741823, !dbg !397
br label %sw.epilog140, !dbg !398
sw.epilog140: ; preds = %sw.default132, %sw.bb
%_msphi_s990 = phi i1 [ %163, %sw.default132 ], [ %_msprop_icmp1164, %sw.bb ]
%tobool135.sink = phi i1 [ %tobool135, %sw.default132 ], [ %tobool128, %sw.bb ]
%prefetch138 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 13, !dbg !399
%_msprop993 = zext i1 %_msphi_s990 to i8, !dbg !399
%frombool139 = zext i1 %tobool135.sink to i8, !dbg !399
br i1 false, label %164, label %165, !dbg !399, !prof !301
164: ; preds = %sw.epilog140
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !399
unreachable, !dbg !399
165: ; preds = %sw.epilog140
%166 = ptrtoint i8* %prefetch138 to i64, !dbg !399
%167 = xor i64 %166, 87960930222080, !dbg !399
%168 = inttoptr i64 %167 to i8*, !dbg !399
store i8 %_msprop993, i8* %168, align 1, !dbg !399
store i8 %frombool139, i8* %prefetch138, align 1, !dbg !399
%169 = xor i32 %vendor, 2, !dbg !400
%170 = icmp eq i32 %169, 0, !dbg !400
%switch.selectcmp.case1 = icmp eq i32 %vendor, 2, !dbg !400
%171 = xor i32 %vendor, 16, !dbg !400
%172 = icmp eq i32 %171, 0, !dbg !400
%switch.selectcmp.case2 = icmp eq i32 %vendor, 16, !dbg !400
%173 = xor i1 %switch.selectcmp.case1, true, !dbg !400
%174 = xor i1 %switch.selectcmp.case2, true, !dbg !400
%switch.selectcmp = or i1 %switch.selectcmp.case1, %switch.selectcmp.case2, !dbg !400
%175 = select i1 %switch.selectcmp, i32 -536870912, i32 -1073741824, !dbg !400
br label %sw.epilog162, !dbg !400
sw.epilog162: ; preds = %145, %165
%.sink = phi i32 [ %175, %165 ], [ -1073741824, %145 ]
%176 = and i32 %_msprop939, 256, !dbg !401
%and153 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !401
%177 = and i32 %.sink, %_msprop940, !dbg !401
%and155 = and i32 %.sink, %extended_info.sroa.14.8.extract.trunc, !dbg !401
%178 = xor i32 %and155, -1, !dbg !401
%179 = xor i32 %and153, -1, !dbg !401
%180 = and i32 %177, %176, !dbg !401
%181 = and i32 %178, %176, !dbg !401
%182 = and i32 %177, %179, !dbg !401
%183 = or i32 %180, %181, !dbg !401
%184 = or i32 %183, %182, !dbg !401
%or156 = or i32 %and155, %and153, !dbg !401
%185 = icmp ne i32 %184, 0, !dbg !401
%186 = xor i32 %184, -1, !dbg !401
%187 = and i32 %186, %or156, !dbg !401
%188 = icmp eq i32 %187, 0, !dbg !401
%_msprop_icmp998 = and i1 %185, %188, !dbg !401
%tobool157 = icmp ne i32 %or156, 0, !dbg !401
%prefetchw160 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 14, !dbg !401
%_msprop1001 = zext i1 %_msprop_icmp998 to i8, !dbg !401
%frombool161 = zext i1 %tobool157 to i8, !dbg !401
br i1 false, label %189, label %190, !dbg !401, !prof !301
189: ; preds = %sw.epilog162
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !401
unreachable, !dbg !401
190: ; preds = %sw.epilog162
%191 = ptrtoint i8* %prefetchw160 to i64, !dbg !401
%192 = xor i64 %191, 87960930222080, !dbg !401
%193 = inttoptr i64 %192 to i8*, !dbg !401
store i8 %_msprop1001, i8* %193, align 1, !dbg !401
store i8 %frombool161, i8* %prefetchw160, align 1, !dbg !401
%prefetchwt1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 15, !dbg !403
%194 = trunc i64 %structured_feature_info0.sroa.25.0932 to i8, !dbg !404
%195 = and i8 %194, 1, !dbg !404
br i1 false, label %196, label %197, !dbg !404, !prof !301
196: ; preds = %190
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !404
unreachable, !dbg !404
197: ; preds = %190
%198 = ptrtoint i8* %prefetchwt1 to i64, !dbg !404
%199 = xor i64 %198, 87960930222080, !dbg !404
%200 = inttoptr i64 %199 to i8*, !dbg !404
store i8 0, i8* %200, align 1, !dbg !404
store i8 %195, i8* %prefetchwt1, align 1, !dbg !404
%sse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 16, !dbg !405
%201 = and i8 %_msprop974, 1, !dbg !406
%202 = and i8 %96, 1, !dbg !406
br i1 false, label %203, label %204, !dbg !406, !prof !301
203: ; preds = %197
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !406
unreachable, !dbg !406
204: ; preds = %197
%205 = ptrtoint i8* %sse3 to i64, !dbg !406
%206 = xor i64 %205, 87960930222080, !dbg !406
%207 = inttoptr i64 %206 to i8*, !dbg !406
store i8 %201, i8* %207, align 1, !dbg !406
store i8 %202, i8* %sse3, align 1, !dbg !406
%ssse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 17, !dbg !407
%208 = lshr i64 %0, 9, !dbg !408
%and176822 = lshr i64 %basic_info.coerce1, 9, !dbg !408
%_msprop1009 = trunc i64 %208 to i8, !dbg !408
%209 = trunc i64 %and176822 to i8, !dbg !408
%210 = and i8 %_msprop1009, 1, !dbg !408
%211 = and i8 %209, 1, !dbg !408
br i1 false, label %212, label %213, !dbg !408, !prof !301
212: ; preds = %204
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !408
unreachable, !dbg !408
213: ; preds = %204
%214 = ptrtoint i8* %ssse3 to i64, !dbg !408
%215 = xor i64 %214, 87960930222080, !dbg !408
%216 = inttoptr i64 %215 to i8*, !dbg !408
store i8 %210, i8* %216, align 1, !dbg !408
store i8 %211, i8* %ssse3, align 1, !dbg !408
%sse4_1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 18, !dbg !409
%217 = lshr i64 %0, 19, !dbg !410
%and182823 = lshr i64 %basic_info.coerce1, 19, !dbg !410
%_msprop1012 = trunc i64 %217 to i8, !dbg !410
%218 = trunc i64 %and182823 to i8, !dbg !410
%219 = and i8 %_msprop1012, 1, !dbg !410
%220 = and i8 %218, 1, !dbg !410
br i1 false, label %221, label %222, !dbg !410, !prof !301
221: ; preds = %213
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !410
unreachable, !dbg !410
222: ; preds = %213
%223 = ptrtoint i8* %sse4_1 to i64, !dbg !410
%224 = xor i64 %223, 87960930222080, !dbg !410
%225 = inttoptr i64 %224 to i8*, !dbg !410
store i8 %219, i8* %225, align 1, !dbg !410
store i8 %220, i8* %sse4_1, align 1, !dbg !410
%sse4_2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 19, !dbg !411
%226 = lshr i64 %0, 20, !dbg !412
%and188824 = lshr i64 %basic_info.coerce1, 20, !dbg !412
%_msprop1015 = trunc i64 %226 to i8, !dbg !412
%227 = trunc i64 %and188824 to i8, !dbg !412
%228 = and i8 %_msprop1015, 1, !dbg !412
%229 = and i8 %227, 1, !dbg !412
br i1 false, label %230, label %231, !dbg !412, !prof !301
230: ; preds = %222
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !412
unreachable, !dbg !412
231: ; preds = %222
%232 = ptrtoint i8* %sse4_2 to i64, !dbg !412
%233 = xor i64 %232, 87960930222080, !dbg !412
%234 = inttoptr i64 %233 to i8*, !dbg !412
store i8 %228, i8* %234, align 1, !dbg !412
store i8 %229, i8* %sse4_2, align 1, !dbg !412
%sse4a = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 20, !dbg !413
%_msprop1018 = trunc i64 %1 to i8, !dbg !414
%235 = trunc i64 %extended_info.coerce1 to i8, !dbg !414
%236 = lshr i8 %_msprop1018, 6, !dbg !414
%237 = lshr i8 %235, 6, !dbg !414
%238 = and i8 %236, 1, !dbg !414
%239 = and i8 %237, 1, !dbg !414
br i1 false, label %240, label %241, !dbg !414, !prof !301
240: ; preds = %231
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !414
unreachable, !dbg !414
241: ; preds = %231
%242 = ptrtoint i8* %sse4a to i64, !dbg !414
%243 = xor i64 %242, 87960930222080, !dbg !414
%244 = inttoptr i64 %243 to i8*, !dbg !414
store i8 %238, i8* %244, align 1, !dbg !414
store i8 %239, i8* %sse4a, align 1, !dbg !414
%misaligned_sse = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 21, !dbg !415
%245 = lshr i8 %_msprop1018, 7, !dbg !416
%246 = lshr i8 %235, 7, !dbg !416
br i1 false, label %247, label %248, !dbg !416, !prof !301
247: ; preds = %241
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !416
unreachable, !dbg !416
248: ; preds = %241
%249 = ptrtoint i8* %misaligned_sse to i64, !dbg !416
%250 = xor i64 %249, 87960930222080, !dbg !416
%251 = inttoptr i64 %250 to i8*, !dbg !416
store i8 %245, i8* %251, align 1, !dbg !416
store i8 %246, i8* %misaligned_sse, align 1, !dbg !416
%_msprop1021 = insertelement <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, i32 %_msprop, i64 0, !dbg !417
%252 = insertelement <8 x i32> poison, i32 %basic_info.sroa.1.8.extract.trunc, i64 0, !dbg !417
%_msprop1022 = insertelement <8 x i32> %_msprop1021, i32 %_msprop939, i64 1, !dbg !417
%253 = insertelement <8 x i32> %252, i32 %extended_info.sroa.1.8.extract.trunc, i64 1, !dbg !417
%_msprop1023 = insertelement <8 x i32> %_msprop1022, i32 0, i64 2, !dbg !417
%254 = insertelement <8 x i32> %253, i32 %structured_feature_info0.sroa.0.4.extract.trunc, i64 2, !dbg !417
%_msprop1024 = shufflevector <8 x i32> %_msprop1023, <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 0, i32 2, i32 2, i32 2>, !dbg !417
%shuffle938 = shufflevector <8 x i32> %254, <8 x i32> poison, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 0, i32 2, i32 2, i32 2>, !dbg !417
%255 = and <8 x i32> %_msprop1024, <i32 268435456, i32 4096, i32 65536, i32 2048, i32 536870912, i32 32, i32 65536, i32 67108864>, !dbg !417
%256 = and <8 x i32> %shuffle938, <i32 268435456, i32 4096, i32 65536, i32 2048, i32 536870912, i32 32, i32 65536, i32 67108864>, !dbg !417
%avx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 22, !dbg !418
%257 = icmp ne <8 x i32> %255, zeroinitializer, !dbg !417
%258 = xor <8 x i32> %255, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, !dbg !417
%259 = and <8 x i32> %258, %256, !dbg !417
%260 = icmp eq <8 x i32> %259, zeroinitializer, !dbg !417
%_msprop_icmp1027 = and <8 x i1> %257, %260, !dbg !417
%261 = icmp ne <8 x i32> %256, zeroinitializer, !dbg !417
%262 = select <8 x i1> %shuffle937, <8 x i1> %_msprop_icmp1027, <8 x i1> zeroinitializer, !dbg !417
%263 = or <8 x i1> %261, %_msprop_icmp1027, !dbg !417
%264 = select <8 x i1> %shuffle937, <8 x i1> %261, <8 x i1> zeroinitializer, !dbg !417
%_msprop1029 = zext <8 x i1> %262 to <8 x i8>, !dbg !419
%265 = zext <8 x i1> %264 to <8 x i8>, !dbg !419
%266 = bitcast i8* %avx to <8 x i8>*, !dbg !419
br i1 false, label %267, label %268, !dbg !419, !prof !301
267: ; preds = %248
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !419
unreachable, !dbg !419
268: ; preds = %248
%269 = ptrtoint <8 x i8>* %266 to i64, !dbg !419
%270 = xor i64 %269, 87960930222080, !dbg !419
%271 = inttoptr i64 %270 to <8 x i8>*, !dbg !419
store <8 x i8> %_msprop1029, <8 x i8>* %271, align 1, !dbg !419
store <8 x i8> %265, <8 x i8>* %266, align 1, !dbg !419
%and287 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 134217728, !dbg !420
%272 = icmp eq i32 %and287, 0, !dbg !420
%tobool288 = icmp ne i32 %and287, 0, !dbg !420
%273 = extractelement <2 x i1> %48, i64 1, !dbg !420
%274 = select i1 %273, i1 %tobool288, i1 false, !dbg !420
%avx512er = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 30, !dbg !421
%frombool292 = zext i1 %274 to i8, !dbg !422
br i1 false, label %275, label %276, !dbg !422, !prof !301
275: ; preds = %268
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !422
unreachable, !dbg !422
276: ; preds = %268
%277 = ptrtoint i8* %avx512er to i64, !dbg !422
%278 = xor i64 %277, 87960930222080, !dbg !422
%279 = inttoptr i64 %278 to i8*, !dbg !422
store i8 0, i8* %279, align 1, !dbg !422
store i8 %frombool292, i8* %avx512er, align 1, !dbg !422
%and297 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 268435456, !dbg !423
%280 = icmp eq i32 %and297, 0, !dbg !423
%tobool298 = icmp ne i32 %and297, 0, !dbg !423
%281 = select i1 %273, i1 %tobool298, i1 false, !dbg !423
%avx512cd = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 31, !dbg !424
%frombool302 = zext i1 %281 to i8, !dbg !425
br i1 false, label %282, label %283, !dbg !425, !prof !301
282: ; preds = %276
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !425
unreachable, !dbg !425
283: ; preds = %276
%284 = ptrtoint i8* %avx512cd to i64, !dbg !425
%285 = xor i64 %284, 87960930222080, !dbg !425
%286 = inttoptr i64 %285 to i8*, !dbg !425
store i8 0, i8* %286, align 1, !dbg !425
store i8 %frombool302, i8* %avx512cd, align 1, !dbg !425
%and307827 = lshr i64 %structured_feature_info0.sroa.0.0930, 49, !dbg !426
%287 = trunc i64 %and307827 to i8, !dbg !426
%avx512dq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 32, !dbg !427
%and317 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 30, !dbg !428
%288 = trunc i32 %and317 to i8, !dbg !428
%289 = insertelement <2 x i8> poison, i8 %287, i64 0, !dbg !426
%290 = insertelement <2 x i8> %289, i8 %288, i64 1, !dbg !426
%291 = and <2 x i8> %290, <i8 1, i8 1>, !dbg !426
%and327.lobit = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 31, !dbg !429
%292 = trunc i32 %and327.lobit to i8, !dbg !429
%and337828 = lshr i64 %structured_feature_info0.sroa.0.0930, 53, !dbg !430
%293 = trunc i64 %and337828 to i8, !dbg !430
%294 = and i8 %293, 1, !dbg !430
%295 = lshr i8 %194, 1, !dbg !431
%296 = and i8 %295, 1, !dbg !431
%297 = lshr i8 %194, 6, !dbg !432
%298 = and i8 %297, 1, !dbg !432
%and367831 = lshr i64 %structured_feature_info0.sroa.25.0932, 12, !dbg !433
%299 = trunc i64 %and367831 to i8, !dbg !433
%300 = and i8 %299, 1, !dbg !433
%and377832 = lshr i64 %structured_feature_info0.sroa.25.0932, 14, !dbg !434
%301 = trunc i64 %and377832 to i8, !dbg !434
%302 = and i8 %301, 1, !dbg !434
%303 = shufflevector <2 x i1> %48, <2 x i1> undef, <8 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>, !dbg !426
%304 = shufflevector <2 x i8> %291, <2 x i8> poison, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !426
%305 = insertelement <8 x i8> %304, i8 %292, i64 2, !dbg !426
%306 = insertelement <8 x i8> %305, i8 %294, i64 3, !dbg !426
%307 = insertelement <8 x i8> %306, i8 %296, i64 4, !dbg !426
%308 = insertelement <8 x i8> %307, i8 %298, i64 5, !dbg !426
%309 = insertelement <8 x i8> %308, i8 %300, i64 6, !dbg !426
%310 = insertelement <8 x i8> %309, i8 %302, i64 7, !dbg !426
%311 = select <8 x i1> %303, <8 x i8> %310, <8 x i8> zeroinitializer, !dbg !426
%312 = bitcast i8* %avx512dq to <8 x i8>*, !dbg !435
br i1 false, label %313, label %314, !dbg !435, !prof !301
313: ; preds = %283
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !435
unreachable, !dbg !435
314: ; preds = %283
%315 = ptrtoint <8 x i8>* %312 to i64, !dbg !435
%316 = xor i64 %315, 87960930222080, !dbg !435
%317 = inttoptr i64 %316 to <8 x i8>*, !dbg !435
store <8 x i8> zeroinitializer, <8 x i8>* %317, align 1, !dbg !435
store <8 x i8> %311, <8 x i8>* %312, align 1, !dbg !435
%and387833 = lshr i64 %structured_feature_info0.sroa.25.0932, 11, !dbg !436
%318 = trunc i64 %and387833 to i8, !dbg !436
%319 = and i8 %318, 1, !dbg !436
%320 = select i1 %273, i8 %319, i8 0, !dbg !436
%avx512vnni = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 40, !dbg !437
br i1 false, label %321, label %322, !dbg !438, !prof !301
321: ; preds = %314
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !438
unreachable, !dbg !438
322: ; preds = %314
%323 = ptrtoint i8* %avx512vnni to i64, !dbg !438
%324 = xor i64 %323, 87960930222080, !dbg !438
%325 = inttoptr i64 %324 to i8*, !dbg !438
store i8 0, i8* %325, align 1, !dbg !438
store i8 %320, i8* %avx512vnni, align 1, !dbg !438
%sum.shift = lshr i64 %structured_feature_info0.sroa.25.0932, 34, !dbg !439
%and397834 = trunc i64 %sum.shift to i8, !dbg !439
%and397.lobit = and i8 %and397834, 1, !dbg !439
%326 = select i1 %273, i8 %and397.lobit, i8 0, !dbg !439
%avx512_4vnniw = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 43, !dbg !440
br i1 false, label %327, label %328, !dbg !441, !prof !301
327: ; preds = %322
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !441
unreachable, !dbg !441
328: ; preds = %322
%329 = ptrtoint i8* %avx512_4vnniw to i64, !dbg !441
%330 = xor i64 %329, 87960930222080, !dbg !441
%331 = inttoptr i64 %330 to i8*, !dbg !441
store i8 0, i8* %331, align 1, !dbg !441
store i8 %326, i8* %avx512_4vnniw, align 1, !dbg !441
%sum.shift835 = lshr i64 %structured_feature_info0.sroa.25.0932, 35, !dbg !442
%and407836 = trunc i64 %sum.shift835 to i8, !dbg !442
%and407.lobit = and i8 %and407836, 1, !dbg !442
%332 = select i1 %273, i8 %and407.lobit, i8 0, !dbg !442
%avx512_4fmaps = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 44, !dbg !443
br i1 false, label %333, label %334, !dbg !444, !prof !301
333: ; preds = %328
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !444
unreachable, !dbg !444
334: ; preds = %328
%335 = ptrtoint i8* %avx512_4fmaps to i64, !dbg !444
%336 = xor i64 %335, 87960930222080, !dbg !444
%337 = inttoptr i64 %336 to i8*, !dbg !444
store i8 0, i8* %337, align 1, !dbg !444
store i8 %332, i8* %avx512_4fmaps, align 1, !dbg !444
%sum.shift837 = lshr i64 %structured_feature_info0.sroa.25.0932, 40, !dbg !445
%and417838 = trunc i64 %sum.shift837 to i8, !dbg !445
%and417.lobit = and i8 %and417838, 1, !dbg !445
%338 = select i1 %273, i8 %and417.lobit, i8 0, !dbg !445
%avx512vp2intersect = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 42, !dbg !446
br i1 false, label %339, label %340, !dbg !447, !prof !301
339: ; preds = %334
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !447
unreachable, !dbg !447
340: ; preds = %334
%341 = ptrtoint i8* %avx512vp2intersect to i64, !dbg !447
%342 = xor i64 %341, 87960930222080, !dbg !447
%343 = inttoptr i64 %342 to i8*, !dbg !447
store i8 0, i8* %343, align 1, !dbg !447
store i8 %338, i8* %avx512vp2intersect, align 1, !dbg !447
%344 = select i1 %273, i8 %structured_feature_info1.sroa.0.0, i8 0, !dbg !448
%avx512bf16 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 41, !dbg !449
br i1 false, label %345, label %346, !dbg !450, !prof !301
345: ; preds = %340
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !450
unreachable, !dbg !450
346: ; preds = %340
%347 = ptrtoint i8* %avx512bf16 to i64, !dbg !450
%348 = xor i64 %347, 87960930222080, !dbg !450
%349 = inttoptr i64 %348 to i8*, !dbg !450
store i8 0, i8* %349, align 1, !dbg !450
store i8 %344, i8* %avx512bf16, align 1, !dbg !450
%hle = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 45, !dbg !451
%and434840 = lshr i64 %structured_feature_info0.sroa.0.0930, 36, !dbg !452
%350 = trunc i64 %and434840 to i8, !dbg !452
%351 = and i8 %350, 1, !dbg !452
br i1 false, label %352, label %353, !dbg !452, !prof !301
352: ; preds = %346
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !452
unreachable, !dbg !452
353: ; preds = %346
%354 = ptrtoint i8* %hle to i64, !dbg !452
%355 = xor i64 %354, 87960930222080, !dbg !452
%356 = inttoptr i64 %355 to i8*, !dbg !452
store i8 0, i8* %356, align 1, !dbg !452
store i8 %351, i8* %hle, align 1, !dbg !452
%and440 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 2048, !dbg !453
%357 = icmp eq i32 %and440, 0, !dbg !454
%tobool441 = icmp ne i32 %and440, 0, !dbg !454
%rtm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 46, !dbg !455
%and440.lobit = lshr exact i32 %and440, 11, !dbg !456
%358 = trunc i32 %and440.lobit to i8, !dbg !456
br i1 false, label %359, label %360, !dbg !456, !prof !301
359: ; preds = %353
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !456
unreachable, !dbg !456
360: ; preds = %353
%361 = ptrtoint i8* %rtm to i64, !dbg !456
%362 = xor i64 %361, 87960930222080, !dbg !456
%363 = inttoptr i64 %362 to i8*, !dbg !456
store i8 0, i8* %363, align 1, !dbg !456
store i8 %358, i8* %rtm, align 1, !dbg !456
%364 = icmp eq i8 %351, 0, !dbg !457
%tobool446 = icmp ne i8 %351, 0, !dbg !457
%365 = xor i1 true, %tobool441, !dbg !458
%366 = select i1 %tobool446, i1 true, i1 %tobool441, !dbg !458
%xtest = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 47, !dbg !459
%frombool451 = zext i1 %366 to i8, !dbg !460
br i1 false, label %367, label %368, !dbg !460, !prof !301
367: ; preds = %360
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !460
unreachable, !dbg !460
368: ; preds = %360
%369 = ptrtoint i8* %xtest to i64, !dbg !460
%370 = xor i64 %369, 87960930222080, !dbg !460
%371 = inttoptr i64 %370 to i8*, !dbg !460
store i8 0, i8* %371, align 1, !dbg !460
store i8 %frombool451, i8* %xtest, align 1, !dbg !460
%and456841 = lshr i64 %structured_feature_info0.sroa.0.0930, 46, !dbg !461
%372 = trunc i64 %and456841 to i8, !dbg !461
%373 = and i8 %372, 1, !dbg !461
%374 = select i1 %mpx_regs.1, i8 %373, i8 0, !dbg !461
%mpx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 48, !dbg !462
br i1 false, label %375, label %376, !dbg !463, !prof !301
375: ; preds = %368
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !463
unreachable, !dbg !463
376: ; preds = %368
%377 = ptrtoint i8* %mpx to i64, !dbg !463
%378 = xor i64 %377, 87960930222080, !dbg !463
%379 = inttoptr i64 %378 to i8*, !dbg !463
store i8 0, i8* %379, align 1, !dbg !463
store i8 %374, i8* %mpx, align 1, !dbg !463
%cmpxchg16b = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 49, !dbg !464
%380 = lshr i64 %0, 13, !dbg !465
%and463842 = lshr i64 %basic_info.coerce1, 13, !dbg !465
%_msprop1097 = trunc i64 %380 to i8, !dbg !465
%381 = trunc i64 %and463842 to i8, !dbg !465
%and469843 = lshr i64 %structured_feature_info0.sroa.0.0930, 56, !dbg !466
%382 = trunc i64 %and469843 to i8, !dbg !466
%383 = lshr i64 %0, 22, !dbg !467
%and475844 = lshr i64 %basic_info.coerce1, 22, !dbg !467
%_msprop1099 = trunc i64 %383 to i8, !dbg !467
%384 = trunc i64 %and475844 to i8, !dbg !467
%385 = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i8, !dbg !468
%386 = lshr i8 %_msprop1018, 5, !dbg !469
%387 = lshr i8 %235, 5, !dbg !469
%388 = lshr i64 %0, 23, !dbg !470
%and499846 = lshr i64 %basic_info.coerce1, 23, !dbg !470
%_msprop1101 = trunc i64 %388 to i8, !dbg !470
%389 = trunc i64 %and499846 to i8, !dbg !470
%390 = lshr i64 %1, 21, !dbg !471
%and505847 = lshr i64 %extended_info.coerce1, 21, !dbg !471
%_msprop1102 = trunc i64 %390 to i8, !dbg !471
%391 = trunc i64 %and505847 to i8, !dbg !471
%and511848 = lshr i64 %structured_feature_info0.sroa.0.0930, 35, !dbg !472
%392 = trunc i64 %and511848 to i8, !dbg !472
%and517849 = lshr i64 %structured_feature_info0.sroa.0.0930, 40, !dbg !473
%393 = trunc i64 %and517849 to i8, !dbg !473
%and523850 = lshr i64 %structured_feature_info0.sroa.0.0930, 51, !dbg !474
%394 = trunc i64 %and523850 to i8, !dbg !474
%395 = lshr i32 %_msprop, 25, !dbg !475
%and529 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 25, !dbg !475
%_msprop1106 = trunc i32 %395 to i8, !dbg !475
%396 = trunc i32 %and529 to i8, !dbg !475
%and535851 = lshr i64 %structured_feature_info0.sroa.25.0932, 9, !dbg !476
%397 = trunc i64 %and535851 to i8, !dbg !476
%398 = lshr i8 %_msprop974, 1, !dbg !477
%399 = lshr i8 %96, 1, !dbg !477
%and547853 = lshr i64 %structured_feature_info0.sroa.25.0932, 10, !dbg !478
%400 = trunc i64 %and547853 to i8, !dbg !478
%and553854 = lshr i64 %structured_feature_info0.sroa.25.0932, 8, !dbg !479
%401 = trunc i64 %and553854 to i8, !dbg !479
%_msprop1110 = insertelement <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, i8 %_msprop1097, i64 0, !dbg !465
%402 = insertelement <16 x i8> poison, i8 %381, i64 0, !dbg !465
%_msprop1111 = insertelement <16 x i8> %_msprop1110, i8 0, i64 1, !dbg !465
%403 = insertelement <16 x i8> %402, i8 %382, i64 1, !dbg !465
%_msprop1112 = insertelement <16 x i8> %_msprop1111, i8 %_msprop1099, i64 2, !dbg !465
%404 = insertelement <16 x i8> %403, i8 %384, i64 2, !dbg !465
%_msprop1113 = insertelement <16 x i8> %_msprop1112, i8 %_msprop1018, i64 3, !dbg !465
%405 = insertelement <16 x i8> %404, i8 %235, i64 3, !dbg !465
%_msprop1114 = insertelement <16 x i8> %_msprop1113, i8 0, i64 4, !dbg !465
%406 = insertelement <16 x i8> %405, i8 %385, i64 4, !dbg !465
%_msprop1115 = insertelement <16 x i8> %_msprop1114, i8 %386, i64 5, !dbg !465
%407 = insertelement <16 x i8> %406, i8 %387, i64 5, !dbg !465
%_msprop1116 = insertelement <16 x i8> %_msprop1115, i8 %_msprop1101, i64 6, !dbg !465
%408 = insertelement <16 x i8> %407, i8 %389, i64 6, !dbg !465
%_msprop1117 = insertelement <16 x i8> %_msprop1116, i8 %_msprop1102, i64 7, !dbg !465
%409 = insertelement <16 x i8> %408, i8 %391, i64 7, !dbg !465
%_msprop1118 = insertelement <16 x i8> %_msprop1117, i8 0, i64 8, !dbg !465
%410 = insertelement <16 x i8> %409, i8 %392, i64 8, !dbg !465
%_msprop1119 = insertelement <16 x i8> %_msprop1118, i8 0, i64 9, !dbg !465
%411 = insertelement <16 x i8> %410, i8 %393, i64 9, !dbg !465
%_msprop1120 = insertelement <16 x i8> %_msprop1119, i8 0, i64 10, !dbg !465
%412 = insertelement <16 x i8> %411, i8 %394, i64 10, !dbg !465
%_msprop1121 = insertelement <16 x i8> %_msprop1120, i8 %_msprop1106, i64 11, !dbg !465
%413 = insertelement <16 x i8> %412, i8 %396, i64 11, !dbg !465
%_msprop1122 = insertelement <16 x i8> %_msprop1121, i8 0, i64 12, !dbg !465
%414 = insertelement <16 x i8> %413, i8 %397, i64 12, !dbg !465
%_msprop1123 = insertelement <16 x i8> %_msprop1122, i8 %398, i64 13, !dbg !465
%415 = insertelement <16 x i8> %414, i8 %399, i64 13, !dbg !465
%_msprop1124 = insertelement <16 x i8> %_msprop1123, i8 0, i64 14, !dbg !465
%416 = insertelement <16 x i8> %415, i8 %400, i64 14, !dbg !465
%_msprop1125 = insertelement <16 x i8> %_msprop1124, i8 0, i64 15, !dbg !465
%417 = insertelement <16 x i8> %416, i8 %401, i64 15, !dbg !465
%418 = and <16 x i8> %_msprop1125, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>, !dbg !465
%419 = and <16 x i8> %417, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>, !dbg !465
%420 = bitcast i8* %cmpxchg16b to <16 x i8>*, !dbg !465
br i1 false, label %421, label %422, !dbg !465, !prof !301
421: ; preds = %376
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !465
unreachable, !dbg !465
422: ; preds = %376
%423 = ptrtoint <16 x i8>* %420 to i64, !dbg !465
%424 = xor i64 %423, 87960930222080, !dbg !465
%425 = inttoptr i64 %424 to <16 x i8>*, !dbg !465
store <16 x i8> %418, <16 x i8>* %425, align 1, !dbg !465
store <16 x i8> %419, <16 x i8>* %420, align 1, !dbg !465
%rdrand = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 65, !dbg !480
%426 = lshr i32 %_msprop, 30, !dbg !481
%and559 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 30, !dbg !481
%_msprop1128 = trunc i32 %426 to i8, !dbg !481
%427 = trunc i32 %and559 to i8, !dbg !481
%428 = and i8 %_msprop1128, 1, !dbg !481
%429 = and i8 %427, 1, !dbg !481
br i1 false, label %430, label %431, !dbg !481, !prof !301
430: ; preds = %422
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !481
unreachable, !dbg !481
431: ; preds = %422
%432 = ptrtoint i8* %rdrand to i64, !dbg !481
%433 = xor i64 %432, 87960930222080, !dbg !481
%434 = inttoptr i64 %433 to i8*, !dbg !481
store i8 %428, i8* %434, align 1, !dbg !481
store i8 %429, i8* %rdrand, align 1, !dbg !481
%rdseed = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 66, !dbg !482
%and565855 = lshr i64 %structured_feature_info0.sroa.0.0930, 50, !dbg !483
%435 = trunc i64 %and565855 to i8, !dbg !483
%436 = and i8 %435, 1, !dbg !483
br i1 false, label %437, label %438, !dbg !483, !prof !301
437: ; preds = %431
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !483
unreachable, !dbg !483
438: ; preds = %431
%439 = ptrtoint i8* %rdseed to i64, !dbg !483
%440 = xor i64 %439, 87960930222080, !dbg !483
%441 = inttoptr i64 %440 to i8*, !dbg !483
store i8 0, i8* %441, align 1, !dbg !483
store i8 %436, i8* %rdseed, align 1, !dbg !483
%sha = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 67, !dbg !484
%and571 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 29, !dbg !485
%442 = trunc i32 %and571 to i8, !dbg !485
%443 = and i8 %442, 1, !dbg !485
br i1 false, label %444, label %445, !dbg !485, !prof !301
444: ; preds = %438
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !485
unreachable, !dbg !485
445: ; preds = %438
%446 = ptrtoint i8* %sha to i64, !dbg !485
%447 = xor i64 %446, 87960930222080, !dbg !485
%448 = inttoptr i64 %447 to i8*, !dbg !485
store i8 0, i8* %448, align 1, !dbg !485
store i8 %443, i8* %sha, align 1, !dbg !485
%449 = xor i32 %vendor, 11, !dbg !486
%450 = icmp eq i32 %449, 0, !dbg !486
%cmp576 = icmp eq i32 %vendor, 11, !dbg !486
br i1 false, label %451, label %452, !dbg !487, !prof !301
451: ; preds = %445
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !487
unreachable, !dbg !487
452: ; preds = %445
br i1 %cmp576, label %if.then578, label %if.end611, !dbg !487
if.then578: ; preds = %452
call void @llvm.dbg.value(metadata i32 -1073741824, metadata !322, metadata !DIExpression()) #5, !dbg !488
%453 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741824) #6, !dbg !490, !srcloc !331
%asmresult.i900 = extractvalue { i32, i32, i32, i32 } %453, 0, !dbg !490
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !488
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !488
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !488
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !488
call void @llvm.dbg.value(metadata i64 undef, metadata !284, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !491
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i900), metadata !284, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !491
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !287, metadata !DIExpression()), !dbg !491
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !288, metadata !DIExpression()), !dbg !491
%454 = icmp ugt i32 %asmresult.i900, -1073741824, !dbg !492
br i1 false, label %455, label %456, !dbg !493, !prof !301
455: ; preds = %if.then578
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !493
unreachable, !dbg !493
456: ; preds = %if.then578
br i1 %454, label %if.then583, label %if.end611, !dbg !493
if.then583: ; preds = %456
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !322, metadata !DIExpression()) #5, !dbg !494
%457 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741823) #6, !dbg !496, !srcloc !331
%asmresult4.i917 = extractvalue { i32, i32, i32, i32 } %457, 3, !dbg !496
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !494
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !494
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !494
call void @llvm.dbg.value(metadata i32 %asmresult4.i917, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !494
call void @llvm.dbg.value(metadata i64 undef, metadata !289, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !497
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult4.i917, i32 undef), metadata !289, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !497
call void @llvm.dbg.value(metadata i32 12, metadata !292, metadata !DIExpression()), !dbg !497
%and586 = and i32 %asmresult4.i917, 12, !dbg !498
%458 = xor i32 %and586, 12, !dbg !499
%459 = icmp eq i32 %458, 0, !dbg !499
%cmp587 = icmp eq i32 %and586, 12, !dbg !499
%rng = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 68, !dbg !500
%frombool589 = zext i1 %cmp587 to i8, !dbg !501
br i1 false, label %460, label %461, !dbg !501, !prof !301
460: ; preds = %if.then583
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !501
unreachable, !dbg !501
461: ; preds = %if.then583
%462 = ptrtoint i8* %rng to i64, !dbg !501
%463 = xor i64 %462, 87960930222080, !dbg !501
%464 = inttoptr i64 %463 to i8*, !dbg !501
store i8 0, i8* %464, align 1, !dbg !501
store i8 %frombool589, i8* %rng, align 1, !dbg !501
call void @llvm.dbg.value(metadata i32 192, metadata !293, metadata !DIExpression()), !dbg !497
%ace = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 69, !dbg !502
call void @llvm.dbg.value(metadata i32 768, metadata !294, metadata !DIExpression()), !dbg !497
%ace2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 70, !dbg !503
call void @llvm.dbg.value(metadata i32 3072, metadata !295, metadata !DIExpression()), !dbg !497
%phe = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 71, !dbg !504
call void @llvm.dbg.value(metadata i32 12288, metadata !296, metadata !DIExpression()), !dbg !497
%465 = insertelement <4 x i32> poison, i32 %asmresult4.i917, i64 0, !dbg !505
%shuffle = shufflevector <4 x i32> %465, <4 x i32> poison, <4 x i32> zeroinitializer, !dbg !505
%466 = and <4 x i32> %shuffle, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !505
%467 = xor <4 x i32> %466, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !506
%468 = icmp eq <4 x i32> %467, zeroinitializer, !dbg !506
%469 = icmp eq <4 x i32> %466, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !506
%470 = extractelement <4 x i1> %469, i64 3, !dbg !507
%frombool594 = zext i1 %470 to i8, !dbg !507
br i1 false, label %471, label %472, !dbg !507, !prof !301
471: ; preds = %461
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !507
unreachable, !dbg !507
472: ; preds = %461
%473 = ptrtoint i8* %ace to i64, !dbg !507
%474 = xor i64 %473, 87960930222080, !dbg !507
%475 = inttoptr i64 %474 to i8*, !dbg !507
store i8 0, i8* %475, align 1, !dbg !507
store i8 %frombool594, i8* %ace, align 1, !dbg !507
%476 = extractelement <4 x i1> %469, i64 2, !dbg !508
%frombool599 = zext i1 %476 to i8, !dbg !508
br i1 false, label %477, label %478, !dbg !508, !prof !301
477: ; preds = %472
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !508
unreachable, !dbg !508
478: ; preds = %472
%479 = ptrtoint i8* %ace2 to i64, !dbg !508
%480 = xor i64 %479, 87960930222080, !dbg !508
%481 = inttoptr i64 %480 to i8*, !dbg !508
store i8 0, i8* %481, align 1, !dbg !508
store i8 %frombool599, i8* %ace2, align 1, !dbg !508
%482 = extractelement <4 x i1> %469, i64 1, !dbg !509
%frombool604 = zext i1 %482 to i8, !dbg !509
br i1 false, label %483, label %484, !dbg !509, !prof !301
483: ; preds = %478
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !509
unreachable, !dbg !509
484: ; preds = %478
%485 = ptrtoint i8* %phe to i64, !dbg !509
%486 = xor i64 %485, 87960930222080, !dbg !509
%487 = inttoptr i64 %486 to i8*, !dbg !509
store i8 0, i8* %487, align 1, !dbg !509
store i8 %frombool604, i8* %phe, align 1, !dbg !509
%pmm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 72, !dbg !510
%488 = extractelement <4 x i1> %469, i64 0, !dbg !511
%frombool609 = zext i1 %488 to i8, !dbg !511
br i1 false, label %489, label %490, !dbg !511, !prof !301
489: ; preds = %484
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !511
unreachable, !dbg !511
490: ; preds = %484
%491 = ptrtoint i8* %pmm to i64, !dbg !511
%492 = xor i64 %491, 87960930222080, !dbg !511
%493 = inttoptr i64 %492 to i8*, !dbg !511
store i8 0, i8* %493, align 1, !dbg !511
store i8 %frombool609, i8* %pmm, align 1, !dbg !511
br label %if.end611, !dbg !512
if.end611: ; preds = %456, %490, %452
%lwp = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 73, !dbg !513
%494 = lshr i64 %1, 15, !dbg !514
%and613856 = lshr i64 %extended_info.coerce1, 15, !dbg !514
%_msprop1159 = trunc i64 %494 to i8, !dbg !514
%495 = trunc i64 %and613856 to i8, !dbg !514
%496 = and i8 %_msprop1159, 1, !dbg !514
%497 = and i8 %495, 1, !dbg !514
br i1 false, label %498, label %499, !dbg !514, !prof !301
498: ; preds = %if.end611
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !514
unreachable, !dbg !514
499: ; preds = %if.end611
%500 = ptrtoint i8* %lwp to i64, !dbg !514
%501 = xor i64 %500, 87960930222080, !dbg !514
%502 = inttoptr i64 %501 to i8*, !dbg !514
store i8 %496, i8* %502, align 1, !dbg !514
store i8 %497, i8* %lwp, align 1, !dbg !514
%503 = lshr i32 %_msprop940, 27, !dbg !515
%and619 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 27, !dbg !515
%_msprop1160 = trunc i32 %503 to i8, !dbg !515
%504 = trunc i32 %and619 to i8, !dbg !515
%505 = and i8 %_msprop1160, 1, !dbg !515
%506 = and i8 %504, 1, !dbg !515
br i1 false, label %507, label %508, !dbg !515, !prof !301
507: ; preds = %499
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !515
unreachable, !dbg !515
508: ; preds = %499
%509 = ptrtoint i8* %5 to i64, !dbg !515
%510 = xor i64 %509, 87960930222080, !dbg !515
%511 = inttoptr i64 %510 to i8*, !dbg !515
store i8 %505, i8* %511, align 1, !dbg !515
store i8 %506, i8* %5, align 1, !dbg !515
%rdpid = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 1, !dbg !516
%and625857 = lshr i64 %structured_feature_info0.sroa.25.0932, 22, !dbg !517
%512 = trunc i64 %and625857 to i8, !dbg !517
%513 = and i8 %512, 1, !dbg !517
br i1 false, label %514, label %515, !dbg !517, !prof !301
514: ; preds = %508
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !517
unreachable, !dbg !517
515: ; preds = %508
%516 = ptrtoint i8* %rdpid to i64, !dbg !517
%517 = xor i64 %516, 87960930222080, !dbg !517
%518 = inttoptr i64 %517 to i8*, !dbg !517
store i8 0, i8* %518, align 1, !dbg !517
store i8 %513, i8* %rdpid, align 1, !dbg !517
ret void, !dbg !518
}
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
declare void @__msan_init()
; Function Attrs: nounwind
define internal void @msan.module_ctor() #3 {
call void @__msan_init()
ret void
}
declare i8* @__msan_memset(i8*, i32, i64)
declare void @__msan_warning_with_origin_noreturn(i32)
attributes #0 = { nounwind optsize sanitize_memory "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="x86-64-v3" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #2 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #3 = { nounwind "frame-pointer"="all" }
attributes #4 = { nomerge }
attributes #5 = { nounwind }
attributes #6 = { nounwind readnone }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!160, !161, !162, !163, !164}
!llvm.ident = !{!165}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !154, nameTableKind: None)
!1 = !DIFile(filename: "cpuinfo/src/x86/isa.c", directory: "workspace", checksumkind: CSK_MD5, checksum: "1f066767a48d692a7df3bd0b30681f63")
!2 = !{!3, !37}
!3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_vendor", file: !4, line: 137, baseType: !5, size: 32, elements: !6)
!4 = !DIFile(filename: "cpuinfo/include/cpuinfo.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "b2d9902226e7212a1e7a8aecca87c8f4")
!5 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!6 = !{!7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36}
!7 = !DIEnumerator(name: "cpuinfo_vendor_unknown", value: 0)
!8 = !DIEnumerator(name: "cpuinfo_vendor_intel", value: 1)
!9 = !DIEnumerator(name: "cpuinfo_vendor_amd", value: 2)
!10 = !DIEnumerator(name: "cpuinfo_vendor_arm", value: 3)
!11 = !DIEnumerator(name: "cpuinfo_vendor_qualcomm", value: 4)
!12 = !DIEnumerator(name: "cpuinfo_vendor_apple", value: 5)
!13 = !DIEnumerator(name: "cpuinfo_vendor_samsung", value: 6)
!14 = !DIEnumerator(name: "cpuinfo_vendor_nvidia", value: 7)
!15 = !DIEnumerator(name: "cpuinfo_vendor_mips", value: 8)
!16 = !DIEnumerator(name: "cpuinfo_vendor_ibm", value: 9)
!17 = !DIEnumerator(name: "cpuinfo_vendor_ingenic", value: 10)
!18 = !DIEnumerator(name: "cpuinfo_vendor_via", value: 11)
!19 = !DIEnumerator(name: "cpuinfo_vendor_cavium", value: 12)
!20 = !DIEnumerator(name: "cpuinfo_vendor_broadcom", value: 13)
!21 = !DIEnumerator(name: "cpuinfo_vendor_apm", value: 14)
!22 = !DIEnumerator(name: "cpuinfo_vendor_huawei", value: 15)
!23 = !DIEnumerator(name: "cpuinfo_vendor_hygon", value: 16)
!24 = !DIEnumerator(name: "cpuinfo_vendor_texas_instruments", value: 30)
!25 = !DIEnumerator(name: "cpuinfo_vendor_marvell", value: 31)
!26 = !DIEnumerator(name: "cpuinfo_vendor_rdc", value: 32)
!27 = !DIEnumerator(name: "cpuinfo_vendor_dmp", value: 33)
!28 = !DIEnumerator(name: "cpuinfo_vendor_motorola", value: 34)
!29 = !DIEnumerator(name: "cpuinfo_vendor_transmeta", value: 50)
!30 = !DIEnumerator(name: "cpuinfo_vendor_cyrix", value: 51)
!31 = !DIEnumerator(name: "cpuinfo_vendor_rise", value: 52)
!32 = !DIEnumerator(name: "cpuinfo_vendor_nsc", value: 53)
!33 = !DIEnumerator(name: "cpuinfo_vendor_sis", value: 54)
!34 = !DIEnumerator(name: "cpuinfo_vendor_nexgen", value: 55)
!35 = !DIEnumerator(name: "cpuinfo_vendor_umc", value: 56)
!36 = !DIEnumerator(name: "cpuinfo_vendor_dec", value: 57)
!37 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_uarch", file: !4, line: 266, baseType: !5, size: 32, elements: !38)
!38 = !{!39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79, !80, !81, !82, !83, !84, !85, !86, !87, !88, !89, !90, !91, !92, !93, !94, !95, !96, !97, !98, !99, !100, !101, !102, !103, !104, !105, !106, !107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !117, !118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131, !132, !133, !134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144, !145, !146, !147, !148, !149, !150, !151, !152, !153}
!39 = !DIEnumerator(name: "cpuinfo_uarch_unknown", value: 0)
!40 = !DIEnumerator(name: "cpuinfo_uarch_p5", value: 1048832)
!41 = !DIEnumerator(name: "cpuinfo_uarch_quark", value: 1048833)
!42 = !DIEnumerator(name: "cpuinfo_uarch_p6", value: 1049088)
!43 = !DIEnumerator(name: "cpuinfo_uarch_dothan", value: 1049089)
!44 = !DIEnumerator(name: "cpuinfo_uarch_yonah", value: 1049090)
!45 = !DIEnumerator(name: "cpuinfo_uarch_conroe", value: 1049091)
!46 = !DIEnumerator(name: "cpuinfo_uarch_penryn", value: 1049092)
!47 = !DIEnumerator(name: "cpuinfo_uarch_nehalem", value: 1049093)
!48 = !DIEnumerator(name: "cpuinfo_uarch_sandy_bridge", value: 1049094)
!49 = !DIEnumerator(name: "cpuinfo_uarch_ivy_bridge", value: 1049095)
!50 = !DIEnumerator(name: "cpuinfo_uarch_haswell", value: 1049096)
!51 = !DIEnumerator(name: "cpuinfo_uarch_broadwell", value: 1049097)
!52 = !DIEnumerator(name: "cpuinfo_uarch_sky_lake", value: 1049098)
!53 = !DIEnumerator(name: "cpuinfo_uarch_kaby_lake", value: 1049098)
!54 = !DIEnumerator(name: "cpuinfo_uarch_palm_cove", value: 1049099)
!55 = !DIEnumerator(name: "cpuinfo_uarch_sunny_cove", value: 1049100)
!56 = !DIEnumerator(name: "cpuinfo_uarch_willamette", value: 1049344)
!57 = !DIEnumerator(name: "cpuinfo_uarch_prescott", value: 1049345)
!58 = !DIEnumerator(name: "cpuinfo_uarch_bonnell", value: 1049600)
!59 = !DIEnumerator(name: "cpuinfo_uarch_saltwell", value: 1049601)
!60 = !DIEnumerator(name: "cpuinfo_uarch_silvermont", value: 1049602)
!61 = !DIEnumerator(name: "cpuinfo_uarch_airmont", value: 1049603)
!62 = !DIEnumerator(name: "cpuinfo_uarch_goldmont", value: 1049604)
!63 = !DIEnumerator(name: "cpuinfo_uarch_goldmont_plus", value: 1049605)
!64 = !DIEnumerator(name: "cpuinfo_uarch_knights_ferry", value: 1049856)
!65 = !DIEnumerator(name: "cpuinfo_uarch_knights_corner", value: 1049857)
!66 = !DIEnumerator(name: "cpuinfo_uarch_knights_landing", value: 1049858)
!67 = !DIEnumerator(name: "cpuinfo_uarch_knights_hill", value: 1049859)
!68 = !DIEnumerator(name: "cpuinfo_uarch_knights_mill", value: 1049860)
!69 = !DIEnumerator(name: "cpuinfo_uarch_xscale", value: 1050112)
!70 = !DIEnumerator(name: "cpuinfo_uarch_k5", value: 2097408)
!71 = !DIEnumerator(name: "cpuinfo_uarch_k6", value: 2097409)
!72 = !DIEnumerator(name: "cpuinfo_uarch_k7", value: 2097410)
!73 = !DIEnumerator(name: "cpuinfo_uarch_k8", value: 2097411)
!74 = !DIEnumerator(name: "cpuinfo_uarch_k10", value: 2097412)
!75 = !DIEnumerator(name: "cpuinfo_uarch_bulldozer", value: 2097413)
!76 = !DIEnumerator(name: "cpuinfo_uarch_piledriver", value: 2097414)
!77 = !DIEnumerator(name: "cpuinfo_uarch_steamroller", value: 2097415)
!78 = !DIEnumerator(name: "cpuinfo_uarch_excavator", value: 2097416)
!79 = !DIEnumerator(name: "cpuinfo_uarch_zen", value: 2097417)
!80 = !DIEnumerator(name: "cpuinfo_uarch_zen2", value: 2097418)
!81 = !DIEnumerator(name: "cpuinfo_uarch_zen3", value: 2097419)
!82 = !DIEnumerator(name: "cpuinfo_uarch_geode", value: 2097664)
!83 = !DIEnumerator(name: "cpuinfo_uarch_bobcat", value: 2097665)
!84 = !DIEnumerator(name: "cpuinfo_uarch_jaguar", value: 2097666)
!85 = !DIEnumerator(name: "cpuinfo_uarch_puma", value: 2097667)
!86 = !DIEnumerator(name: "cpuinfo_uarch_arm7", value: 3145984)
!87 = !DIEnumerator(name: "cpuinfo_uarch_arm9", value: 3145985)
!88 = !DIEnumerator(name: "cpuinfo_uarch_arm11", value: 3145986)
!89 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a5", value: 3146245)
!90 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a7", value: 3146247)
!91 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a8", value: 3146248)
!92 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a9", value: 3146249)
!93 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a12", value: 3146258)
!94 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a15", value: 3146261)
!95 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a17", value: 3146263)
!96 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a32", value: 3146546)
!97 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a35", value: 3146549)
!98 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a53", value: 3146579)
!99 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55r0", value: 3146580)
!100 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55", value: 3146581)
!101 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a57", value: 3146583)
!102 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a65", value: 3146597)
!103 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a72", value: 3146610)
!104 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a73", value: 3146611)
!105 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a75", value: 3146613)
!106 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76", value: 3146614)
!107 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a77", value: 3146615)
!108 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a78", value: 3146616)
!109 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_n1", value: 3146752)
!110 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_e1", value: 3146753)
!111 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x1", value: 3147008)
!112 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x2", value: 3147010)
!113 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a510", value: 3147089)
!114 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a710", value: 3147121)
!115 = !DIEnumerator(name: "cpuinfo_uarch_scorpion", value: 4194560)
!116 = !DIEnumerator(name: "cpuinfo_uarch_krait", value: 4194561)
!117 = !DIEnumerator(name: "cpuinfo_uarch_kryo", value: 4194562)
!118 = !DIEnumerator(name: "cpuinfo_uarch_falkor", value: 4194563)
!119 = !DIEnumerator(name: "cpuinfo_uarch_saphira", value: 4194564)
!120 = !DIEnumerator(name: "cpuinfo_uarch_denver", value: 5243136)
!121 = !DIEnumerator(name: "cpuinfo_uarch_denver2", value: 5243137)
!122 = !DIEnumerator(name: "cpuinfo_uarch_carmel", value: 5243138)
!123 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m1", value: 6291712)
!124 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m2", value: 6291713)
!125 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m3", value: 6291714)
!126 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m4", value: 6291715)
!127 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m5", value: 6291716)
!128 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76ae", value: 3146614)
!129 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m1", value: 6291712)
!130 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m2", value: 6291713)
!131 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m3", value: 6291714)
!132 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m4", value: 6291715)
!133 = !DIEnumerator(name: "cpuinfo_uarch_swift", value: 7340288)
!134 = !DIEnumerator(name: "cpuinfo_uarch_cyclone", value: 7340289)
!135 = !DIEnumerator(name: "cpuinfo_uarch_typhoon", value: 7340290)
!136 = !DIEnumerator(name: "cpuinfo_uarch_twister", value: 7340291)
!137 = !DIEnumerator(name: "cpuinfo_uarch_hurricane", value: 7340292)
!138 = !DIEnumerator(name: "cpuinfo_uarch_monsoon", value: 7340293)
!139 = !DIEnumerator(name: "cpuinfo_uarch_mistral", value: 7340294)
!140 = !DIEnumerator(name: "cpuinfo_uarch_vortex", value: 7340295)
!141 = !DIEnumerator(name: "cpuinfo_uarch_tempest", value: 7340296)
!142 = !DIEnumerator(name: "cpuinfo_uarch_lightning", value: 7340297)
!143 = !DIEnumerator(name: "cpuinfo_uarch_thunder", value: 7340298)
!144 = !DIEnumerator(name: "cpuinfo_uarch_firestorm", value: 7340299)
!145 = !DIEnumerator(name: "cpuinfo_uarch_icestorm", value: 7340300)
!146 = !DIEnumerator(name: "cpuinfo_uarch_thunderx", value: 8388864)
!147 = !DIEnumerator(name: "cpuinfo_uarch_thunderx2", value: 8389120)
!148 = !DIEnumerator(name: "cpuinfo_uarch_pj4", value: 9437440)
!149 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b15", value: 10486016)
!150 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b53", value: 10486017)
!151 = !DIEnumerator(name: "cpuinfo_uarch_xgene", value: 11534592)
!152 = !DIEnumerator(name: "cpuinfo_uarch_dhyana", value: 16777472)
!153 = !DIEnumerator(name: "cpuinfo_uarch_taishan_v110", value: 12583168)
!154 = !{!155}
!155 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint64_t", file: !156, line: 27, baseType: !157)
!156 = !DIFile(filename: "glibc/include/bits/stdint-uintn.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "9754ebe022edbe8d7928fa709e442f0d")
!157 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint64_t", file: !158, line: 44, baseType: !159)
!158 = !DIFile(filename: "glibc/include/bits/types.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "25679ba19d359e314e48661b21f5aa1f")
!159 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned)
!160 = !{i32 7, !"Dwarf Version", i32 5}
!161 = !{i32 2, !"Debug Info Version", i32 3}
!162 = !{i32 1, !"wchar_size", i32 4}
!163 = !{i32 7, !"PIC Level", i32 2}
!164 = !{i32 7, !"frame-pointer", i32 2}
!165 = !{!"clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab"}
!166 = distinct !DISubprogram(name: "cpuinfo_x86_detect_isa", scope: !1, file: !1, line: 38, type: !167, scopeLine: 42, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !256)
!167 = !DISubroutineType(types: !168)
!168 = !{!169, !246, !246, !251, !251, !3, !37}
!169 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuinfo_x86_isa", file: !4, line: 670, size: 592, elements: !170)
!170 = !{!171, !173, !174, !175, !176, !177, !178, !179, !180, !181, !182, !183, !184, !185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199, !200, !201, !202, !203, !204, !205, !206, !207, !208, !209, !210, !211, !212, !213, !214, !215, !216, !217, !218, !219, !220, !221, !222, !223, !224, !225, !226, !227, !228, !229, !230, !231, !232, !233, !234, !235, !236, !237, !238, !239, !240, !241, !242, !243, !244, !245}
!171 = !DIDerivedType(tag: DW_TAG_member, name: "rdtscp", scope: !169, file: !4, line: 674, baseType: !172, size: 8)
!172 = !DIBasicType(name: "_Bool", size: 8, encoding: DW_ATE_boolean)
!173 = !DIDerivedType(tag: DW_TAG_member, name: "rdpid", scope: !169, file: !4, line: 675, baseType: !172, size: 8, offset: 8)
!174 = !DIDerivedType(tag: DW_TAG_member, name: "sysenter", scope: !169, file: !4, line: 676, baseType: !172, size: 8, offset: 16)
!175 = !DIDerivedType(tag: DW_TAG_member, name: "msr", scope: !169, file: !4, line: 680, baseType: !172, size: 8, offset: 24)
!176 = !DIDerivedType(tag: DW_TAG_member, name: "clzero", scope: !169, file: !4, line: 681, baseType: !172, size: 8, offset: 32)
!177 = !DIDerivedType(tag: DW_TAG_member, name: "clflush", scope: !169, file: !4, line: 682, baseType: !172, size: 8, offset: 40)
!178 = !DIDerivedType(tag: DW_TAG_member, name: "clflushopt", scope: !169, file: !4, line: 683, baseType: !172, size: 8, offset: 48)
!179 = !DIDerivedType(tag: DW_TAG_member, name: "mwait", scope: !169, file: !4, line: 684, baseType: !172, size: 8, offset: 56)
!180 = !DIDerivedType(tag: DW_TAG_member, name: "mwaitx", scope: !169, file: !4, line: 685, baseType: !172, size: 8, offset: 64)
!181 = !DIDerivedType(tag: DW_TAG_member, name: "fxsave", scope: !169, file: !4, line: 689, baseType: !172, size: 8, offset: 72)
!182 = !DIDerivedType(tag: DW_TAG_member, name: "xsave", scope: !169, file: !4, line: 690, baseType: !172, size: 8, offset: 80)
!183 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now", scope: !169, file: !4, line: 696, baseType: !172, size: 8, offset: 88)
!184 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now_plus", scope: !169, file: !4, line: 697, baseType: !172, size: 8, offset: 96)
!185 = !DIDerivedType(tag: DW_TAG_member, name: "prefetch", scope: !169, file: !4, line: 701, baseType: !172, size: 8, offset: 104)
!186 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchw", scope: !169, file: !4, line: 702, baseType: !172, size: 8, offset: 112)
!187 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchwt1", scope: !169, file: !4, line: 703, baseType: !172, size: 8, offset: 120)
!188 = !DIDerivedType(tag: DW_TAG_member, name: "sse3", scope: !169, file: !4, line: 709, baseType: !172, size: 8, offset: 128)
!189 = !DIDerivedType(tag: DW_TAG_member, name: "ssse3", scope: !169, file: !4, line: 710, baseType: !172, size: 8, offset: 136)
!190 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_1", scope: !169, file: !4, line: 711, baseType: !172, size: 8, offset: 144)
!191 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_2", scope: !169, file: !4, line: 712, baseType: !172, size: 8, offset: 152)
!192 = !DIDerivedType(tag: DW_TAG_member, name: "sse4a", scope: !169, file: !4, line: 713, baseType: !172, size: 8, offset: 160)
!193 = !DIDerivedType(tag: DW_TAG_member, name: "misaligned_sse", scope: !169, file: !4, line: 714, baseType: !172, size: 8, offset: 168)
!194 = !DIDerivedType(tag: DW_TAG_member, name: "avx", scope: !169, file: !4, line: 715, baseType: !172, size: 8, offset: 176)
!195 = !DIDerivedType(tag: DW_TAG_member, name: "fma3", scope: !169, file: !4, line: 716, baseType: !172, size: 8, offset: 184)
!196 = !DIDerivedType(tag: DW_TAG_member, name: "fma4", scope: !169, file: !4, line: 717, baseType: !172, size: 8, offset: 192)
!197 = !DIDerivedType(tag: DW_TAG_member, name: "xop", scope: !169, file: !4, line: 718, baseType: !172, size: 8, offset: 200)
!198 = !DIDerivedType(tag: DW_TAG_member, name: "f16c", scope: !169, file: !4, line: 719, baseType: !172, size: 8, offset: 208)
!199 = !DIDerivedType(tag: DW_TAG_member, name: "avx2", scope: !169, file: !4, line: 720, baseType: !172, size: 8, offset: 216)
!200 = !DIDerivedType(tag: DW_TAG_member, name: "avx512f", scope: !169, file: !4, line: 721, baseType: !172, size: 8, offset: 224)
!201 = !DIDerivedType(tag: DW_TAG_member, name: "avx512pf", scope: !169, file: !4, line: 722, baseType: !172, size: 8, offset: 232)
!202 = !DIDerivedType(tag: DW_TAG_member, name: "avx512er", scope: !169, file: !4, line: 723, baseType: !172, size: 8, offset: 240)
!203 = !DIDerivedType(tag: DW_TAG_member, name: "avx512cd", scope: !169, file: !4, line: 724, baseType: !172, size: 8, offset: 248)
!204 = !DIDerivedType(tag: DW_TAG_member, name: "avx512dq", scope: !169, file: !4, line: 725, baseType: !172, size: 8, offset: 256)
!205 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bw", scope: !169, file: !4, line: 726, baseType: !172, size: 8, offset: 264)
!206 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vl", scope: !169, file: !4, line: 727, baseType: !172, size: 8, offset: 272)
!207 = !DIDerivedType(tag: DW_TAG_member, name: "avx512ifma", scope: !169, file: !4, line: 728, baseType: !172, size: 8, offset: 280)
!208 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi", scope: !169, file: !4, line: 729, baseType: !172, size: 8, offset: 288)
!209 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi2", scope: !169, file: !4, line: 730, baseType: !172, size: 8, offset: 296)
!210 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bitalg", scope: !169, file: !4, line: 731, baseType: !172, size: 8, offset: 304)
!211 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vpopcntdq", scope: !169, file: !4, line: 732, baseType: !172, size: 8, offset: 312)
!212 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vnni", scope: !169, file: !4, line: 733, baseType: !172, size: 8, offset: 320)
!213 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bf16", scope: !169, file: !4, line: 734, baseType: !172, size: 8, offset: 328)
!214 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vp2intersect", scope: !169, file: !4, line: 735, baseType: !172, size: 8, offset: 336)
!215 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4vnniw", scope: !169, file: !4, line: 736, baseType: !172, size: 8, offset: 344)
!216 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4fmaps", scope: !169, file: !4, line: 737, baseType: !172, size: 8, offset: 352)
!217 = !DIDerivedType(tag: DW_TAG_member, name: "hle", scope: !169, file: !4, line: 738, baseType: !172, size: 8, offset: 360)
!218 = !DIDerivedType(tag: DW_TAG_member, name: "rtm", scope: !169, file: !4, line: 739, baseType: !172, size: 8, offset: 368)
!219 = !DIDerivedType(tag: DW_TAG_member, name: "xtest", scope: !169, file: !4, line: 740, baseType: !172, size: 8, offset: 376)
!220 = !DIDerivedType(tag: DW_TAG_member, name: "mpx", scope: !169, file: !4, line: 741, baseType: !172, size: 8, offset: 384)
!221 = !DIDerivedType(tag: DW_TAG_member, name: "cmpxchg16b", scope: !169, file: !4, line: 746, baseType: !172, size: 8, offset: 392)
!222 = !DIDerivedType(tag: DW_TAG_member, name: "clwb", scope: !169, file: !4, line: 747, baseType: !172, size: 8, offset: 400)
!223 = !DIDerivedType(tag: DW_TAG_member, name: "movbe", scope: !169, file: !4, line: 748, baseType: !172, size: 8, offset: 408)
!224 = !DIDerivedType(tag: DW_TAG_member, name: "lahf_sahf", scope: !169, file: !4, line: 750, baseType: !172, size: 8, offset: 416)
!225 = !DIDerivedType(tag: DW_TAG_member, name: "fs_gs_base", scope: !169, file: !4, line: 752, baseType: !172, size: 8, offset: 424)
!226 = !DIDerivedType(tag: DW_TAG_member, name: "lzcnt", scope: !169, file: !4, line: 753, baseType: !172, size: 8, offset: 432)
!227 = !DIDerivedType(tag: DW_TAG_member, name: "popcnt", scope: !169, file: !4, line: 754, baseType: !172, size: 8, offset: 440)
!228 = !DIDerivedType(tag: DW_TAG_member, name: "tbm", scope: !169, file: !4, line: 755, baseType: !172, size: 8, offset: 448)
!229 = !DIDerivedType(tag: DW_TAG_member, name: "bmi", scope: !169, file: !4, line: 756, baseType: !172, size: 8, offset: 456)
!230 = !DIDerivedType(tag: DW_TAG_member, name: "bmi2", scope: !169, file: !4, line: 757, baseType: !172, size: 8, offset: 464)
!231 = !DIDerivedType(tag: DW_TAG_member, name: "adx", scope: !169, file: !4, line: 758, baseType: !172, size: 8, offset: 472)
!232 = !DIDerivedType(tag: DW_TAG_member, name: "aes", scope: !169, file: !4, line: 759, baseType: !172, size: 8, offset: 480)
!233 = !DIDerivedType(tag: DW_TAG_member, name: "vaes", scope: !169, file: !4, line: 760, baseType: !172, size: 8, offset: 488)
!234 = !DIDerivedType(tag: DW_TAG_member, name: "pclmulqdq", scope: !169, file: !4, line: 761, baseType: !172, size: 8, offset: 496)
!235 = !DIDerivedType(tag: DW_TAG_member, name: "vpclmulqdq", scope: !169, file: !4, line: 762, baseType: !172, size: 8, offset: 504)
!236 = !DIDerivedType(tag: DW_TAG_member, name: "gfni", scope: !169, file: !4, line: 763, baseType: !172, size: 8, offset: 512)
!237 = !DIDerivedType(tag: DW_TAG_member, name: "rdrand", scope: !169, file: !4, line: 764, baseType: !172, size: 8, offset: 520)
!238 = !DIDerivedType(tag: DW_TAG_member, name: "rdseed", scope: !169, file: !4, line: 765, baseType: !172, size: 8, offset: 528)
!239 = !DIDerivedType(tag: DW_TAG_member, name: "sha", scope: !169, file: !4, line: 766, baseType: !172, size: 8, offset: 536)
!240 = !DIDerivedType(tag: DW_TAG_member, name: "rng", scope: !169, file: !4, line: 767, baseType: !172, size: 8, offset: 544)
!241 = !DIDerivedType(tag: DW_TAG_member, name: "ace", scope: !169, file: !4, line: 768, baseType: !172, size: 8, offset: 552)
!242 = !DIDerivedType(tag: DW_TAG_member, name: "ace2", scope: !169, file: !4, line: 769, baseType: !172, size: 8, offset: 560)
!243 = !DIDerivedType(tag: DW_TAG_member, name: "phe", scope: !169, file: !4, line: 770, baseType: !172, size: 8, offset: 568)
!244 = !DIDerivedType(tag: DW_TAG_member, name: "pmm", scope: !169, file: !4, line: 771, baseType: !172, size: 8, offset: 576)
!245 = !DIDerivedType(tag: DW_TAG_member, name: "lwp", scope: !169, file: !4, line: 772, baseType: !172, size: 8, offset: 584)
!246 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !247)
!247 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuid_regs", file: !248, line: 10, size: 128, elements: !249)
!248 = !DIFile(filename: "cpuinfo/src/x86/api.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "27c8ee589f06b55198de5debd23b68da")
!249 = !{!250, !253, !254, !255}
!250 = !DIDerivedType(tag: DW_TAG_member, name: "eax", scope: !247, file: !248, line: 11, baseType: !251, size: 32)
!251 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !156, line: 26, baseType: !252)
!252 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !158, line: 41, baseType: !5)
!253 = !DIDerivedType(tag: DW_TAG_member, name: "ebx", scope: !247, file: !248, line: 12, baseType: !251, size: 32, offset: 32)
!254 = !DIDerivedType(tag: DW_TAG_member, name: "ecx", scope: !247, file: !248, line: 13, baseType: !251, size: 32, offset: 64)
!255 = !DIDerivedType(tag: DW_TAG_member, name: "edx", scope: !247, file: !248, line: 14, baseType: !251, size: 32, offset: 96)
!256 = !{!257, !258, !259, !260, !261, !262, !263, !264, !265, !266, !268, !269, !270, !271, !272, !273, !276, !279, !281, !282, !283, !284, !287, !288, !289, !292, !293, !294, !295, !296}
!257 = !DILocalVariable(name: "basic_info", arg: 1, scope: !166, file: !1, line: 39, type: !246)
!258 = !DILocalVariable(name: "extended_info", arg: 2, scope: !166, file: !1, line: 39, type: !246)
!259 = !DILocalVariable(name: "max_base_index", arg: 3, scope: !166, file: !1, line: 40, type: !251)
!260 = !DILocalVariable(name: "max_extended_index", arg: 4, scope: !166, file: !1, line: 40, type: !251)
!261 = !DILocalVariable(name: "vendor", arg: 5, scope: !166, file: !1, line: 41, type: !3)
!262 = !DILocalVariable(name: "uarch", arg: 6, scope: !166, file: !1, line: 41, type: !37)
!263 = !DILocalVariable(name: "isa", scope: !166, file: !1, line: 43, type: !169)
!264 = !DILocalVariable(name: "structured_feature_info0", scope: !166, file: !1, line: 45, type: !246)
!265 = !DILocalVariable(name: "structured_feature_info1", scope: !166, file: !1, line: 47, type: !246)
!266 = !DILocalVariable(name: "processor_capacity_info_index", scope: !166, file: !1, line: 50, type: !267)
!267 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !251)
!268 = !DILocalVariable(name: "processor_capacity_info", scope: !166, file: !1, line: 51, type: !246)
!269 = !DILocalVariable(name: "avx_regs", scope: !166, file: !1, line: 55, type: !172)
!270 = !DILocalVariable(name: "avx512_regs", scope: !166, file: !1, line: 55, type: !172)
!271 = !DILocalVariable(name: "mpx_regs", scope: !166, file: !1, line: 55, type: !172)
!272 = !DILocalVariable(name: "osxsave_mask", scope: !166, file: !1, line: 61, type: !267)
!273 = !DILocalVariable(name: "xcr0_valid_bits", scope: !274, file: !1, line: 63, type: !155)
!274 = distinct !DILexicalBlock(scope: !275, file: !1, line: 62, column: 55)
!275 = distinct !DILexicalBlock(scope: !166, file: !1, line: 62, column: 6)
!276 = !DILocalVariable(name: "regs", scope: !277, file: !1, line: 65, type: !246)
!277 = distinct !DILexicalBlock(scope: !278, file: !1, line: 64, column: 30)
!278 = distinct !DILexicalBlock(scope: !274, file: !1, line: 64, column: 7)
!279 = !DILocalVariable(name: "xfeature_enabled_mask", scope: !274, file: !1, line: 69, type: !280)
!280 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !155)
!281 = !DILocalVariable(name: "avx_regs_mask", scope: !274, file: !1, line: 76, type: !280)
!282 = !DILocalVariable(name: "avx512_regs_mask", scope: !274, file: !1, line: 89, type: !280)
!283 = !DILocalVariable(name: "mpx_regs_mask", scope: !274, file: !1, line: 99, type: !280)
!284 = !DILocalVariable(name: "padlock_meta_info", scope: !285, file: !1, line: 657, type: !246)
!285 = distinct !DILexicalBlock(scope: !286, file: !1, line: 656, column: 36)
!286 = distinct !DILexicalBlock(scope: !166, file: !1, line: 656, column: 6)
!287 = !DILocalVariable(name: "max_padlock_index", scope: !285, file: !1, line: 658, type: !267)
!288 = !DILocalVariable(name: "padlock_info_index", scope: !285, file: !1, line: 659, type: !267)
!289 = !DILocalVariable(name: "padlock_info", scope: !290, file: !1, line: 661, type: !246)
!290 = distinct !DILexicalBlock(scope: !291, file: !1, line: 660, column: 48)
!291 = distinct !DILexicalBlock(scope: !285, file: !1, line: 660, column: 7)
!292 = !DILocalVariable(name: "padlock_rng_mask", scope: !290, file: !1, line: 668, type: !267)
!293 = !DILocalVariable(name: "padlock_ace_mask", scope: !290, file: !1, line: 676, type: !267)
!294 = !DILocalVariable(name: "padlock_ace2_mask", scope: !290, file: !1, line: 684, type: !267)
!295 = !DILocalVariable(name: "padlock_phe_mask", scope: !290, file: !1, line: 692, type: !267)
!296 = !DILocalVariable(name: "padlock_pmm_mask", scope: !290, file: !1, line: 700, type: !267)
!297 = !DILocation(line: 0, scope: !166)
!298 = !DILocation(line: 43, column: 25, scope: !166)
!299 = !DILocation(line: 46, column: 19, scope: !166)
!300 = !DILocation(line: 46, column: 3, scope: !166)
!301 = !{!"branch_weights", i32 1, i32 1000}
!302 = !DILocalVariable(name: "eax", arg: 1, scope: !303, file: !304, line: 43, type: !251)
!303 = distinct !DISubprogram(name: "cpuidex", scope: !304, file: !304, line: 43, type: !305, scopeLine: 43, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !307)
!304 = !DIFile(filename: "cpuinfo/src/x86/cpuid.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "f9e451aa7a48009ba003a034c14f0ac3")
!305 = !DISubroutineType(types: !306)
!306 = !{!247, !251, !251}
!307 = !{!302, !308, !309}
!308 = !DILocalVariable(name: "ecx", arg: 2, scope: !303, file: !304, line: 43, type: !251)
!309 = !DILocalVariable(name: "regs", scope: !303, file: !304, line: 54, type: !247)
!310 = !DILocation(line: 0, scope: !303, inlinedAt: !311)
!311 = distinct !DILocation(line: 46, column: 27, scope: !166)
!312 = !DILocation(line: 56, column: 5, scope: !303, inlinedAt: !311)
!313 = !{i64 2147921615, i64 2147921651, i64 2147921675}
!314 = !DILocation(line: 65, column: 4, scope: !303, inlinedAt: !311)
!315 = !DILocation(line: 0, scope: !303, inlinedAt: !316)
!316 = distinct !DILocation(line: 48, column: 27, scope: !166)
!317 = !DILocation(line: 56, column: 5, scope: !303, inlinedAt: !316)
!318 = !DILocation(line: 65, column: 4, scope: !303, inlinedAt: !316)
!319 = !DILocation(line: 48, column: 3, scope: !166)
!320 = !DILocation(line: 52, column: 23, scope: !166)
!321 = !DILocation(line: 52, column: 3, scope: !166)
!322 = !DILocalVariable(name: "eax", arg: 1, scope: !323, file: !304, line: 17, type: !251)
!323 = distinct !DISubprogram(name: "cpuid", scope: !304, file: !304, line: 17, type: !324, scopeLine: 17, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !326)
!324 = !DISubroutineType(types: !325)
!325 = !{!247, !251}
!326 = !{!322, !327}
!327 = !DILocalVariable(name: "regs", scope: !323, file: !304, line: 28, type: !247)
!328 = !DILocation(line: 0, scope: !323, inlinedAt: !329)
!329 = distinct !DILocation(line: 53, column: 4, scope: !166)
!330 = !DILocation(line: 30, column: 5, scope: !323, inlinedAt: !329)
!331 = !{i64 2147921400, i64 2147921436, i64 2147921460}
!332 = !DILocation(line: 62, column: 22, scope: !275)
!333 = !DILocation(line: 62, column: 38, scope: !275)
!334 = !DILocation(line: 62, column: 6, scope: !166)
!335 = !DILocation(line: 0, scope: !274)
!336 = !DILocation(line: 64, column: 22, scope: !278)
!337 = !DILocation(line: 64, column: 7, scope: !274)
!338 = !DILocation(line: 0, scope: !303, inlinedAt: !339)
!339 = distinct !DILocation(line: 65, column: 35, scope: !277)
!340 = !DILocation(line: 56, column: 5, scope: !303, inlinedAt: !339)
!341 = !DILocation(line: 65, column: 4, scope: !303, inlinedAt: !339)
!342 = !DILocation(line: 0, scope: !277)
!343 = !DILocation(line: 67, column: 3, scope: !277)
!344 = !DILocalVariable(name: "ext_ctrl_reg", arg: 1, scope: !345, file: !304, line: 70, type: !251)
!345 = distinct !DISubprogram(name: "xgetbv", scope: !304, file: !304, line: 70, type: !346, scopeLine: 70, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !348)
!346 = !DISubroutineType(cc: DW_CC_nocall, types: !347)
!347 = !{!155, !251}
!348 = !{!344, !349, !350}
!349 = !DILocalVariable(name: "lo", scope: !345, file: !304, line: 74, type: !251)
!350 = !DILocalVariable(name: "hi", scope: !345, file: !304, line: 74, type: !251)
!351 = !DILocation(line: 0, scope: !345, inlinedAt: !352)
!352 = distinct !DILocation(line: 69, column: 42, scope: !274)
!353 = !DILocation(line: 75, column: 3, scope: !345, inlinedAt: !352)
!354 = !{i64 371123}
!355 = !DILocation(line: 76, column: 34, scope: !345, inlinedAt: !352)
!356 = !DILocation(line: 77, column: 24, scope: !357)
!357 = distinct !DILexicalBlock(scope: !274, file: !1, line: 77, column: 7)
!358 = !DILocation(line: 77, column: 41, scope: !357)
!359 = !DILocation(line: 77, column: 7, scope: !274)
!360 = !DILocation(line: 100, column: 24, scope: !361)
!361 = distinct !DILexicalBlock(scope: !274, file: !1, line: 100, column: 7)
!362 = !DILocation(line: 100, column: 41, scope: !361)
!363 = !DILocation(line: 100, column: 7, scope: !274)
!364 = !DILocation(line: 103, column: 2, scope: !274)
!365 = !DILocation(line: 118, column: 6, scope: !166)
!366 = !DILocation(line: 118, column: 15, scope: !166)
!367 = !DILocation(line: 133, column: 31, scope: !166)
!368 = !DILocation(line: 133, column: 6, scope: !166)
!369 = !DILocation(line: 133, column: 10, scope: !166)
!370 = !DILocation(line: 139, column: 6, scope: !166)
!371 = !DILocation(line: 139, column: 13, scope: !166)
!372 = !DILocation(line: 145, column: 6, scope: !166)
!373 = !DILocation(line: 145, column: 14, scope: !166)
!374 = !DILocation(line: 151, column: 47, scope: !166)
!375 = !DILocation(line: 151, column: 6, scope: !166)
!376 = !DILocation(line: 151, column: 17, scope: !166)
!377 = !DILocation(line: 157, column: 6, scope: !166)
!378 = !DILocation(line: 157, column: 12, scope: !166)
!379 = !DILocation(line: 163, column: 6, scope: !166)
!380 = !DILocation(line: 163, column: 13, scope: !166)
!381 = !DILocation(line: 178, column: 8, scope: !382)
!382 = distinct !DILexicalBlock(scope: !166, file: !1, line: 170, column: 18)
!383 = !DILocation(line: 178, column: 15, scope: !382)
!384 = !DILocation(line: 186, column: 6, scope: !166)
!385 = !DILocation(line: 186, column: 12, scope: !166)
!386 = !DILocation(line: 215, column: 6, scope: !166)
!387 = !DILocation(line: 215, column: 18, scope: !166)
!388 = !DILocation(line: 221, column: 6, scope: !166)
!389 = !DILocation(line: 221, column: 23, scope: !166)
!390 = !DILocation(line: 239, column: 2, scope: !166)
!391 = !DILocation(line: 248, column: 41, scope: !392)
!392 = distinct !DILexicalBlock(scope: !166, file: !1, line: 239, column: 18)
!393 = !DILocation(line: 248, column: 86, scope: !392)
!394 = !DILocation(line: 248, column: 65, scope: !392)
!395 = !DILocation(line: 248, column: 20, scope: !392)
!396 = !DILocation(line: 249, column: 4, scope: !392)
!397 = !DILocation(line: 255, column: 20, scope: !392)
!398 = !DILocation(line: 256, column: 4, scope: !392)
!399 = !DILocation(line: 0, scope: !392)
!400 = !DILocation(line: 267, column: 2, scope: !166)
!401 = !DILocation(line: 0, scope: !402)
!402 = distinct !DILexicalBlock(scope: !166, file: !1, line: 267, column: 18)
!403 = !DILocation(line: 282, column: 6, scope: !166)
!404 = !DILocation(line: 282, column: 18, scope: !166)
!405 = !DILocation(line: 302, column: 6, scope: !166)
!406 = !DILocation(line: 302, column: 11, scope: !166)
!407 = !DILocation(line: 334, column: 6, scope: !166)
!408 = !DILocation(line: 334, column: 12, scope: !166)
!409 = !DILocation(line: 341, column: 6, scope: !166)
!410 = !DILocation(line: 341, column: 13, scope: !166)
!411 = !DILocation(line: 347, column: 6, scope: !166)
!412 = !DILocation(line: 347, column: 13, scope: !166)
!413 = !DILocation(line: 353, column: 6, scope: !166)
!414 = !DILocation(line: 353, column: 12, scope: !166)
!415 = !DILocation(line: 359, column: 6, scope: !166)
!416 = !DILocation(line: 359, column: 21, scope: !166)
!417 = !DILocation(line: 365, column: 21, scope: !166)
!418 = !DILocation(line: 365, column: 6, scope: !166)
!419 = !DILocation(line: 365, column: 10, scope: !166)
!420 = !DILocation(line: 413, column: 29, scope: !166)
!421 = !DILocation(line: 413, column: 6, scope: !166)
!422 = !DILocation(line: 413, column: 15, scope: !166)
!423 = !DILocation(line: 419, column: 29, scope: !166)
!424 = !DILocation(line: 419, column: 6, scope: !166)
!425 = !DILocation(line: 419, column: 15, scope: !166)
!426 = !DILocation(line: 425, column: 29, scope: !166)
!427 = !DILocation(line: 425, column: 6, scope: !166)
!428 = !DILocation(line: 431, column: 29, scope: !166)
!429 = !DILocation(line: 437, column: 29, scope: !166)
!430 = !DILocation(line: 443, column: 31, scope: !166)
!431 = !DILocation(line: 449, column: 31, scope: !166)
!432 = !DILocation(line: 455, column: 32, scope: !166)
!433 = !DILocation(line: 461, column: 33, scope: !166)
!434 = !DILocation(line: 467, column: 36, scope: !166)
!435 = !DILocation(line: 425, column: 15, scope: !166)
!436 = !DILocation(line: 473, column: 31, scope: !166)
!437 = !DILocation(line: 473, column: 6, scope: !166)
!438 = !DILocation(line: 473, column: 17, scope: !166)
!439 = !DILocation(line: 479, column: 34, scope: !166)
!440 = !DILocation(line: 479, column: 6, scope: !166)
!441 = !DILocation(line: 479, column: 20, scope: !166)
!442 = !DILocation(line: 485, column: 34, scope: !166)
!443 = !DILocation(line: 485, column: 6, scope: !166)
!444 = !DILocation(line: 485, column: 20, scope: !166)
!445 = !DILocation(line: 491, column: 39, scope: !166)
!446 = !DILocation(line: 491, column: 6, scope: !166)
!447 = !DILocation(line: 491, column: 25, scope: !166)
!448 = !DILocation(line: 497, column: 31, scope: !166)
!449 = !DILocation(line: 497, column: 6, scope: !166)
!450 = !DILocation(line: 497, column: 17, scope: !166)
!451 = !DILocation(line: 503, column: 6, scope: !166)
!452 = !DILocation(line: 503, column: 10, scope: !166)
!453 = !DILocation(line: 509, column: 44, scope: !166)
!454 = !DILocation(line: 509, column: 13, scope: !166)
!455 = !DILocation(line: 509, column: 6, scope: !166)
!456 = !DILocation(line: 509, column: 10, scope: !166)
!457 = !DILocation(line: 515, column: 18, scope: !166)
!458 = !DILocation(line: 515, column: 22, scope: !166)
!459 = !DILocation(line: 515, column: 6, scope: !166)
!460 = !DILocation(line: 515, column: 12, scope: !166)
!461 = !DILocation(line: 521, column: 21, scope: !166)
!462 = !DILocation(line: 521, column: 6, scope: !166)
!463 = !DILocation(line: 521, column: 10, scope: !166)
!464 = !DILocation(line: 543, column: 6, scope: !166)
!465 = !DILocation(line: 543, column: 17, scope: !166)
!466 = !DILocation(line: 549, column: 11, scope: !166)
!467 = !DILocation(line: 555, column: 12, scope: !166)
!468 = !DILocation(line: 570, column: 17, scope: !166)
!469 = !DILocation(line: 576, column: 12, scope: !166)
!470 = !DILocation(line: 582, column: 13, scope: !166)
!471 = !DILocation(line: 588, column: 10, scope: !166)
!472 = !DILocation(line: 594, column: 10, scope: !166)
!473 = !DILocation(line: 600, column: 11, scope: !166)
!474 = !DILocation(line: 606, column: 10, scope: !166)
!475 = !DILocation(line: 612, column: 10, scope: !166)
!476 = !DILocation(line: 618, column: 11, scope: !166)
!477 = !DILocation(line: 624, column: 16, scope: !166)
!478 = !DILocation(line: 630, column: 17, scope: !166)
!479 = !DILocation(line: 636, column: 11, scope: !166)
!480 = !DILocation(line: 642, column: 6, scope: !166)
!481 = !DILocation(line: 642, column: 13, scope: !166)
!482 = !DILocation(line: 648, column: 6, scope: !166)
!483 = !DILocation(line: 648, column: 13, scope: !166)
!484 = !DILocation(line: 654, column: 6, scope: !166)
!485 = !DILocation(line: 654, column: 10, scope: !166)
!486 = !DILocation(line: 656, column: 13, scope: !286)
!487 = !DILocation(line: 656, column: 6, scope: !166)
!488 = !DILocation(line: 0, scope: !323, inlinedAt: !489)
!489 = distinct !DILocation(line: 657, column: 47, scope: !285)
!490 = !DILocation(line: 30, column: 5, scope: !323, inlinedAt: !489)
!491 = !DILocation(line: 0, scope: !285)
!492 = !DILocation(line: 660, column: 25, scope: !291)
!493 = !DILocation(line: 660, column: 7, scope: !285)
!494 = !DILocation(line: 0, scope: !323, inlinedAt: !495)
!495 = distinct !DILocation(line: 661, column: 43, scope: !290)
!496 = !DILocation(line: 30, column: 5, scope: !323, inlinedAt: !495)
!497 = !DILocation(line: 0, scope: !290)
!498 = !DILocation(line: 669, column: 32, scope: !290)
!499 = !DILocation(line: 669, column: 52, scope: !290)
!500 = !DILocation(line: 669, column: 8, scope: !290)
!501 = !DILocation(line: 669, column: 12, scope: !290)
!502 = !DILocation(line: 677, column: 8, scope: !290)
!503 = !DILocation(line: 685, column: 8, scope: !290)
!504 = !DILocation(line: 693, column: 8, scope: !290)
!505 = !DILocation(line: 701, column: 32, scope: !290)
!506 = !DILocation(line: 701, column: 52, scope: !290)
!507 = !DILocation(line: 677, column: 12, scope: !290)
!508 = !DILocation(line: 685, column: 13, scope: !290)
!509 = !DILocation(line: 693, column: 12, scope: !290)
!510 = !DILocation(line: 701, column: 8, scope: !290)
!511 = !DILocation(line: 701, column: 12, scope: !290)
!512 = !DILocation(line: 702, column: 3, scope: !290)
!513 = !DILocation(line: 709, column: 6, scope: !166)
!514 = !DILocation(line: 709, column: 10, scope: !166)
!515 = !DILocation(line: 715, column: 13, scope: !166)
!516 = !DILocation(line: 721, column: 6, scope: !166)
!517 = !DILocation(line: 721, column: 12, scope: !166)
!518 = !DILocation(line: 724, column: 1, scope: !166)
; ModuleID = 'cpuinfo/src/x86/isa.c'
source_filename = "cpuinfo/src/x86/isa.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.cpuinfo_x86_isa = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
@llvm.used = appending global [1 x i8*] [i8* bitcast (void ()* @msan.module_ctor to i8*)], section "llvm.metadata"
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 0, void ()* @msan.module_ctor, i8* null }]
@__msan_param_tls = external thread_local(initialexec) global [100 x i64]
; Function Attrs: nounwind optsize sanitize_memory
define hidden void @cpuinfo_x86_detect_isa(%struct.cpuinfo_x86_isa* noalias sret(%struct.cpuinfo_x86_isa) align 1 %agg.result, i64 %basic_info.coerce0, i64 %basic_info.coerce1, i64 %extended_info.coerce0, i64 %extended_info.coerce1, i32 noundef %max_base_index, i32 noundef %max_extended_index, i32 noundef %vendor, i32 noundef %uarch) local_unnamed_addr #0 !dbg !166 {
entry:
%0 = load i64, i64* inttoptr (i64 add (i64 ptrtoint ([100 x i64]* @__msan_param_tls to i64), i64 16) to i64*), align 8, !dbg !297
%1 = load i64, i64* inttoptr (i64 add (i64 ptrtoint ([100 x i64]* @__msan_param_tls to i64), i64 32) to i64*), align 8, !dbg !297
%2 = load i64, i64* getelementptr inbounds ([100 x i64], [100 x i64]* @__msan_param_tls, i32 0, i32 0), align 8, !dbg !297
call void @llvm.dbg.value(metadata i64 %basic_info.coerce0, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%_msprop = trunc i64 %0 to i32
%basic_info.sroa.1.8.extract.trunc = trunc i64 %basic_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %basic_info.sroa.1.8.extract.trunc, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%3 = lshr i64 %0, 32
%basic_info.sroa.18.8.extract.shift = lshr i64 %basic_info.coerce1, 32
call void @llvm.dbg.value(metadata i64 %basic_info.sroa.18.8.extract.shift, metadata !257, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i64 %extended_info.coerce0, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%_msprop939 = trunc i64 %1 to i32
%extended_info.sroa.1.8.extract.trunc = trunc i64 %extended_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.1.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%4 = lshr i64 %1, 32
%extended_info.sroa.14.8.extract.shift = lshr i64 %extended_info.coerce1, 32
%_msprop940 = trunc i64 %4 to i32
%extended_info.sroa.14.8.extract.trunc = trunc i64 %extended_info.sroa.14.8.extract.shift to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.14.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_base_index, metadata !259, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_extended_index, metadata !260, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %vendor, metadata !261, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %uarch, metadata !262, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.declare(metadata %struct.cpuinfo_x86_isa* %agg.result, metadata !263, metadata !DIExpression()), !dbg !298
%5 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 0, !dbg !298
%6 = call i8* @__msan_memset(i8* %5, i32 0, i64 74), !dbg !298
%7 = icmp ugt i32 %max_base_index, 6, !dbg !299
br i1 false, label %8, label %9, !dbg !300, !prof !301
8: ; preds = %entry
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !300
unreachable, !dbg !300
9: ; preds = %entry
br i1 %7, label %cond.true2, label %cond.end9, !dbg !300
cond.true2: ; preds = %9
call void @llvm.dbg.value(metadata i32 7, metadata !302, metadata !DIExpression()) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 0, metadata !308, metadata !DIExpression()) #5, !dbg !310
%10 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #6, !dbg !312, !srcloc !313
%asmresult3.i = extractvalue { i32, i32, i32, i32 } %10, 1, !dbg !312
%asmresult4.i = extractvalue { i32, i32, i32, i32 } %10, 2, !dbg !312
%asmresult5.i = extractvalue { i32, i32, i32, i32 } %10, 3, !dbg !312
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 %asmresult3.i, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 %asmresult4.i, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !310
call void @llvm.dbg.value(metadata i32 %asmresult5.i, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !310
%retval.sroa.2.0.insert.ext.i = zext i32 %asmresult3.i to i64, !dbg !314
%retval.sroa.2.0.insert.shift.i = shl nuw i64 %retval.sroa.2.0.insert.ext.i, 32, !dbg !314
%retval.sroa.5.8.insert.ext.i = zext i32 %asmresult5.i to i64, !dbg !314
%retval.sroa.5.8.insert.shift.i = shl nuw i64 %retval.sroa.5.8.insert.ext.i, 32, !dbg !314
%retval.sroa.3.8.insert.ext.i = zext i32 %asmresult4.i to i64, !dbg !314
%11 = xor i64 %retval.sroa.5.8.insert.shift.i, -1, !dbg !314
%12 = xor i64 %retval.sroa.3.8.insert.ext.i, -1, !dbg !314
%retval.sroa.3.8.insert.insert.i = or i64 %retval.sroa.5.8.insert.shift.i, %retval.sroa.3.8.insert.ext.i, !dbg !314
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 7, metadata !302, metadata !DIExpression()) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 1, metadata !308, metadata !DIExpression()) #5, !dbg !315
%13 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #6, !dbg !317, !srcloc !313
%asmresult.i858 = extractvalue { i32, i32, i32, i32 } %13, 0, !dbg !317
call void @llvm.dbg.value(metadata i32 %asmresult.i858, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !315
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !315
%retval.sroa.0.0.insert.ext.i864 = trunc i32 %asmresult.i858 to i8, !dbg !318
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i858), metadata !265, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.bo935 = lshr i8 %retval.sroa.0.0.insert.ext.i864, 5, !dbg !319
%phi.bo936 = and i8 %phi.bo935, 1, !dbg !319
br label %cond.end9, !dbg !319
cond.end9: ; preds = %9, %cond.true2
%structured_feature_info0.sroa.25.0932 = phi i64 [ %retval.sroa.3.8.insert.insert.i, %cond.true2 ], [ 0, %9 ]
%structured_feature_info0.sroa.0.0930 = phi i64 [ %retval.sroa.2.0.insert.shift.i, %cond.true2 ], [ 0, %9 ]
%structured_feature_info1.sroa.0.0 = phi i8 [ %phi.bo936, %cond.true2 ], [ 0, %9 ]
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !266, metadata !DIExpression()), !dbg !297
%14 = icmp ugt i32 %max_extended_index, -2147483641, !dbg !320
br i1 false, label %15, label %16, !dbg !321, !prof !301
15: ; preds = %cond.end9
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !321
unreachable, !dbg !321
16: ; preds = %cond.end9
br i1 %14, label %cond.true11, label %cond.end18, !dbg !321
cond.true11: ; preds = %16
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !322, metadata !DIExpression()) #5, !dbg !328
%17 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483640) #6, !dbg !330, !srcloc !331
%asmresult2.i = extractvalue { i32, i32, i32, i32 } %17, 1, !dbg !330
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i32 %asmresult2.i, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !328
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.cast = trunc i32 %asmresult2.i to i8, !dbg !321
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult2.i, i32 undef), metadata !268, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%phi.bo = and i8 %phi.cast, 1, !dbg !321
br label %cond.end18, !dbg !321
cond.end18: ; preds = %16, %cond.true11
%processor_capacity_info.sroa.0.0 = phi i8 [ %phi.bo, %cond.true11 ], [ 0, %16 ]
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !271, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 201326592, metadata !272, metadata !DIExpression()), !dbg !297
%18 = and i32 %_msprop, 201326592, !dbg !332
%and = and i32 %basic_info.sroa.1.8.extract.trunc, 201326592, !dbg !332
%19 = xor i32 %and, 201326592, !dbg !333
%20 = icmp ne i32 %18, 0, !dbg !333
%21 = xor i32 %18, -1, !dbg !333
%22 = and i32 %21, %19, !dbg !333
%23 = icmp eq i32 %22, 0, !dbg !333
%_msprop_icmp = and i1 %20, %23, !dbg !333
%cmp20 = icmp eq i32 %and, 201326592, !dbg !333
br i1 %_msprop_icmp, label %24, label %25, !dbg !334, !prof !301
24: ; preds = %cond.end18
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !334
unreachable, !dbg !334
25: ; preds = %cond.end18
br i1 %cmp20, label %if.then, label %if.end54, !dbg !334
if.then: ; preds = %25
call void @llvm.dbg.value(metadata i64 0, metadata !273, metadata !DIExpression()), !dbg !335
%26 = icmp ugt i32 %max_base_index, 12, !dbg !336
br i1 false, label %27, label %28, !dbg !337, !prof !301
27: ; preds = %if.then
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !337
unreachable, !dbg !337
28: ; preds = %if.then
br i1 %26, label %if.then22, label %if.end, !dbg !337
if.then22: ; preds = %28
call void @llvm.dbg.value(metadata i32 13, metadata !302, metadata !DIExpression()) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 0, metadata !308, metadata !DIExpression()) #5, !dbg !338
%29 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 13, i32 0) #6, !dbg !340, !srcloc !313
%asmresult.i885 = extractvalue { i32, i32, i32, i32 } %29, 0, !dbg !340
call void @llvm.dbg.value(metadata i32 %asmresult.i885, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !338
call void @llvm.dbg.value(metadata i32 undef, metadata !309, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !338
%retval.sroa.0.0.insert.ext.i891 = zext i32 %asmresult.i885 to i64, !dbg !341
call void @llvm.dbg.value(metadata !DIArgList(i32 undef, i64 %retval.sroa.0.0.insert.ext.i891), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !342
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 undef), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !342
call void @llvm.dbg.value(metadata i64 %retval.sroa.0.0.insert.ext.i891, metadata !273, metadata !DIExpression()), !dbg !335
br label %if.end, !dbg !343
if.end: ; preds = %if.then22, %28
%xcr0_valid_bits.0 = phi i64 [ %retval.sroa.0.0.insert.ext.i891, %if.then22 ], [ 0, %28 ], !dbg !335
call void @llvm.dbg.value(metadata i64 %xcr0_valid_bits.0, metadata !273, metadata !DIExpression()), !dbg !335
call void @llvm.dbg.value(metadata i32 0, metadata !344, metadata !DIExpression()) #5, !dbg !351
%30 = tail call { i32, i32 } asm ".byte 0x0F, 0x01, 0xD0", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #6, !dbg !353, !srcloc !354
%asmresult.i899 = extractvalue { i32, i32 } %30, 0, !dbg !353
call void @llvm.dbg.value(metadata i32 %asmresult.i899, metadata !349, metadata !DIExpression()) #5, !dbg !351
call void @llvm.dbg.value(metadata i32 undef, metadata !350, metadata !DIExpression()) #5, !dbg !351
%conv2.i = zext i32 %asmresult.i899 to i64, !dbg !355
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i64 %conv2.i), metadata !279, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value)), !dbg !335
call void @llvm.dbg.value(metadata i64 6, metadata !281, metadata !DIExpression()), !dbg !335
%31 = insertelement <2 x i64> poison, i64 %xcr0_valid_bits.0, i64 0, !dbg !356
%32 = shufflevector <2 x i64> %31, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !356
%33 = and <2 x i64> %32, <i64 6, i64 230>, !dbg !356
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 230, metadata !282, metadata !DIExpression()), !dbg !335
%34 = xor <2 x i64> %33, <i64 6, i64 230>, !dbg !358
%35 = icmp eq <2 x i64> %34, zeroinitializer, !dbg !358
%36 = icmp eq <2 x i64> %33, <i64 6, i64 230>, !dbg !358
%37 = insertelement <2 x i64> poison, i64 %conv2.i, i64 0, !dbg !359
%38 = shufflevector <2 x i64> %37, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !359
%39 = and <2 x i64> %38, <i64 6, i64 230>, !dbg !359
%40 = xor <2 x i64> %39, <i64 6, i64 230>, !dbg !359
%41 = icmp eq <2 x i64> %40, zeroinitializer, !dbg !359
%42 = icmp eq <2 x i64> %39, <i64 6, i64 230>, !dbg !359
%43 = select <2 x i1> %36, <2 x i1> %42, <2 x i1> zeroinitializer, !dbg !359
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 24, metadata !283, metadata !DIExpression()), !dbg !335
%and45 = and i64 %xcr0_valid_bits.0, 24, !dbg !360
%44 = xor i64 %and45, 24, !dbg !362
%45 = icmp eq i64 %44, 0, !dbg !362
%cmp46 = icmp eq i64 %and45, 24, !dbg !362
%and49 = and i64 %conv2.i, 24, !dbg !363
%46 = xor i64 %and49, 24, !dbg !363
%47 = icmp eq i64 %46, 0, !dbg !363
%cmp50 = icmp eq i64 %and49, 24, !dbg !363
%mpx_regs.0 = select i1 %cmp46, i1 %cmp50, i1 false, !dbg !363
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
br label %if.end54, !dbg !364
if.end54: ; preds = %if.end, %25
%mpx_regs.1 = phi i1 [ %mpx_regs.0, %if.end ], [ false, %25 ], !dbg !297
%48 = phi <2 x i1> [ %43, %if.end ], [ zeroinitializer, %25 ], !dbg !297
%shuffle937 = shufflevector <2 x i1> %48, <2 x i1> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1>, !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
%sysenter = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 2, !dbg !365
%49 = lshr i64 %0, 43, !dbg !366
%and56815 = lshr i64 %basic_info.coerce1, 43, !dbg !366
%_msprop959 = trunc i64 %49 to i8, !dbg !366
%50 = trunc i64 %and56815 to i8, !dbg !366
%51 = and i8 %_msprop959, 1, !dbg !366
%52 = and i8 %50, 1, !dbg !366
%_mscmp = icmp ne i64 %2, 0, !dbg !366
br i1 %_mscmp, label %53, label %54, !dbg !366, !prof !301
53: ; preds = %if.end54
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !366
unreachable, !dbg !366
54: ; preds = %if.end54
%55 = ptrtoint i8* %sysenter to i64, !dbg !366
%56 = xor i64 %55, 87960930222080, !dbg !366
%57 = inttoptr i64 %56 to i8*, !dbg !366
store i8 %51, i8* %57, align 1, !dbg !366
store i8 %52, i8* %sysenter, align 1, !dbg !366
%58 = xor i64 %extended_info.sroa.14.8.extract.shift, -1, !dbg !367
%59 = xor i64 %basic_info.sroa.18.8.extract.shift, -1, !dbg !367
%60 = and i64 %4, %3, !dbg !367
%61 = and i64 %58, %3, !dbg !367
%62 = and i64 %4, %59, !dbg !367
%63 = or i64 %60, %61, !dbg !367
%64 = or i64 %63, %62, !dbg !367
%or61820 = or i64 %extended_info.sroa.14.8.extract.shift, %basic_info.sroa.18.8.extract.shift, !dbg !367
%msr = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 3, !dbg !368
%_msprop962 = trunc i64 %64 to i8, !dbg !369
%65 = trunc i64 %or61820 to i8, !dbg !369
%66 = lshr i8 %_msprop962, 5, !dbg !369
%67 = lshr i8 %65, 5, !dbg !369
%68 = and i8 %66, 1, !dbg !369
%69 = and i8 %67, 1, !dbg !369
br i1 false, label %70, label %71, !dbg !369, !prof !301
70: ; preds = %54
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !369
unreachable, !dbg !369
71: ; preds = %54
%72 = ptrtoint i8* %msr to i64, !dbg !369
%73 = xor i64 %72, 87960930222080, !dbg !369
%74 = inttoptr i64 %73 to i8*, !dbg !369
store i8 %68, i8* %74, align 1, !dbg !369
store i8 %69, i8* %msr, align 1, !dbg !369
%clzero = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 4, !dbg !370
br i1 false, label %75, label %76, !dbg !371, !prof !301
75: ; preds = %71
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !371
unreachable, !dbg !371
76: ; preds = %71
%77 = ptrtoint i8* %clzero to i64, !dbg !371
%78 = xor i64 %77, 87960930222080, !dbg !371
%79 = inttoptr i64 %78 to i8*, !dbg !371
store i8 0, i8* %79, align 1, !dbg !371
store i8 %processor_capacity_info.sroa.0.0, i8* %clzero, align 1, !dbg !371
%clflush = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 5, !dbg !372
%80 = lshr i64 %0, 51, !dbg !373
%and74817 = lshr i64 %basic_info.coerce1, 51, !dbg !373
%_msprop967 = trunc i64 %80 to i8, !dbg !373
%81 = trunc i64 %and74817 to i8, !dbg !373
%82 = and i8 %_msprop967, 1, !dbg !373
%83 = and i8 %81, 1, !dbg !373
br i1 false, label %84, label %85, !dbg !373, !prof !301
84: ; preds = %76
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !373
unreachable, !dbg !373
85: ; preds = %76
%86 = ptrtoint i8* %clflush to i64, !dbg !373
%87 = xor i64 %86, 87960930222080, !dbg !373
%88 = inttoptr i64 %87 to i8*, !dbg !373
store i8 %82, i8* %88, align 1, !dbg !373
store i8 %83, i8* %clflush, align 1, !dbg !373
%structured_feature_info0.sroa.0.4.extract.shift = lshr exact i64 %structured_feature_info0.sroa.0.0930, 32, !dbg !374
%structured_feature_info0.sroa.0.4.extract.trunc = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i32, !dbg !374
%clflushopt = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 6, !dbg !375
%and80818 = lshr i64 %structured_feature_info0.sroa.0.0930, 55, !dbg !376
%89 = trunc i64 %and80818 to i8, !dbg !376
%90 = and i8 %89, 1, !dbg !376
br i1 false, label %91, label %92, !dbg !376, !prof !301
91: ; preds = %85
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !376
unreachable, !dbg !376
92: ; preds = %85
%93 = ptrtoint i8* %clflushopt to i64, !dbg !376
%94 = xor i64 %93, 87960930222080, !dbg !376
%95 = inttoptr i64 %94 to i8*, !dbg !376
store i8 0, i8* %95, align 1, !dbg !376
store i8 %90, i8* %clflushopt, align 1, !dbg !376
%mwait = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 7, !dbg !377
%_msprop974 = trunc i64 %0 to i8, !dbg !378
%96 = trunc i64 %basic_info.coerce1 to i8, !dbg !378
%97 = lshr i8 %_msprop974, 3, !dbg !378
%98 = lshr i8 %96, 3, !dbg !378
%99 = and i8 %97, 1, !dbg !378
%100 = and i8 %98, 1, !dbg !378
br i1 false, label %101, label %102, !dbg !378, !prof !301
101: ; preds = %92
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !378
unreachable, !dbg !378
102: ; preds = %92
%103 = ptrtoint i8* %mwait to i64, !dbg !378
%104 = xor i64 %103, 87960930222080, !dbg !378
%105 = inttoptr i64 %104 to i8*, !dbg !378
store i8 %99, i8* %105, align 1, !dbg !378
store i8 %100, i8* %mwait, align 1, !dbg !378
%mwaitx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 8, !dbg !379
%106 = lshr i32 %_msprop939, 29, !dbg !380
%and92 = lshr i32 %extended_info.sroa.1.8.extract.trunc, 29, !dbg !380
%_msprop977 = trunc i32 %106 to i8, !dbg !380
%107 = trunc i32 %and92 to i8, !dbg !380
%108 = and i8 %_msprop977, 1, !dbg !380
%109 = and i8 %107, 1, !dbg !380
br i1 false, label %110, label %111, !dbg !380, !prof !301
110: ; preds = %102
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !380
unreachable, !dbg !380
111: ; preds = %102
%112 = ptrtoint i8* %mwaitx to i64, !dbg !380
%113 = xor i64 %112, 87960930222080, !dbg !380
%114 = inttoptr i64 %113 to i8*, !dbg !380
store i8 %108, i8* %114, align 1, !dbg !380
store i8 %109, i8* %mwaitx, align 1, !dbg !380
%fxsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 9, !dbg !381
%115 = lshr i64 %64, 24, !dbg !383
%and100821 = lshr i64 %or61820, 24, !dbg !383
%_msprop980 = trunc i64 %115 to i8, !dbg !383
%116 = trunc i64 %and100821 to i8, !dbg !383
%117 = and i8 %_msprop980, 1, !dbg !383
%118 = and i8 %116, 1, !dbg !383
br i1 false, label %119, label %120, !dbg !383, !prof !301
119: ; preds = %111
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !383
unreachable, !dbg !383
120: ; preds = %111
%121 = ptrtoint i8* %fxsave to i64, !dbg !383
%122 = xor i64 %121, 87960930222080, !dbg !383
%123 = inttoptr i64 %122 to i8*, !dbg !383
store i8 %117, i8* %123, align 1, !dbg !383
store i8 %118, i8* %fxsave, align 1, !dbg !383
%xsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 10, !dbg !384
%124 = lshr i32 %_msprop, 26, !dbg !385
%and106 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 26, !dbg !385
%_msprop983 = trunc i32 %124 to i8, !dbg !385
%125 = trunc i32 %and106 to i8, !dbg !385
%126 = and i8 %_msprop983, 1, !dbg !385
%127 = and i8 %125, 1, !dbg !385
br i1 false, label %128, label %129, !dbg !385, !prof !301
128: ; preds = %120
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !385
unreachable, !dbg !385
129: ; preds = %120
%130 = ptrtoint i8* %xsave to i64, !dbg !385
%131 = xor i64 %130, 87960930222080, !dbg !385
%132 = inttoptr i64 %131 to i8*, !dbg !385
store i8 %126, i8* %132, align 1, !dbg !385
store i8 %127, i8* %xsave, align 1, !dbg !385
%three_d_now = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 11, !dbg !386
%133 = lshr i64 %1, 63, !dbg !387
%extended_info.coerce1.lobit = lshr i64 %extended_info.coerce1, 63, !dbg !387
%_msprop986 = trunc i64 %133 to i8, !dbg !387
%134 = trunc i64 %extended_info.coerce1.lobit to i8, !dbg !387
br i1 false, label %135, label %136, !dbg !387, !prof !301
135: ; preds = %129
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !387
unreachable, !dbg !387
136: ; preds = %129
%137 = ptrtoint i8* %three_d_now to i64, !dbg !387
%138 = xor i64 %137, 87960930222080, !dbg !387
%139 = inttoptr i64 %138 to i8*, !dbg !387
store i8 %_msprop986, i8* %139, align 1, !dbg !387
store i8 %134, i8* %three_d_now, align 1, !dbg !387
%three_d_now_plus = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 12, !dbg !388
%140 = lshr i32 %_msprop940, 30, !dbg !389
%and118 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 30, !dbg !389
%_msprop989 = trunc i32 %140 to i8, !dbg !389
%141 = trunc i32 %and118 to i8, !dbg !389
%142 = and i8 %_msprop989, 1, !dbg !389
%143 = and i8 %141, 1, !dbg !389
br i1 false, label %144, label %145, !dbg !389, !prof !301
144: ; preds = %136
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !389
unreachable, !dbg !389
145: ; preds = %136
%146 = ptrtoint i8* %three_d_now_plus to i64, !dbg !389
%147 = xor i64 %146, 87960930222080, !dbg !389
%148 = inttoptr i64 %147 to i8*, !dbg !389
store i8 %142, i8* %148, align 1, !dbg !389
store i8 %143, i8* %three_d_now_plus, align 1, !dbg !389
switch i32 %vendor, label %sw.default132 [
i32 16, label %sw.bb
i32 2, label %sw.bb
i32 1, label %sw.epilog162
], !dbg !390
sw.bb: ; preds = %145, %145
%149 = and i32 %_msprop939, 256, !dbg !391
%and124 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !391
%150 = and i32 %_msprop940, -536870912, !dbg !393
%and126 = and i32 %extended_info.sroa.14.8.extract.trunc, -536870912, !dbg !393
%151 = xor i32 %and126, -1, !dbg !394
%152 = xor i32 %and124, -1, !dbg !394
%153 = or i32 %149, %150, !dbg !394
%or127 = or i32 %and126, %and124, !dbg !394
%154 = icmp ne i32 %153, 0, !dbg !395
%155 = xor i32 %153, -1, !dbg !395
%156 = and i32 %155, %or127, !dbg !395
%157 = icmp eq i32 %156, 0, !dbg !395
%_msprop_icmp1167 = and i1 %154, %157, !dbg !395
%tobool128 = icmp ne i32 %or127, 0, !dbg !395
br label %sw.epilog140, !dbg !396
sw.default132: ; preds = %145
%158 = xor i32 %_msprop940, -1, !dbg !397
%159 = and i32 %extended_info.sroa.14.8.extract.trunc, %158, !dbg !397
%160 = icmp ugt i32 %159, 1073741823, !dbg !397
%161 = or i32 %extended_info.sroa.14.8.extract.trunc, %_msprop940, !dbg !397
%162 = icmp ugt i32 %161, 1073741823, !dbg !397
%163 = xor i1 %160, %162, !dbg !397
%tobool135 = icmp ugt i32 %extended_info.sroa.14.8.extract.trunc, 1073741823, !dbg !397
br label %sw.epilog140, !dbg !398
sw.epilog140: ; preds = %sw.default132, %sw.bb
%_msphi_s990 = phi i1 [ %163, %sw.default132 ], [ %_msprop_icmp1167, %sw.bb ]
%tobool135.sink = phi i1 [ %tobool135, %sw.default132 ], [ %tobool128, %sw.bb ]
%prefetch138 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 13, !dbg !399
%_msprop993 = zext i1 %_msphi_s990 to i8, !dbg !399
%frombool139 = zext i1 %tobool135.sink to i8, !dbg !399
br i1 false, label %164, label %165, !dbg !399, !prof !301
164: ; preds = %sw.epilog140
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !399
unreachable, !dbg !399
165: ; preds = %sw.epilog140
%166 = ptrtoint i8* %prefetch138 to i64, !dbg !399
%167 = xor i64 %166, 87960930222080, !dbg !399
%168 = inttoptr i64 %167 to i8*, !dbg !399
store i8 %_msprop993, i8* %168, align 1, !dbg !399
store i8 %frombool139, i8* %prefetch138, align 1, !dbg !399
%169 = xor i32 %vendor, 2, !dbg !400
%170 = icmp eq i32 %169, 0, !dbg !400
%switch.selectcmp.case1 = icmp eq i32 %vendor, 2, !dbg !400
%171 = xor i32 %vendor, 16, !dbg !400
%172 = icmp eq i32 %171, 0, !dbg !400
%switch.selectcmp.case2 = icmp eq i32 %vendor, 16, !dbg !400
%173 = xor i1 %switch.selectcmp.case1, true, !dbg !400
%174 = xor i1 %switch.selectcmp.case2, true, !dbg !400
%switch.selectcmp = or i1 %switch.selectcmp.case1, %switch.selectcmp.case2, !dbg !400
%175 = select i1 %switch.selectcmp, i32 -536870912, i32 -1073741824, !dbg !400
br label %sw.epilog162, !dbg !400
sw.epilog162: ; preds = %145, %165
%.sink = phi i32 [ %175, %165 ], [ -1073741824, %145 ]
%176 = and i32 %_msprop939, 256, !dbg !401
%and153 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !401
%177 = and i32 %.sink, %_msprop940, !dbg !401
%and155 = and i32 %.sink, %extended_info.sroa.14.8.extract.trunc, !dbg !401
%178 = xor i32 %and155, -1, !dbg !401
%179 = xor i32 %and153, -1, !dbg !401
%180 = and i32 %177, %176, !dbg !401
%181 = and i32 %178, %176, !dbg !401
%182 = and i32 %177, %179, !dbg !401
%183 = or i32 %180, %181, !dbg !401
%184 = or i32 %183, %182, !dbg !401
%or156 = or i32 %and155, %and153, !dbg !401
%185 = icmp ne i32 %184, 0, !dbg !401
%186 = xor i32 %184, -1, !dbg !401
%187 = and i32 %186, %or156, !dbg !401
%188 = icmp eq i32 %187, 0, !dbg !401
%_msprop_icmp998 = and i1 %185, %188, !dbg !401
%tobool157 = icmp ne i32 %or156, 0, !dbg !401
%prefetchw160 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 14, !dbg !401
%_msprop1001 = zext i1 %_msprop_icmp998 to i8, !dbg !401
%frombool161 = zext i1 %tobool157 to i8, !dbg !401
br i1 false, label %189, label %190, !dbg !401, !prof !301
189: ; preds = %sw.epilog162
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !401
unreachable, !dbg !401
190: ; preds = %sw.epilog162
%191 = ptrtoint i8* %prefetchw160 to i64, !dbg !401
%192 = xor i64 %191, 87960930222080, !dbg !401
%193 = inttoptr i64 %192 to i8*, !dbg !401
store i8 %_msprop1001, i8* %193, align 1, !dbg !401
store i8 %frombool161, i8* %prefetchw160, align 1, !dbg !401
%prefetchwt1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 15, !dbg !403
%194 = trunc i64 %structured_feature_info0.sroa.25.0932 to i8, !dbg !404
%195 = and i8 %194, 1, !dbg !404
br i1 false, label %196, label %197, !dbg !404, !prof !301
196: ; preds = %190
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !404
unreachable, !dbg !404
197: ; preds = %190
%198 = ptrtoint i8* %prefetchwt1 to i64, !dbg !404
%199 = xor i64 %198, 87960930222080, !dbg !404
%200 = inttoptr i64 %199 to i8*, !dbg !404
store i8 0, i8* %200, align 1, !dbg !404
store i8 %195, i8* %prefetchwt1, align 1, !dbg !404
%sse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 16, !dbg !405
%201 = and i8 %_msprop974, 1, !dbg !406
%202 = and i8 %96, 1, !dbg !406
br i1 false, label %203, label %204, !dbg !406, !prof !301
203: ; preds = %197
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !406
unreachable, !dbg !406
204: ; preds = %197
%205 = ptrtoint i8* %sse3 to i64, !dbg !406
%206 = xor i64 %205, 87960930222080, !dbg !406
%207 = inttoptr i64 %206 to i8*, !dbg !406
store i8 %201, i8* %207, align 1, !dbg !406
store i8 %202, i8* %sse3, align 1, !dbg !406
%ssse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 17, !dbg !407
%208 = lshr i64 %0, 9, !dbg !408
%and176822 = lshr i64 %basic_info.coerce1, 9, !dbg !408
%_msprop1009 = trunc i64 %208 to i8, !dbg !408
%209 = trunc i64 %and176822 to i8, !dbg !408
%210 = and i8 %_msprop1009, 1, !dbg !408
%211 = and i8 %209, 1, !dbg !408
br i1 false, label %212, label %213, !dbg !408, !prof !301
212: ; preds = %204
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !408
unreachable, !dbg !408
213: ; preds = %204
%214 = ptrtoint i8* %ssse3 to i64, !dbg !408
%215 = xor i64 %214, 87960930222080, !dbg !408
%216 = inttoptr i64 %215 to i8*, !dbg !408
store i8 %210, i8* %216, align 1, !dbg !408
store i8 %211, i8* %ssse3, align 1, !dbg !408
%sse4_1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 18, !dbg !409
%217 = lshr i64 %0, 19, !dbg !410
%and182823 = lshr i64 %basic_info.coerce1, 19, !dbg !410
%_msprop1012 = trunc i64 %217 to i8, !dbg !410
%218 = trunc i64 %and182823 to i8, !dbg !410
%219 = and i8 %_msprop1012, 1, !dbg !410
%220 = and i8 %218, 1, !dbg !410
br i1 false, label %221, label %222, !dbg !410, !prof !301
221: ; preds = %213
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !410
unreachable, !dbg !410
222: ; preds = %213
%223 = ptrtoint i8* %sse4_1 to i64, !dbg !410
%224 = xor i64 %223, 87960930222080, !dbg !410
%225 = inttoptr i64 %224 to i8*, !dbg !410
store i8 %219, i8* %225, align 1, !dbg !410
store i8 %220, i8* %sse4_1, align 1, !dbg !410
%sse4_2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 19, !dbg !411
%226 = lshr i64 %0, 20, !dbg !412
%and188824 = lshr i64 %basic_info.coerce1, 20, !dbg !412
%_msprop1015 = trunc i64 %226 to i8, !dbg !412
%227 = trunc i64 %and188824 to i8, !dbg !412
%228 = and i8 %_msprop1015, 1, !dbg !412
%229 = and i8 %227, 1, !dbg !412
br i1 false, label %230, label %231, !dbg !412, !prof !301
230: ; preds = %222
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !412
unreachable, !dbg !412
231: ; preds = %222
%232 = ptrtoint i8* %sse4_2 to i64, !dbg !412
%233 = xor i64 %232, 87960930222080, !dbg !412
%234 = inttoptr i64 %233 to i8*, !dbg !412
store i8 %228, i8* %234, align 1, !dbg !412
store i8 %229, i8* %sse4_2, align 1, !dbg !412
%sse4a = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 20, !dbg !413
%_msprop1018 = trunc i64 %1 to i8, !dbg !414
%235 = trunc i64 %extended_info.coerce1 to i8, !dbg !414
%236 = lshr i8 %_msprop1018, 6, !dbg !414
%237 = lshr i8 %235, 6, !dbg !414
%238 = and i8 %236, 1, !dbg !414
%239 = and i8 %237, 1, !dbg !414
br i1 false, label %240, label %241, !dbg !414, !prof !301
240: ; preds = %231
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !414
unreachable, !dbg !414
241: ; preds = %231
%242 = ptrtoint i8* %sse4a to i64, !dbg !414
%243 = xor i64 %242, 87960930222080, !dbg !414
%244 = inttoptr i64 %243 to i8*, !dbg !414
store i8 %238, i8* %244, align 1, !dbg !414
store i8 %239, i8* %sse4a, align 1, !dbg !414
%misaligned_sse = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 21, !dbg !415
%245 = lshr i8 %_msprop1018, 7, !dbg !416
%246 = lshr i8 %235, 7, !dbg !416
br i1 false, label %247, label %248, !dbg !416, !prof !301
247: ; preds = %241
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !416
unreachable, !dbg !416
248: ; preds = %241
%249 = ptrtoint i8* %misaligned_sse to i64, !dbg !416
%250 = xor i64 %249, 87960930222080, !dbg !416
%251 = inttoptr i64 %250 to i8*, !dbg !416
store i8 %245, i8* %251, align 1, !dbg !416
store i8 %246, i8* %misaligned_sse, align 1, !dbg !416
%_msprop1021 = insertelement <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, i32 %_msprop, i64 0, !dbg !417
%252 = insertelement <8 x i32> poison, i32 %basic_info.sroa.1.8.extract.trunc, i64 0, !dbg !417
%_msprop1022 = insertelement <8 x i32> %_msprop1021, i32 %_msprop939, i64 1, !dbg !417
%253 = insertelement <8 x i32> %252, i32 %extended_info.sroa.1.8.extract.trunc, i64 1, !dbg !417
%_msprop1023 = insertelement <8 x i32> %_msprop1022, i32 0, i64 2, !dbg !417
%254 = insertelement <8 x i32> %253, i32 %structured_feature_info0.sroa.0.4.extract.trunc, i64 2, !dbg !417
%_msprop1024 = shufflevector <8 x i32> %_msprop1023, <8 x i32> <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 0, i32 2, i32 2, i32 2>, !dbg !417
%shuffle938 = shufflevector <8 x i32> %254, <8 x i32> poison, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 0, i32 2, i32 2, i32 2>, !dbg !417
%255 = and <8 x i32> %_msprop1024, <i32 268435456, i32 4096, i32 65536, i32 2048, i32 536870912, i32 32, i32 65536, i32 67108864>, !dbg !417
%256 = and <8 x i32> %shuffle938, <i32 268435456, i32 4096, i32 65536, i32 2048, i32 536870912, i32 32, i32 65536, i32 67108864>, !dbg !417
%avx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 22, !dbg !418
%257 = icmp ne <8 x i32> %255, zeroinitializer, !dbg !417
%258 = xor <8 x i32> %255, <i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1>, !dbg !417
%259 = and <8 x i32> %258, %256, !dbg !417
%260 = icmp eq <8 x i32> %259, zeroinitializer, !dbg !417
%_msprop_icmp1027 = and <8 x i1> %257, %260, !dbg !417
%261 = icmp ne <8 x i32> %256, zeroinitializer, !dbg !417
%262 = select <8 x i1> %shuffle937, <8 x i1> %_msprop_icmp1027, <8 x i1> zeroinitializer, !dbg !417
%263 = or <8 x i1> %261, %_msprop_icmp1027, !dbg !417
%264 = select <8 x i1> %shuffle937, <8 x i1> %261, <8 x i1> zeroinitializer, !dbg !417
%_msprop1029 = zext <8 x i1> %262 to <8 x i8>, !dbg !419
%265 = zext <8 x i1> %264 to <8 x i8>, !dbg !419
%266 = bitcast i8* %avx to <8 x i8>*, !dbg !419
br i1 false, label %267, label %268, !dbg !419, !prof !301
267: ; preds = %248
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !419
unreachable, !dbg !419
268: ; preds = %248
%269 = ptrtoint <8 x i8>* %266 to i64, !dbg !419
%270 = xor i64 %269, 87960930222080, !dbg !419
%271 = inttoptr i64 %270 to <8 x i8>*, !dbg !419
store <8 x i8> %_msprop1029, <8 x i8>* %271, align 1, !dbg !419
store <8 x i8> %265, <8 x i8>* %266, align 1, !dbg !419
%and287 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 134217728, !dbg !420
%272 = icmp eq i32 %and287, 0, !dbg !420
%tobool288 = icmp ne i32 %and287, 0, !dbg !420
%273 = extractelement <2 x i1> %48, i64 1, !dbg !420
%274 = select i1 %273, i1 %tobool288, i1 false, !dbg !420
%avx512er = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 30, !dbg !421
%frombool292 = zext i1 %274 to i8, !dbg !422
br i1 false, label %275, label %276, !dbg !422, !prof !301
275: ; preds = %268
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !422
unreachable, !dbg !422
276: ; preds = %268
%277 = ptrtoint i8* %avx512er to i64, !dbg !422
%278 = xor i64 %277, 87960930222080, !dbg !422
%279 = inttoptr i64 %278 to i8*, !dbg !422
store i8 0, i8* %279, align 1, !dbg !422
store i8 %frombool292, i8* %avx512er, align 1, !dbg !422
%and297 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 268435456, !dbg !423
%280 = icmp eq i32 %and297, 0, !dbg !423
%tobool298 = icmp ne i32 %and297, 0, !dbg !423
%281 = select i1 %273, i1 %tobool298, i1 false, !dbg !423
%avx512cd = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 31, !dbg !424
%frombool302 = zext i1 %281 to i8, !dbg !425
br i1 false, label %282, label %283, !dbg !425, !prof !301
282: ; preds = %276
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !425
unreachable, !dbg !425
283: ; preds = %276
%284 = ptrtoint i8* %avx512cd to i64, !dbg !425
%285 = xor i64 %284, 87960930222080, !dbg !425
%286 = inttoptr i64 %285 to i8*, !dbg !425
store i8 0, i8* %286, align 1, !dbg !425
store i8 %frombool302, i8* %avx512cd, align 1, !dbg !425
%and307827 = lshr i64 %structured_feature_info0.sroa.0.0930, 49, !dbg !426
%287 = trunc i64 %and307827 to i8, !dbg !426
%avx512dq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 32, !dbg !427
%and317 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 30, !dbg !428
%288 = trunc i32 %and317 to i8, !dbg !428
%289 = insertelement <2 x i8> poison, i8 %287, i64 0, !dbg !426
%290 = insertelement <2 x i8> %289, i8 %288, i64 1, !dbg !426
%291 = and <2 x i8> %290, <i8 1, i8 1>, !dbg !426
%and327.lobit = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 31, !dbg !429
%292 = trunc i32 %and327.lobit to i8, !dbg !429
%and337828 = lshr i64 %structured_feature_info0.sroa.0.0930, 53, !dbg !430
%293 = trunc i64 %and337828 to i8, !dbg !430
%294 = and i8 %293, 1, !dbg !430
%295 = lshr i8 %194, 1, !dbg !431
%296 = lshr i8 %194, 6, !dbg !432
%297 = insertelement <2 x i64> poison, i64 %structured_feature_info0.sroa.25.0932, i64 0, !dbg !433
%298 = shufflevector <2 x i64> %297, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !433
%299 = lshr <2 x i64> %298, <i64 12, i64 14>, !dbg !433
%300 = trunc <2 x i64> %299 to <2 x i8>, !dbg !433
%301 = insertelement <4 x i8> poison, i8 %295, i64 0, !dbg !431
%302 = insertelement <4 x i8> %301, i8 %296, i64 1, !dbg !431
%303 = shufflevector <2 x i8> %300, <2 x i8> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>, !dbg !431
%304 = shufflevector <4 x i8> %302, <4 x i8> %303, <4 x i32> <i32 0, i32 1, i32 4, i32 5>, !dbg !431
%305 = and <4 x i8> %304, <i8 1, i8 1, i8 1, i8 1>, !dbg !431
%306 = shufflevector <2 x i1> %48, <2 x i1> undef, <8 x i32> <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>, !dbg !426
%307 = shufflevector <2 x i8> %291, <2 x i8> poison, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !426
%308 = insertelement <8 x i8> %307, i8 %292, i64 2, !dbg !426
%309 = insertelement <8 x i8> %308, i8 %294, i64 3, !dbg !426
%310 = shufflevector <4 x i8> %305, <4 x i8> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !426
%311 = shufflevector <8 x i8> %309, <8 x i8> %310, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>, !dbg !426
%312 = select <8 x i1> %306, <8 x i8> %311, <8 x i8> zeroinitializer, !dbg !426
%313 = bitcast i8* %avx512dq to <8 x i8>*, !dbg !434
br i1 false, label %314, label %315, !dbg !434, !prof !301
314: ; preds = %283
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !434
unreachable, !dbg !434
315: ; preds = %283
%316 = ptrtoint <8 x i8>* %313 to i64, !dbg !434
%317 = xor i64 %316, 87960930222080, !dbg !434
%318 = inttoptr i64 %317 to <8 x i8>*, !dbg !434
store <8 x i8> zeroinitializer, <8 x i8>* %318, align 1, !dbg !434
store <8 x i8> %312, <8 x i8>* %313, align 1, !dbg !434
%and387833 = lshr i64 %structured_feature_info0.sroa.25.0932, 11, !dbg !435
%319 = trunc i64 %and387833 to i8, !dbg !435
%320 = and i8 %319, 1, !dbg !435
%321 = select i1 %273, i8 %320, i8 0, !dbg !435
%avx512vnni = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 40, !dbg !436
br i1 false, label %322, label %323, !dbg !437, !prof !301
322: ; preds = %315
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !437
unreachable, !dbg !437
323: ; preds = %315
%324 = ptrtoint i8* %avx512vnni to i64, !dbg !437
%325 = xor i64 %324, 87960930222080, !dbg !437
%326 = inttoptr i64 %325 to i8*, !dbg !437
store i8 0, i8* %326, align 1, !dbg !437
store i8 %321, i8* %avx512vnni, align 1, !dbg !437
%sum.shift = lshr i64 %structured_feature_info0.sroa.25.0932, 34, !dbg !438
%and397834 = trunc i64 %sum.shift to i8, !dbg !438
%and397.lobit = and i8 %and397834, 1, !dbg !438
%327 = select i1 %273, i8 %and397.lobit, i8 0, !dbg !438
%avx512_4vnniw = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 43, !dbg !439
br i1 false, label %328, label %329, !dbg !440, !prof !301
328: ; preds = %323
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !440
unreachable, !dbg !440
329: ; preds = %323
%330 = ptrtoint i8* %avx512_4vnniw to i64, !dbg !440
%331 = xor i64 %330, 87960930222080, !dbg !440
%332 = inttoptr i64 %331 to i8*, !dbg !440
store i8 0, i8* %332, align 1, !dbg !440
store i8 %327, i8* %avx512_4vnniw, align 1, !dbg !440
%sum.shift835 = lshr i64 %structured_feature_info0.sroa.25.0932, 35, !dbg !441
%and407836 = trunc i64 %sum.shift835 to i8, !dbg !441
%and407.lobit = and i8 %and407836, 1, !dbg !441
%333 = select i1 %273, i8 %and407.lobit, i8 0, !dbg !441
%avx512_4fmaps = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 44, !dbg !442
br i1 false, label %334, label %335, !dbg !443, !prof !301
334: ; preds = %329
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !443
unreachable, !dbg !443
335: ; preds = %329
%336 = ptrtoint i8* %avx512_4fmaps to i64, !dbg !443
%337 = xor i64 %336, 87960930222080, !dbg !443
%338 = inttoptr i64 %337 to i8*, !dbg !443
store i8 0, i8* %338, align 1, !dbg !443
store i8 %333, i8* %avx512_4fmaps, align 1, !dbg !443
%sum.shift837 = lshr i64 %structured_feature_info0.sroa.25.0932, 40, !dbg !444
%and417838 = trunc i64 %sum.shift837 to i8, !dbg !444
%and417.lobit = and i8 %and417838, 1, !dbg !444
%339 = select i1 %273, i8 %and417.lobit, i8 0, !dbg !444
%avx512vp2intersect = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 42, !dbg !445
br i1 false, label %340, label %341, !dbg !446, !prof !301
340: ; preds = %335
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !446
unreachable, !dbg !446
341: ; preds = %335
%342 = ptrtoint i8* %avx512vp2intersect to i64, !dbg !446
%343 = xor i64 %342, 87960930222080, !dbg !446
%344 = inttoptr i64 %343 to i8*, !dbg !446
store i8 0, i8* %344, align 1, !dbg !446
store i8 %339, i8* %avx512vp2intersect, align 1, !dbg !446
%345 = select i1 %273, i8 %structured_feature_info1.sroa.0.0, i8 0, !dbg !447
%avx512bf16 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 41, !dbg !448
br i1 false, label %346, label %347, !dbg !449, !prof !301
346: ; preds = %341
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !449
unreachable, !dbg !449
347: ; preds = %341
%348 = ptrtoint i8* %avx512bf16 to i64, !dbg !449
%349 = xor i64 %348, 87960930222080, !dbg !449
%350 = inttoptr i64 %349 to i8*, !dbg !449
store i8 0, i8* %350, align 1, !dbg !449
store i8 %345, i8* %avx512bf16, align 1, !dbg !449
%hle = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 45, !dbg !450
%and434840 = lshr i64 %structured_feature_info0.sroa.0.0930, 36, !dbg !451
%351 = trunc i64 %and434840 to i8, !dbg !451
%352 = and i8 %351, 1, !dbg !451
br i1 false, label %353, label %354, !dbg !451, !prof !301
353: ; preds = %347
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !451
unreachable, !dbg !451
354: ; preds = %347
%355 = ptrtoint i8* %hle to i64, !dbg !451
%356 = xor i64 %355, 87960930222080, !dbg !451
%357 = inttoptr i64 %356 to i8*, !dbg !451
store i8 0, i8* %357, align 1, !dbg !451
store i8 %352, i8* %hle, align 1, !dbg !451
%and440 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 2048, !dbg !452
%358 = icmp eq i32 %and440, 0, !dbg !453
%tobool441 = icmp ne i32 %and440, 0, !dbg !453
%rtm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 46, !dbg !454
%and440.lobit = lshr exact i32 %and440, 11, !dbg !455
%359 = trunc i32 %and440.lobit to i8, !dbg !455
br i1 false, label %360, label %361, !dbg !455, !prof !301
360: ; preds = %354
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !455
unreachable, !dbg !455
361: ; preds = %354
%362 = ptrtoint i8* %rtm to i64, !dbg !455
%363 = xor i64 %362, 87960930222080, !dbg !455
%364 = inttoptr i64 %363 to i8*, !dbg !455
store i8 0, i8* %364, align 1, !dbg !455
store i8 %359, i8* %rtm, align 1, !dbg !455
%365 = icmp eq i8 %352, 0, !dbg !456
%tobool446 = icmp ne i8 %352, 0, !dbg !456
%366 = xor i1 true, %tobool441, !dbg !457
%367 = select i1 %tobool446, i1 true, i1 %tobool441, !dbg !457
%xtest = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 47, !dbg !458
%frombool451 = zext i1 %367 to i8, !dbg !459
br i1 false, label %368, label %369, !dbg !459, !prof !301
368: ; preds = %361
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !459
unreachable, !dbg !459
369: ; preds = %361
%370 = ptrtoint i8* %xtest to i64, !dbg !459
%371 = xor i64 %370, 87960930222080, !dbg !459
%372 = inttoptr i64 %371 to i8*, !dbg !459
store i8 0, i8* %372, align 1, !dbg !459
store i8 %frombool451, i8* %xtest, align 1, !dbg !459
%and456841 = lshr i64 %structured_feature_info0.sroa.0.0930, 46, !dbg !460
%373 = trunc i64 %and456841 to i8, !dbg !460
%374 = and i8 %373, 1, !dbg !460
%375 = select i1 %mpx_regs.1, i8 %374, i8 0, !dbg !460
%mpx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 48, !dbg !461
br i1 false, label %376, label %377, !dbg !462, !prof !301
376: ; preds = %369
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !462
unreachable, !dbg !462
377: ; preds = %369
%378 = ptrtoint i8* %mpx to i64, !dbg !462
%379 = xor i64 %378, 87960930222080, !dbg !462
%380 = inttoptr i64 %379 to i8*, !dbg !462
store i8 0, i8* %380, align 1, !dbg !462
store i8 %375, i8* %mpx, align 1, !dbg !462
%cmpxchg16b = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 49, !dbg !463
%381 = lshr i64 %0, 13, !dbg !464
%and463842 = lshr i64 %basic_info.coerce1, 13, !dbg !464
%_msprop1100 = trunc i64 %381 to i8, !dbg !464
%382 = trunc i64 %and463842 to i8, !dbg !464
%and469843 = lshr i64 %structured_feature_info0.sroa.0.0930, 56, !dbg !465
%383 = trunc i64 %and469843 to i8, !dbg !465
%384 = lshr i64 %0, 22, !dbg !466
%and475844 = lshr i64 %basic_info.coerce1, 22, !dbg !466
%_msprop1102 = trunc i64 %384 to i8, !dbg !466
%385 = trunc i64 %and475844 to i8, !dbg !466
%386 = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i8, !dbg !467
%387 = lshr i8 %_msprop1018, 5, !dbg !468
%388 = lshr i8 %235, 5, !dbg !468
%389 = lshr i64 %0, 23, !dbg !469
%and499846 = lshr i64 %basic_info.coerce1, 23, !dbg !469
%_msprop1104 = trunc i64 %389 to i8, !dbg !469
%390 = trunc i64 %and499846 to i8, !dbg !469
%391 = lshr i64 %1, 21, !dbg !470
%and505847 = lshr i64 %extended_info.coerce1, 21, !dbg !470
%_msprop1105 = trunc i64 %391 to i8, !dbg !470
%392 = trunc i64 %and505847 to i8, !dbg !470
%393 = insertelement <2 x i64> poison, i64 %structured_feature_info0.sroa.0.0930, i64 0, !dbg !471
%394 = shufflevector <2 x i64> %393, <2 x i64> poison, <2 x i32> zeroinitializer, !dbg !471
%395 = lshr <2 x i64> %394, <i64 35, i64 40>, !dbg !471
%396 = trunc <2 x i64> %395 to <2 x i8>, !dbg !471
%and523850 = lshr i64 %structured_feature_info0.sroa.0.0930, 51, !dbg !472
%397 = trunc i64 %and523850 to i8, !dbg !472
%398 = lshr i32 %_msprop, 25, !dbg !473
%and529 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 25, !dbg !473
%_msprop1110 = trunc i32 %398 to i8, !dbg !473
%399 = trunc i32 %and529 to i8, !dbg !473
%and535851 = lshr i64 %structured_feature_info0.sroa.25.0932, 9, !dbg !474
%400 = trunc i64 %and535851 to i8, !dbg !474
%401 = lshr i8 %_msprop974, 1, !dbg !475
%402 = lshr i8 %96, 1, !dbg !475
%403 = lshr <2 x i64> %298, <i64 10, i64 8>, !dbg !476
%404 = trunc <2 x i64> %403 to <2 x i8>, !dbg !476
%_msprop1113 = insertelement <16 x i8> <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>, i8 %_msprop1100, i64 0, !dbg !464
%405 = insertelement <16 x i8> poison, i8 %382, i64 0, !dbg !464
%_msprop1114 = insertelement <16 x i8> %_msprop1113, i8 0, i64 1, !dbg !464
%406 = insertelement <16 x i8> %405, i8 %383, i64 1, !dbg !464
%_msprop1115 = insertelement <16 x i8> %_msprop1114, i8 %_msprop1102, i64 2, !dbg !464
%407 = insertelement <16 x i8> %406, i8 %385, i64 2, !dbg !464
%_msprop1116 = insertelement <16 x i8> %_msprop1115, i8 %_msprop1018, i64 3, !dbg !464
%408 = insertelement <16 x i8> %407, i8 %235, i64 3, !dbg !464
%_msprop1117 = insertelement <16 x i8> %_msprop1116, i8 0, i64 4, !dbg !464
%409 = insertelement <16 x i8> %408, i8 %386, i64 4, !dbg !464
%_msprop1118 = insertelement <16 x i8> %_msprop1117, i8 %387, i64 5, !dbg !464
%410 = insertelement <16 x i8> %409, i8 %388, i64 5, !dbg !464
%_msprop1119 = insertelement <16 x i8> %_msprop1118, i8 %_msprop1104, i64 6, !dbg !464
%411 = insertelement <16 x i8> %410, i8 %390, i64 6, !dbg !464
%_msprop1120 = insertelement <16 x i8> %_msprop1119, i8 %_msprop1105, i64 7, !dbg !464
%412 = insertelement <16 x i8> %411, i8 %392, i64 7, !dbg !464
%413 = shufflevector <2 x i8> %396, <2 x i8> poison, <16 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !464
%_msprop1122 = shufflevector <16 x i8> %_msprop1120, <16 x i8> <i8 0, i8 0, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef>, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !464
%414 = shufflevector <16 x i8> %412, <16 x i8> %413, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !464
%_msprop1123 = insertelement <16 x i8> %_msprop1122, i8 0, i64 10, !dbg !464
%415 = insertelement <16 x i8> %414, i8 %397, i64 10, !dbg !464
%_msprop1124 = insertelement <16 x i8> %_msprop1123, i8 %_msprop1110, i64 11, !dbg !464
%416 = insertelement <16 x i8> %415, i8 %399, i64 11, !dbg !464
%_msprop1125 = insertelement <16 x i8> %_msprop1124, i8 0, i64 12, !dbg !464
%417 = insertelement <16 x i8> %416, i8 %400, i64 12, !dbg !464
%_msprop1126 = insertelement <16 x i8> %_msprop1125, i8 %401, i64 13, !dbg !464
%418 = insertelement <16 x i8> %417, i8 %402, i64 13, !dbg !464
%419 = shufflevector <2 x i8> %404, <2 x i8> poison, <16 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !464
%_msprop1128 = shufflevector <16 x i8> %_msprop1126, <16 x i8> <i8 0, i8 0, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef, i8 undef>, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 16, i32 17>, !dbg !464
%420 = shufflevector <16 x i8> %418, <16 x i8> %419, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 16, i32 17>, !dbg !464
%421 = and <16 x i8> %_msprop1128, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>, !dbg !464
%422 = and <16 x i8> %420, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>, !dbg !464
%423 = bitcast i8* %cmpxchg16b to <16 x i8>*, !dbg !464
br i1 false, label %424, label %425, !dbg !464, !prof !301
424: ; preds = %377
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !464
unreachable, !dbg !464
425: ; preds = %377
%426 = ptrtoint <16 x i8>* %423 to i64, !dbg !464
%427 = xor i64 %426, 87960930222080, !dbg !464
%428 = inttoptr i64 %427 to <16 x i8>*, !dbg !464
store <16 x i8> %421, <16 x i8>* %428, align 1, !dbg !464
store <16 x i8> %422, <16 x i8>* %423, align 1, !dbg !464
%rdrand = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 65, !dbg !477
%429 = lshr i32 %_msprop, 30, !dbg !478
%and559 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 30, !dbg !478
%_msprop1131 = trunc i32 %429 to i8, !dbg !478
%430 = trunc i32 %and559 to i8, !dbg !478
%431 = and i8 %_msprop1131, 1, !dbg !478
%432 = and i8 %430, 1, !dbg !478
br i1 false, label %433, label %434, !dbg !478, !prof !301
433: ; preds = %425
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !478
unreachable, !dbg !478
434: ; preds = %425
%435 = ptrtoint i8* %rdrand to i64, !dbg !478
%436 = xor i64 %435, 87960930222080, !dbg !478
%437 = inttoptr i64 %436 to i8*, !dbg !478
store i8 %431, i8* %437, align 1, !dbg !478
store i8 %432, i8* %rdrand, align 1, !dbg !478
%rdseed = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 66, !dbg !479
%and565855 = lshr i64 %structured_feature_info0.sroa.0.0930, 50, !dbg !480
%438 = trunc i64 %and565855 to i8, !dbg !480
%439 = and i8 %438, 1, !dbg !480
br i1 false, label %440, label %441, !dbg !480, !prof !301
440: ; preds = %434
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !480
unreachable, !dbg !480
441: ; preds = %434
%442 = ptrtoint i8* %rdseed to i64, !dbg !480
%443 = xor i64 %442, 87960930222080, !dbg !480
%444 = inttoptr i64 %443 to i8*, !dbg !480
store i8 0, i8* %444, align 1, !dbg !480
store i8 %439, i8* %rdseed, align 1, !dbg !480
%sha = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 67, !dbg !481
%and571 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 29, !dbg !482
%445 = trunc i32 %and571 to i8, !dbg !482
%446 = and i8 %445, 1, !dbg !482
br i1 false, label %447, label %448, !dbg !482, !prof !301
447: ; preds = %441
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !482
unreachable, !dbg !482
448: ; preds = %441
%449 = ptrtoint i8* %sha to i64, !dbg !482
%450 = xor i64 %449, 87960930222080, !dbg !482
%451 = inttoptr i64 %450 to i8*, !dbg !482
store i8 0, i8* %451, align 1, !dbg !482
store i8 %446, i8* %sha, align 1, !dbg !482
%452 = xor i32 %vendor, 11, !dbg !483
%453 = icmp eq i32 %452, 0, !dbg !483
%cmp576 = icmp eq i32 %vendor, 11, !dbg !483
br i1 false, label %454, label %455, !dbg !484, !prof !301
454: ; preds = %448
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !484
unreachable, !dbg !484
455: ; preds = %448
br i1 %cmp576, label %if.then578, label %if.end611, !dbg !484
if.then578: ; preds = %455
call void @llvm.dbg.value(metadata i32 -1073741824, metadata !322, metadata !DIExpression()) #5, !dbg !485
%456 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741824) #6, !dbg !487, !srcloc !331
%asmresult.i900 = extractvalue { i32, i32, i32, i32 } %456, 0, !dbg !487
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !485
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !485
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !485
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !485
call void @llvm.dbg.value(metadata i64 undef, metadata !284, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !488
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i900), metadata !284, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !488
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !287, metadata !DIExpression()), !dbg !488
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !288, metadata !DIExpression()), !dbg !488
%457 = icmp ugt i32 %asmresult.i900, -1073741824, !dbg !489
br i1 false, label %458, label %459, !dbg !490, !prof !301
458: ; preds = %if.then578
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !490
unreachable, !dbg !490
459: ; preds = %if.then578
br i1 %457, label %if.then583, label %if.end611, !dbg !490
if.then583: ; preds = %459
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !322, metadata !DIExpression()) #5, !dbg !491
%460 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741823) #6, !dbg !493, !srcloc !331
%asmresult4.i917 = extractvalue { i32, i32, i32, i32 } %460, 3, !dbg !493
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #5, !dbg !491
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #5, !dbg !491
call void @llvm.dbg.value(metadata i32 undef, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #5, !dbg !491
call void @llvm.dbg.value(metadata i32 %asmresult4.i917, metadata !327, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #5, !dbg !491
call void @llvm.dbg.value(metadata i64 undef, metadata !289, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !494
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult4.i917, i32 undef), metadata !289, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !494
call void @llvm.dbg.value(metadata i32 12, metadata !292, metadata !DIExpression()), !dbg !494
%and586 = and i32 %asmresult4.i917, 12, !dbg !495
%461 = xor i32 %and586, 12, !dbg !496
%462 = icmp eq i32 %461, 0, !dbg !496
%cmp587 = icmp eq i32 %and586, 12, !dbg !496
%rng = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 68, !dbg !497
%frombool589 = zext i1 %cmp587 to i8, !dbg !498
br i1 false, label %463, label %464, !dbg !498, !prof !301
463: ; preds = %if.then583
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !498
unreachable, !dbg !498
464: ; preds = %if.then583
%465 = ptrtoint i8* %rng to i64, !dbg !498
%466 = xor i64 %465, 87960930222080, !dbg !498
%467 = inttoptr i64 %466 to i8*, !dbg !498
store i8 0, i8* %467, align 1, !dbg !498
store i8 %frombool589, i8* %rng, align 1, !dbg !498
call void @llvm.dbg.value(metadata i32 192, metadata !293, metadata !DIExpression()), !dbg !494
%ace = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 69, !dbg !499
call void @llvm.dbg.value(metadata i32 768, metadata !294, metadata !DIExpression()), !dbg !494
%ace2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 70, !dbg !500
call void @llvm.dbg.value(metadata i32 3072, metadata !295, metadata !DIExpression()), !dbg !494
%phe = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 71, !dbg !501
call void @llvm.dbg.value(metadata i32 12288, metadata !296, metadata !DIExpression()), !dbg !494
%468 = insertelement <4 x i32> poison, i32 %asmresult4.i917, i64 0, !dbg !502
%shuffle = shufflevector <4 x i32> %468, <4 x i32> poison, <4 x i32> zeroinitializer, !dbg !502
%469 = and <4 x i32> %shuffle, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !502
%470 = xor <4 x i32> %469, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !503
%471 = icmp eq <4 x i32> %470, zeroinitializer, !dbg !503
%472 = icmp eq <4 x i32> %469, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !503
%473 = extractelement <4 x i1> %472, i64 3, !dbg !504
%frombool594 = zext i1 %473 to i8, !dbg !504
br i1 false, label %474, label %475, !dbg !504, !prof !301
474: ; preds = %464
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !504
unreachable, !dbg !504
475: ; preds = %464
%476 = ptrtoint i8* %ace to i64, !dbg !504
%477 = xor i64 %476, 87960930222080, !dbg !504
%478 = inttoptr i64 %477 to i8*, !dbg !504
store i8 0, i8* %478, align 1, !dbg !504
store i8 %frombool594, i8* %ace, align 1, !dbg !504
%479 = extractelement <4 x i1> %472, i64 2, !dbg !505
%frombool599 = zext i1 %479 to i8, !dbg !505
br i1 false, label %480, label %481, !dbg !505, !prof !301
480: ; preds = %475
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !505
unreachable, !dbg !505
481: ; preds = %475
%482 = ptrtoint i8* %ace2 to i64, !dbg !505
%483 = xor i64 %482, 87960930222080, !dbg !505
%484 = inttoptr i64 %483 to i8*, !dbg !505
store i8 0, i8* %484, align 1, !dbg !505
store i8 %frombool599, i8* %ace2, align 1, !dbg !505
%485 = extractelement <4 x i1> %472, i64 1, !dbg !506
%frombool604 = zext i1 %485 to i8, !dbg !506
br i1 false, label %486, label %487, !dbg !506, !prof !301
486: ; preds = %481
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !506
unreachable, !dbg !506
487: ; preds = %481
%488 = ptrtoint i8* %phe to i64, !dbg !506
%489 = xor i64 %488, 87960930222080, !dbg !506
%490 = inttoptr i64 %489 to i8*, !dbg !506
store i8 0, i8* %490, align 1, !dbg !506
store i8 %frombool604, i8* %phe, align 1, !dbg !506
%pmm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 72, !dbg !507
%491 = extractelement <4 x i1> %472, i64 0, !dbg !508
%frombool609 = zext i1 %491 to i8, !dbg !508
br i1 false, label %492, label %493, !dbg !508, !prof !301
492: ; preds = %487
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !508
unreachable, !dbg !508
493: ; preds = %487
%494 = ptrtoint i8* %pmm to i64, !dbg !508
%495 = xor i64 %494, 87960930222080, !dbg !508
%496 = inttoptr i64 %495 to i8*, !dbg !508
store i8 0, i8* %496, align 1, !dbg !508
store i8 %frombool609, i8* %pmm, align 1, !dbg !508
br label %if.end611, !dbg !509
if.end611: ; preds = %459, %493, %455
%lwp = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 73, !dbg !510
%497 = lshr i64 %1, 15, !dbg !511
%and613856 = lshr i64 %extended_info.coerce1, 15, !dbg !511
%_msprop1162 = trunc i64 %497 to i8, !dbg !511
%498 = trunc i64 %and613856 to i8, !dbg !511
%499 = and i8 %_msprop1162, 1, !dbg !511
%500 = and i8 %498, 1, !dbg !511
br i1 false, label %501, label %502, !dbg !511, !prof !301
501: ; preds = %if.end611
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !511
unreachable, !dbg !511
502: ; preds = %if.end611
%503 = ptrtoint i8* %lwp to i64, !dbg !511
%504 = xor i64 %503, 87960930222080, !dbg !511
%505 = inttoptr i64 %504 to i8*, !dbg !511
store i8 %499, i8* %505, align 1, !dbg !511
store i8 %500, i8* %lwp, align 1, !dbg !511
%506 = lshr i32 %_msprop940, 27, !dbg !512
%and619 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 27, !dbg !512
%_msprop1163 = trunc i32 %506 to i8, !dbg !512
%507 = trunc i32 %and619 to i8, !dbg !512
%508 = and i8 %_msprop1163, 1, !dbg !512
%509 = and i8 %507, 1, !dbg !512
br i1 false, label %510, label %511, !dbg !512, !prof !301
510: ; preds = %502
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !512
unreachable, !dbg !512
511: ; preds = %502
%512 = ptrtoint i8* %5 to i64, !dbg !512
%513 = xor i64 %512, 87960930222080, !dbg !512
%514 = inttoptr i64 %513 to i8*, !dbg !512
store i8 %508, i8* %514, align 1, !dbg !512
store i8 %509, i8* %5, align 1, !dbg !512
%rdpid = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 1, !dbg !513
%and625857 = lshr i64 %structured_feature_info0.sroa.25.0932, 22, !dbg !514
%515 = trunc i64 %and625857 to i8, !dbg !514
%516 = and i8 %515, 1, !dbg !514
br i1 false, label %517, label %518, !dbg !514, !prof !301
517: ; preds = %511
call void @__msan_warning_with_origin_noreturn(i32 0) #4, !dbg !514
unreachable, !dbg !514
518: ; preds = %511
%519 = ptrtoint i8* %rdpid to i64, !dbg !514
%520 = xor i64 %519, 87960930222080, !dbg !514
%521 = inttoptr i64 %520 to i8*, !dbg !514
store i8 0, i8* %521, align 1, !dbg !514
store i8 %516, i8* %rdpid, align 1, !dbg !514
ret void, !dbg !515
}
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
declare void @__msan_init()
; Function Attrs: nounwind
define internal void @msan.module_ctor() #3 {
call void @__msan_init()
ret void
}
declare i8* @__msan_memset(i8*, i32, i64)
declare void @__msan_warning_with_origin_noreturn(i32)
attributes #0 = { nounwind optsize sanitize_memory "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="x86-64-v3" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #2 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #3 = { nounwind "frame-pointer"="all" }
attributes #4 = { nomerge }
attributes #5 = { nounwind }
attributes #6 = { nounwind readnone }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!160, !161, !162, !163, !164}
!llvm.ident = !{!165}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !154, nameTableKind: None)
!1 = !DIFile(filename: "cpuinfo/src/x86/isa.c", directory: "workspace", checksumkind: CSK_MD5, checksum: "1f066767a48d692a7df3bd0b30681f63")
!2 = !{!3, !37}
!3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_vendor", file: !4, line: 137, baseType: !5, size: 32, elements: !6)
!4 = !DIFile(filename: "cpuinfo/include/cpuinfo.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "b2d9902226e7212a1e7a8aecca87c8f4")
!5 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!6 = !{!7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36}
!7 = !DIEnumerator(name: "cpuinfo_vendor_unknown", value: 0)
!8 = !DIEnumerator(name: "cpuinfo_vendor_intel", value: 1)
!9 = !DIEnumerator(name: "cpuinfo_vendor_amd", value: 2)
!10 = !DIEnumerator(name: "cpuinfo_vendor_arm", value: 3)
!11 = !DIEnumerator(name: "cpuinfo_vendor_qualcomm", value: 4)
!12 = !DIEnumerator(name: "cpuinfo_vendor_apple", value: 5)
!13 = !DIEnumerator(name: "cpuinfo_vendor_samsung", value: 6)
!14 = !DIEnumerator(name: "cpuinfo_vendor_nvidia", value: 7)
!15 = !DIEnumerator(name: "cpuinfo_vendor_mips", value: 8)
!16 = !DIEnumerator(name: "cpuinfo_vendor_ibm", value: 9)
!17 = !DIEnumerator(name: "cpuinfo_vendor_ingenic", value: 10)
!18 = !DIEnumerator(name: "cpuinfo_vendor_via", value: 11)
!19 = !DIEnumerator(name: "cpuinfo_vendor_cavium", value: 12)
!20 = !DIEnumerator(name: "cpuinfo_vendor_broadcom", value: 13)
!21 = !DIEnumerator(name: "cpuinfo_vendor_apm", value: 14)
!22 = !DIEnumerator(name: "cpuinfo_vendor_huawei", value: 15)
!23 = !DIEnumerator(name: "cpuinfo_vendor_hygon", value: 16)
!24 = !DIEnumerator(name: "cpuinfo_vendor_texas_instruments", value: 30)
!25 = !DIEnumerator(name: "cpuinfo_vendor_marvell", value: 31)
!26 = !DIEnumerator(name: "cpuinfo_vendor_rdc", value: 32)
!27 = !DIEnumerator(name: "cpuinfo_vendor_dmp", value: 33)
!28 = !DIEnumerator(name: "cpuinfo_vendor_motorola", value: 34)
!29 = !DIEnumerator(name: "cpuinfo_vendor_transmeta", value: 50)
!30 = !DIEnumerator(name: "cpuinfo_vendor_cyrix", value: 51)
!31 = !DIEnumerator(name: "cpuinfo_vendor_rise", value: 52)
!32 = !DIEnumerator(name: "cpuinfo_vendor_nsc", value: 53)
!33 = !DIEnumerator(name: "cpuinfo_vendor_sis", value: 54)
!34 = !DIEnumerator(name: "cpuinfo_vendor_nexgen", value: 55)
!35 = !DIEnumerator(name: "cpuinfo_vendor_umc", value: 56)
!36 = !DIEnumerator(name: "cpuinfo_vendor_dec", value: 57)
!37 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_uarch", file: !4, line: 266, baseType: !5, size: 32, elements: !38)
!38 = !{!39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79, !80, !81, !82, !83, !84, !85, !86, !87, !88, !89, !90, !91, !92, !93, !94, !95, !96, !97, !98, !99, !100, !101, !102, !103, !104, !105, !106, !107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !117, !118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131, !132, !133, !134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144, !145, !146, !147, !148, !149, !150, !151, !152, !153}
!39 = !DIEnumerator(name: "cpuinfo_uarch_unknown", value: 0)
!40 = !DIEnumerator(name: "cpuinfo_uarch_p5", value: 1048832)
!41 = !DIEnumerator(name: "cpuinfo_uarch_quark", value: 1048833)
!42 = !DIEnumerator(name: "cpuinfo_uarch_p6", value: 1049088)
!43 = !DIEnumerator(name: "cpuinfo_uarch_dothan", value: 1049089)
!44 = !DIEnumerator(name: "cpuinfo_uarch_yonah", value: 1049090)
!45 = !DIEnumerator(name: "cpuinfo_uarch_conroe", value: 1049091)
!46 = !DIEnumerator(name: "cpuinfo_uarch_penryn", value: 1049092)
!47 = !DIEnumerator(name: "cpuinfo_uarch_nehalem", value: 1049093)
!48 = !DIEnumerator(name: "cpuinfo_uarch_sandy_bridge", value: 1049094)
!49 = !DIEnumerator(name: "cpuinfo_uarch_ivy_bridge", value: 1049095)
!50 = !DIEnumerator(name: "cpuinfo_uarch_haswell", value: 1049096)
!51 = !DIEnumerator(name: "cpuinfo_uarch_broadwell", value: 1049097)
!52 = !DIEnumerator(name: "cpuinfo_uarch_sky_lake", value: 1049098)
!53 = !DIEnumerator(name: "cpuinfo_uarch_kaby_lake", value: 1049098)
!54 = !DIEnumerator(name: "cpuinfo_uarch_palm_cove", value: 1049099)
!55 = !DIEnumerator(name: "cpuinfo_uarch_sunny_cove", value: 1049100)
!56 = !DIEnumerator(name: "cpuinfo_uarch_willamette", value: 1049344)
!57 = !DIEnumerator(name: "cpuinfo_uarch_prescott", value: 1049345)
!58 = !DIEnumerator(name: "cpuinfo_uarch_bonnell", value: 1049600)
!59 = !DIEnumerator(name: "cpuinfo_uarch_saltwell", value: 1049601)
!60 = !DIEnumerator(name: "cpuinfo_uarch_silvermont", value: 1049602)
!61 = !DIEnumerator(name: "cpuinfo_uarch_airmont", value: 1049603)
!62 = !DIEnumerator(name: "cpuinfo_uarch_goldmont", value: 1049604)
!63 = !DIEnumerator(name: "cpuinfo_uarch_goldmont_plus", value: 1049605)
!64 = !DIEnumerator(name: "cpuinfo_uarch_knights_ferry", value: 1049856)
!65 = !DIEnumerator(name: "cpuinfo_uarch_knights_corner", value: 1049857)
!66 = !DIEnumerator(name: "cpuinfo_uarch_knights_landing", value: 1049858)
!67 = !DIEnumerator(name: "cpuinfo_uarch_knights_hill", value: 1049859)
!68 = !DIEnumerator(name: "cpuinfo_uarch_knights_mill", value: 1049860)
!69 = !DIEnumerator(name: "cpuinfo_uarch_xscale", value: 1050112)
!70 = !DIEnumerator(name: "cpuinfo_uarch_k5", value: 2097408)
!71 = !DIEnumerator(name: "cpuinfo_uarch_k6", value: 2097409)
!72 = !DIEnumerator(name: "cpuinfo_uarch_k7", value: 2097410)
!73 = !DIEnumerator(name: "cpuinfo_uarch_k8", value: 2097411)
!74 = !DIEnumerator(name: "cpuinfo_uarch_k10", value: 2097412)
!75 = !DIEnumerator(name: "cpuinfo_uarch_bulldozer", value: 2097413)
!76 = !DIEnumerator(name: "cpuinfo_uarch_piledriver", value: 2097414)
!77 = !DIEnumerator(name: "cpuinfo_uarch_steamroller", value: 2097415)
!78 = !DIEnumerator(name: "cpuinfo_uarch_excavator", value: 2097416)
!79 = !DIEnumerator(name: "cpuinfo_uarch_zen", value: 2097417)
!80 = !DIEnumerator(name: "cpuinfo_uarch_zen2", value: 2097418)
!81 = !DIEnumerator(name: "cpuinfo_uarch_zen3", value: 2097419)
!82 = !DIEnumerator(name: "cpuinfo_uarch_geode", value: 2097664)
!83 = !DIEnumerator(name: "cpuinfo_uarch_bobcat", value: 2097665)
!84 = !DIEnumerator(name: "cpuinfo_uarch_jaguar", value: 2097666)
!85 = !DIEnumerator(name: "cpuinfo_uarch_puma", value: 2097667)
!86 = !DIEnumerator(name: "cpuinfo_uarch_arm7", value: 3145984)
!87 = !DIEnumerator(name: "cpuinfo_uarch_arm9", value: 3145985)
!88 = !DIEnumerator(name: "cpuinfo_uarch_arm11", value: 3145986)
!89 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a5", value: 3146245)
!90 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a7", value: 3146247)
!91 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a8", value: 3146248)
!92 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a9", value: 3146249)
!93 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a12", value: 3146258)
!94 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a15", value: 3146261)
!95 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a17", value: 3146263)
!96 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a32", value: 3146546)
!97 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a35", value: 3146549)
!98 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a53", value: 3146579)
!99 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55r0", value: 3146580)
!100 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55", value: 3146581)
!101 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a57", value: 3146583)
!102 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a65", value: 3146597)
!103 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a72", value: 3146610)
!104 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a73", value: 3146611)
!105 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a75", value: 3146613)
!106 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76", value: 3146614)
!107 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a77", value: 3146615)
!108 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a78", value: 3146616)
!109 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_n1", value: 3146752)
!110 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_e1", value: 3146753)
!111 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x1", value: 3147008)
!112 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x2", value: 3147010)
!113 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a510", value: 3147089)
!114 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a710", value: 3147121)
!115 = !DIEnumerator(name: "cpuinfo_uarch_scorpion", value: 4194560)
!116 = !DIEnumerator(name: "cpuinfo_uarch_krait", value: 4194561)
!117 = !DIEnumerator(name: "cpuinfo_uarch_kryo", value: 4194562)
!118 = !DIEnumerator(name: "cpuinfo_uarch_falkor", value: 4194563)
!119 = !DIEnumerator(name: "cpuinfo_uarch_saphira", value: 4194564)
!120 = !DIEnumerator(name: "cpuinfo_uarch_denver", value: 5243136)
!121 = !DIEnumerator(name: "cpuinfo_uarch_denver2", value: 5243137)
!122 = !DIEnumerator(name: "cpuinfo_uarch_carmel", value: 5243138)
!123 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m1", value: 6291712)
!124 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m2", value: 6291713)
!125 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m3", value: 6291714)
!126 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m4", value: 6291715)
!127 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m5", value: 6291716)
!128 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76ae", value: 3146614)
!129 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m1", value: 6291712)
!130 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m2", value: 6291713)
!131 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m3", value: 6291714)
!132 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m4", value: 6291715)
!133 = !DIEnumerator(name: "cpuinfo_uarch_swift", value: 7340288)
!134 = !DIEnumerator(name: "cpuinfo_uarch_cyclone", value: 7340289)
!135 = !DIEnumerator(name: "cpuinfo_uarch_typhoon", value: 7340290)
!136 = !DIEnumerator(name: "cpuinfo_uarch_twister", value: 7340291)
!137 = !DIEnumerator(name: "cpuinfo_uarch_hurricane", value: 7340292)
!138 = !DIEnumerator(name: "cpuinfo_uarch_monsoon", value: 7340293)
!139 = !DIEnumerator(name: "cpuinfo_uarch_mistral", value: 7340294)
!140 = !DIEnumerator(name: "cpuinfo_uarch_vortex", value: 7340295)
!141 = !DIEnumerator(name: "cpuinfo_uarch_tempest", value: 7340296)
!142 = !DIEnumerator(name: "cpuinfo_uarch_lightning", value: 7340297)
!143 = !DIEnumerator(name: "cpuinfo_uarch_thunder", value: 7340298)
!144 = !DIEnumerator(name: "cpuinfo_uarch_firestorm", value: 7340299)
!145 = !DIEnumerator(name: "cpuinfo_uarch_icestorm", value: 7340300)
!146 = !DIEnumerator(name: "cpuinfo_uarch_thunderx", value: 8388864)
!147 = !DIEnumerator(name: "cpuinfo_uarch_thunderx2", value: 8389120)
!148 = !DIEnumerator(name: "cpuinfo_uarch_pj4", value: 9437440)
!149 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b15", value: 10486016)
!150 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b53", value: 10486017)
!151 = !DIEnumerator(name: "cpuinfo_uarch_xgene", value: 11534592)
!152 = !DIEnumerator(name: "cpuinfo_uarch_dhyana", value: 16777472)
!153 = !DIEnumerator(name: "cpuinfo_uarch_taishan_v110", value: 12583168)
!154 = !{!155}
!155 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint64_t", file: !156, line: 27, baseType: !157)
!156 = !DIFile(filename: "glibc/include/bits/stdint-uintn.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "9754ebe022edbe8d7928fa709e442f0d")
!157 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint64_t", file: !158, line: 44, baseType: !159)
!158 = !DIFile(filename: "glibc/include/bits/types.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "25679ba19d359e314e48661b21f5aa1f")
!159 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned)
!160 = !{i32 7, !"Dwarf Version", i32 5}
!161 = !{i32 2, !"Debug Info Version", i32 3}
!162 = !{i32 1, !"wchar_size", i32 4}
!163 = !{i32 7, !"PIC Level", i32 2}
!164 = !{i32 7, !"frame-pointer", i32 2}
!165 = !{!"clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab"}
!166 = distinct !DISubprogram(name: "cpuinfo_x86_detect_isa", scope: !1, file: !1, line: 38, type: !167, scopeLine: 42, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !256)
!167 = !DISubroutineType(types: !168)
!168 = !{!169, !246, !246, !251, !251, !3, !37}
!169 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuinfo_x86_isa", file: !4, line: 670, size: 592, elements: !170)
!170 = !{!171, !173, !174, !175, !176, !177, !178, !179, !180, !181, !182, !183, !184, !185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199, !200, !201, !202, !203, !204, !205, !206, !207, !208, !209, !210, !211, !212, !213, !214, !215, !216, !217, !218, !219, !220, !221, !222, !223, !224, !225, !226, !227, !228, !229, !230, !231, !232, !233, !234, !235, !236, !237, !238, !239, !240, !241, !242, !243, !244, !245}
!171 = !DIDerivedType(tag: DW_TAG_member, name: "rdtscp", scope: !169, file: !4, line: 674, baseType: !172, size: 8)
!172 = !DIBasicType(name: "_Bool", size: 8, encoding: DW_ATE_boolean)
!173 = !DIDerivedType(tag: DW_TAG_member, name: "rdpid", scope: !169, file: !4, line: 675, baseType: !172, size: 8, offset: 8)
!174 = !DIDerivedType(tag: DW_TAG_member, name: "sysenter", scope: !169, file: !4, line: 676, baseType: !172, size: 8, offset: 16)
!175 = !DIDerivedType(tag: DW_TAG_member, name: "msr", scope: !169, file: !4, line: 680, baseType: !172, size: 8, offset: 24)
!176 = !DIDerivedType(tag: DW_TAG_member, name: "clzero", scope: !169, file: !4, line: 681, baseType: !172, size: 8, offset: 32)
!177 = !DIDerivedType(tag: DW_TAG_member, name: "clflush", scope: !169, file: !4, line: 682, baseType: !172, size: 8, offset: 40)
!178 = !DIDerivedType(tag: DW_TAG_member, name: "clflushopt", scope: !169, file: !4, line: 683, baseType: !172, size: 8, offset: 48)
!179 = !DIDerivedType(tag: DW_TAG_member, name: "mwait", scope: !169, file: !4, line: 684, baseType: !172, size: 8, offset: 56)
!180 = !DIDerivedType(tag: DW_TAG_member, name: "mwaitx", scope: !169, file: !4, line: 685, baseType: !172, size: 8, offset: 64)
!181 = !DIDerivedType(tag: DW_TAG_member, name: "fxsave", scope: !169, file: !4, line: 689, baseType: !172, size: 8, offset: 72)
!182 = !DIDerivedType(tag: DW_TAG_member, name: "xsave", scope: !169, file: !4, line: 690, baseType: !172, size: 8, offset: 80)
!183 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now", scope: !169, file: !4, line: 696, baseType: !172, size: 8, offset: 88)
!184 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now_plus", scope: !169, file: !4, line: 697, baseType: !172, size: 8, offset: 96)
!185 = !DIDerivedType(tag: DW_TAG_member, name: "prefetch", scope: !169, file: !4, line: 701, baseType: !172, size: 8, offset: 104)
!186 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchw", scope: !169, file: !4, line: 702, baseType: !172, size: 8, offset: 112)
!187 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchwt1", scope: !169, file: !4, line: 703, baseType: !172, size: 8, offset: 120)
!188 = !DIDerivedType(tag: DW_TAG_member, name: "sse3", scope: !169, file: !4, line: 709, baseType: !172, size: 8, offset: 128)
!189 = !DIDerivedType(tag: DW_TAG_member, name: "ssse3", scope: !169, file: !4, line: 710, baseType: !172, size: 8, offset: 136)
!190 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_1", scope: !169, file: !4, line: 711, baseType: !172, size: 8, offset: 144)
!191 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_2", scope: !169, file: !4, line: 712, baseType: !172, size: 8, offset: 152)
!192 = !DIDerivedType(tag: DW_TAG_member, name: "sse4a", scope: !169, file: !4, line: 713, baseType: !172, size: 8, offset: 160)
!193 = !DIDerivedType(tag: DW_TAG_member, name: "misaligned_sse", scope: !169, file: !4, line: 714, baseType: !172, size: 8, offset: 168)
!194 = !DIDerivedType(tag: DW_TAG_member, name: "avx", scope: !169, file: !4, line: 715, baseType: !172, size: 8, offset: 176)
!195 = !DIDerivedType(tag: DW_TAG_member, name: "fma3", scope: !169, file: !4, line: 716, baseType: !172, size: 8, offset: 184)
!196 = !DIDerivedType(tag: DW_TAG_member, name: "fma4", scope: !169, file: !4, line: 717, baseType: !172, size: 8, offset: 192)
!197 = !DIDerivedType(tag: DW_TAG_member, name: "xop", scope: !169, file: !4, line: 718, baseType: !172, size: 8, offset: 200)
!198 = !DIDerivedType(tag: DW_TAG_member, name: "f16c", scope: !169, file: !4, line: 719, baseType: !172, size: 8, offset: 208)
!199 = !DIDerivedType(tag: DW_TAG_member, name: "avx2", scope: !169, file: !4, line: 720, baseType: !172, size: 8, offset: 216)
!200 = !DIDerivedType(tag: DW_TAG_member, name: "avx512f", scope: !169, file: !4, line: 721, baseType: !172, size: 8, offset: 224)
!201 = !DIDerivedType(tag: DW_TAG_member, name: "avx512pf", scope: !169, file: !4, line: 722, baseType: !172, size: 8, offset: 232)
!202 = !DIDerivedType(tag: DW_TAG_member, name: "avx512er", scope: !169, file: !4, line: 723, baseType: !172, size: 8, offset: 240)
!203 = !DIDerivedType(tag: DW_TAG_member, name: "avx512cd", scope: !169, file: !4, line: 724, baseType: !172, size: 8, offset: 248)
!204 = !DIDerivedType(tag: DW_TAG_member, name: "avx512dq", scope: !169, file: !4, line: 725, baseType: !172, size: 8, offset: 256)
!205 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bw", scope: !169, file: !4, line: 726, baseType: !172, size: 8, offset: 264)
!206 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vl", scope: !169, file: !4, line: 727, baseType: !172, size: 8, offset: 272)
!207 = !DIDerivedType(tag: DW_TAG_member, name: "avx512ifma", scope: !169, file: !4, line: 728, baseType: !172, size: 8, offset: 280)
!208 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi", scope: !169, file: !4, line: 729, baseType: !172, size: 8, offset: 288)
!209 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi2", scope: !169, file: !4, line: 730, baseType: !172, size: 8, offset: 296)
!210 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bitalg", scope: !169, file: !4, line: 731, baseType: !172, size: 8, offset: 304)
!211 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vpopcntdq", scope: !169, file: !4, line: 732, baseType: !172, size: 8, offset: 312)
!212 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vnni", scope: !169, file: !4, line: 733, baseType: !172, size: 8, offset: 320)
!213 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bf16", scope: !169, file: !4, line: 734, baseType: !172, size: 8, offset: 328)
!214 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vp2intersect", scope: !169, file: !4, line: 735, baseType: !172, size: 8, offset: 336)
!215 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4vnniw", scope: !169, file: !4, line: 736, baseType: !172, size: 8, offset: 344)
!216 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4fmaps", scope: !169, file: !4, line: 737, baseType: !172, size: 8, offset: 352)
!217 = !DIDerivedType(tag: DW_TAG_member, name: "hle", scope: !169, file: !4, line: 738, baseType: !172, size: 8, offset: 360)
!218 = !DIDerivedType(tag: DW_TAG_member, name: "rtm", scope: !169, file: !4, line: 739, baseType: !172, size: 8, offset: 368)
!219 = !DIDerivedType(tag: DW_TAG_member, name: "xtest", scope: !169, file: !4, line: 740, baseType: !172, size: 8, offset: 376)
!220 = !DIDerivedType(tag: DW_TAG_member, name: "mpx", scope: !169, file: !4, line: 741, baseType: !172, size: 8, offset: 384)
!221 = !DIDerivedType(tag: DW_TAG_member, name: "cmpxchg16b", scope: !169, file: !4, line: 746, baseType: !172, size: 8, offset: 392)
!222 = !DIDerivedType(tag: DW_TAG_member, name: "clwb", scope: !169, file: !4, line: 747, baseType: !172, size: 8, offset: 400)
!223 = !DIDerivedType(tag: DW_TAG_member, name: "movbe", scope: !169, file: !4, line: 748, baseType: !172, size: 8, offset: 408)
!224 = !DIDerivedType(tag: DW_TAG_member, name: "lahf_sahf", scope: !169, file: !4, line: 750, baseType: !172, size: 8, offset: 416)
!225 = !DIDerivedType(tag: DW_TAG_member, name: "fs_gs_base", scope: !169, file: !4, line: 752, baseType: !172, size: 8, offset: 424)
!226 = !DIDerivedType(tag: DW_TAG_member, name: "lzcnt", scope: !169, file: !4, line: 753, baseType: !172, size: 8, offset: 432)
!227 = !DIDerivedType(tag: DW_TAG_member, name: "popcnt", scope: !169, file: !4, line: 754, baseType: !172, size: 8, offset: 440)
!228 = !DIDerivedType(tag: DW_TAG_member, name: "tbm", scope: !169, file: !4, line: 755, baseType: !172, size: 8, offset: 448)
!229 = !DIDerivedType(tag: DW_TAG_member, name: "bmi", scope: !169, file: !4, line: 756, baseType: !172, size: 8, offset: 456)
!230 = !DIDerivedType(tag: DW_TAG_member, name: "bmi2", scope: !169, file: !4, line: 757, baseType: !172, size: 8, offset: 464)
!231 = !DIDerivedType(tag: DW_TAG_member, name: "adx", scope: !169, file: !4, line: 758, baseType: !172, size: 8, offset: 472)
!232 = !DIDerivedType(tag: DW_TAG_member, name: "aes", scope: !169, file: !4, line: 759, baseType: !172, size: 8, offset: 480)
!233 = !DIDerivedType(tag: DW_TAG_member, name: "vaes", scope: !169, file: !4, line: 760, baseType: !172, size: 8, offset: 488)
!234 = !DIDerivedType(tag: DW_TAG_member, name: "pclmulqdq", scope: !169, file: !4, line: 761, baseType: !172, size: 8, offset: 496)
!235 = !DIDerivedType(tag: DW_TAG_member, name: "vpclmulqdq", scope: !169, file: !4, line: 762, baseType: !172, size: 8, offset: 504)
!236 = !DIDerivedType(tag: DW_TAG_member, name: "gfni", scope: !169, file: !4, line: 763, baseType: !172, size: 8, offset: 512)
!237 = !DIDerivedType(tag: DW_TAG_member, name: "rdrand", scope: !169, file: !4, line: 764, baseType: !172, size: 8, offset: 520)
!238 = !DIDerivedType(tag: DW_TAG_member, name: "rdseed", scope: !169, file: !4, line: 765, baseType: !172, size: 8, offset: 528)
!239 = !DIDerivedType(tag: DW_TAG_member, name: "sha", scope: !169, file: !4, line: 766, baseType: !172, size: 8, offset: 536)
!240 = !DIDerivedType(tag: DW_TAG_member, name: "rng", scope: !169, file: !4, line: 767, baseType: !172, size: 8, offset: 544)
!241 = !DIDerivedType(tag: DW_TAG_member, name: "ace", scope: !169, file: !4, line: 768, baseType: !172, size: 8, offset: 552)
!242 = !DIDerivedType(tag: DW_TAG_member, name: "ace2", scope: !169, file: !4, line: 769, baseType: !172, size: 8, offset: 560)
!243 = !DIDerivedType(tag: DW_TAG_member, name: "phe", scope: !169, file: !4, line: 770, baseType: !172, size: 8, offset: 568)
!244 = !DIDerivedType(tag: DW_TAG_member, name: "pmm", scope: !169, file: !4, line: 771, baseType: !172, size: 8, offset: 576)
!245 = !DIDerivedType(tag: DW_TAG_member, name: "lwp", scope: !169, file: !4, line: 772, baseType: !172, size: 8, offset: 584)
!246 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !247)
!247 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuid_regs", file: !248, line: 10, size: 128, elements: !249)
!248 = !DIFile(filename: "cpuinfo/src/x86/api.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "27c8ee589f06b55198de5debd23b68da")
!249 = !{!250, !253, !254, !255}
!250 = !DIDerivedType(tag: DW_TAG_member, name: "eax", scope: !247, file: !248, line: 11, baseType: !251, size: 32)
!251 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !156, line: 26, baseType: !252)
!252 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !158, line: 41, baseType: !5)
!253 = !DIDerivedType(tag: DW_TAG_member, name: "ebx", scope: !247, file: !248, line: 12, baseType: !251, size: 32, offset: 32)
!254 = !DIDerivedType(tag: DW_TAG_member, name: "ecx", scope: !247, file: !248, line: 13, baseType: !251, size: 32, offset: 64)
!255 = !DIDerivedType(tag: DW_TAG_member, name: "edx", scope: !247, file: !248, line: 14, baseType: !251, size: 32, offset: 96)
!256 = !{!257, !258, !259, !260, !261, !262, !263, !264, !265, !266, !268, !269, !270, !271, !272, !273, !276, !279, !281, !282, !283, !284, !287, !288, !289, !292, !293, !294, !295, !296}
!257 = !DILocalVariable(name: "basic_info", arg: 1, scope: !166, file: !1, line: 39, type: !246)
!258 = !DILocalVariable(name: "extended_info", arg: 2, scope: !166, file: !1, line: 39, type: !246)
!259 = !DILocalVariable(name: "max_base_index", arg: 3, scope: !166, file: !1, line: 40, type: !251)
!260 = !DILocalVariable(name: "max_extended_index", arg: 4, scope: !166, file: !1, line: 40, type: !251)
!261 = !DILocalVariable(name: "vendor", arg: 5, scope: !166, file: !1, line: 41, type: !3)
!262 = !DILocalVariable(name: "uarch", arg: 6, scope: !166, file: !1, line: 41, type: !37)
!263 = !DILocalVariable(name: "isa", scope: !166, file: !1, line: 43, type: !169)
!264 = !DILocalVariable(name: "structured_feature_info0", scope: !166, file: !1, line: 45, type: !246)
!265 = !DILocalVariable(name: "structured_feature_info1", scope: !166, file: !1, line: 47, type: !246)
!266 = !DILocalVariable(name: "processor_capacity_info_index", scope: !166, file: !1, line: 50, type: !267)
!267 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !251)
!268 = !DILocalVariable(name: "processor_capacity_info", scope: !166, file: !1, line: 51, type: !246)
!269 = !DILocalVariable(name: "avx_regs", scope: !166, file: !1, line: 55, type: !172)
!270 = !DILocalVariable(name: "avx512_regs", scope: !166, file: !1, line: 55, type: !172)
!271 = !DILocalVariable(name: "mpx_regs", scope: !166, file: !1, line: 55, type: !172)
!272 = !DILocalVariable(name: "osxsave_mask", scope: !166, file: !1, line: 61, type: !267)
!273 = !DILocalVariable(name: "xcr0_valid_bits", scope: !274, file: !1, line: 63, type: !155)
!274 = distinct !DILexicalBlock(scope: !275, file: !1, line: 62, column: 55)
!275 = distinct !DILexicalBlock(scope: !166, file: !1, line: 62, column: 6)
!276 = !DILocalVariable(name: "regs", scope: !277, file: !1, line: 65, type: !246)
!277 = distinct !DILexicalBlock(scope: !278, file: !1, line: 64, column: 30)
!278 = distinct !DILexicalBlock(scope: !274, file: !1, line: 64, column: 7)
!279 = !DILocalVariable(name: "xfeature_enabled_mask", scope: !274, file: !1, line: 69, type: !280)
!280 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !155)
!281 = !DILocalVariable(name: "avx_regs_mask", scope: !274, file: !1, line: 76, type: !280)
!282 = !DILocalVariable(name: "avx512_regs_mask", scope: !274, file: !1, line: 89, type: !280)
!283 = !DILocalVariable(name: "mpx_regs_mask", scope: !274, file: !1, line: 99, type: !280)
!284 = !DILocalVariable(name: "padlock_meta_info", scope: !285, file: !1, line: 657, type: !246)
!285 = distinct !DILexicalBlock(scope: !286, file: !1, line: 656, column: 36)
!286 = distinct !DILexicalBlock(scope: !166, file: !1, line: 656, column: 6)
!287 = !DILocalVariable(name: "max_padlock_index", scope: !285, file: !1, line: 658, type: !267)
!288 = !DILocalVariable(name: "padlock_info_index", scope: !285, file: !1, line: 659, type: !267)
!289 = !DILocalVariable(name: "padlock_info", scope: !290, file: !1, line: 661, type: !246)
!290 = distinct !DILexicalBlock(scope: !291, file: !1, line: 660, column: 48)
!291 = distinct !DILexicalBlock(scope: !285, file: !1, line: 660, column: 7)
!292 = !DILocalVariable(name: "padlock_rng_mask", scope: !290, file: !1, line: 668, type: !267)
!293 = !DILocalVariable(name: "padlock_ace_mask", scope: !290, file: !1, line: 676, type: !267)
!294 = !DILocalVariable(name: "padlock_ace2_mask", scope: !290, file: !1, line: 684, type: !267)
!295 = !DILocalVariable(name: "padlock_phe_mask", scope: !290, file: !1, line: 692, type: !267)
!296 = !DILocalVariable(name: "padlock_pmm_mask", scope: !290, file: !1, line: 700, type: !267)
!297 = !DILocation(line: 0, scope: !166)
!298 = !DILocation(line: 43, column: 25, scope: !166)
!299 = !DILocation(line: 46, column: 19, scope: !166)
!300 = !DILocation(line: 46, column: 3, scope: !166)
!301 = !{!"branch_weights", i32 1, i32 1000}
!302 = !DILocalVariable(name: "eax", arg: 1, scope: !303, file: !304, line: 43, type: !251)
!303 = distinct !DISubprogram(name: "cpuidex", scope: !304, file: !304, line: 43, type: !305, scopeLine: 43, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !307)
!304 = !DIFile(filename: "cpuinfo/src/x86/cpuid.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "f9e451aa7a48009ba003a034c14f0ac3")
!305 = !DISubroutineType(types: !306)
!306 = !{!247, !251, !251}
!307 = !{!302, !308, !309}
!308 = !DILocalVariable(name: "ecx", arg: 2, scope: !303, file: !304, line: 43, type: !251)
!309 = !DILocalVariable(name: "regs", scope: !303, file: !304, line: 54, type: !247)
!310 = !DILocation(line: 0, scope: !303, inlinedAt: !311)
!311 = distinct !DILocation(line: 46, column: 27, scope: !166)
!312 = !DILocation(line: 56, column: 5, scope: !303, inlinedAt: !311)
!313 = !{i64 2147921615, i64 2147921651, i64 2147921675}
!314 = !DILocation(line: 65, column: 4, scope: !303, inlinedAt: !311)
!315 = !DILocation(line: 0, scope: !303, inlinedAt: !316)
!316 = distinct !DILocation(line: 48, column: 27, scope: !166)
!317 = !DILocation(line: 56, column: 5, scope: !303, inlinedAt: !316)
!318 = !DILocation(line: 65, column: 4, scope: !303, inlinedAt: !316)
!319 = !DILocation(line: 48, column: 3, scope: !166)
!320 = !DILocation(line: 52, column: 23, scope: !166)
!321 = !DILocation(line: 52, column: 3, scope: !166)
!322 = !DILocalVariable(name: "eax", arg: 1, scope: !323, file: !304, line: 17, type: !251)
!323 = distinct !DISubprogram(name: "cpuid", scope: !304, file: !304, line: 17, type: !324, scopeLine: 17, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !326)
!324 = !DISubroutineType(types: !325)
!325 = !{!247, !251}
!326 = !{!322, !327}
!327 = !DILocalVariable(name: "regs", scope: !323, file: !304, line: 28, type: !247)
!328 = !DILocation(line: 0, scope: !323, inlinedAt: !329)
!329 = distinct !DILocation(line: 53, column: 4, scope: !166)
!330 = !DILocation(line: 30, column: 5, scope: !323, inlinedAt: !329)
!331 = !{i64 2147921400, i64 2147921436, i64 2147921460}
!332 = !DILocation(line: 62, column: 22, scope: !275)
!333 = !DILocation(line: 62, column: 38, scope: !275)
!334 = !DILocation(line: 62, column: 6, scope: !166)
!335 = !DILocation(line: 0, scope: !274)
!336 = !DILocation(line: 64, column: 22, scope: !278)
!337 = !DILocation(line: 64, column: 7, scope: !274)
!338 = !DILocation(line: 0, scope: !303, inlinedAt: !339)
!339 = distinct !DILocation(line: 65, column: 35, scope: !277)
!340 = !DILocation(line: 56, column: 5, scope: !303, inlinedAt: !339)
!341 = !DILocation(line: 65, column: 4, scope: !303, inlinedAt: !339)
!342 = !DILocation(line: 0, scope: !277)
!343 = !DILocation(line: 67, column: 3, scope: !277)
!344 = !DILocalVariable(name: "ext_ctrl_reg", arg: 1, scope: !345, file: !304, line: 70, type: !251)
!345 = distinct !DISubprogram(name: "xgetbv", scope: !304, file: !304, line: 70, type: !346, scopeLine: 70, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !348)
!346 = !DISubroutineType(cc: DW_CC_nocall, types: !347)
!347 = !{!155, !251}
!348 = !{!344, !349, !350}
!349 = !DILocalVariable(name: "lo", scope: !345, file: !304, line: 74, type: !251)
!350 = !DILocalVariable(name: "hi", scope: !345, file: !304, line: 74, type: !251)
!351 = !DILocation(line: 0, scope: !345, inlinedAt: !352)
!352 = distinct !DILocation(line: 69, column: 42, scope: !274)
!353 = !DILocation(line: 75, column: 3, scope: !345, inlinedAt: !352)
!354 = !{i64 371123}
!355 = !DILocation(line: 76, column: 34, scope: !345, inlinedAt: !352)
!356 = !DILocation(line: 77, column: 24, scope: !357)
!357 = distinct !DILexicalBlock(scope: !274, file: !1, line: 77, column: 7)
!358 = !DILocation(line: 77, column: 41, scope: !357)
!359 = !DILocation(line: 77, column: 7, scope: !274)
!360 = !DILocation(line: 100, column: 24, scope: !361)
!361 = distinct !DILexicalBlock(scope: !274, file: !1, line: 100, column: 7)
!362 = !DILocation(line: 100, column: 41, scope: !361)
!363 = !DILocation(line: 100, column: 7, scope: !274)
!364 = !DILocation(line: 103, column: 2, scope: !274)
!365 = !DILocation(line: 118, column: 6, scope: !166)
!366 = !DILocation(line: 118, column: 15, scope: !166)
!367 = !DILocation(line: 133, column: 31, scope: !166)
!368 = !DILocation(line: 133, column: 6, scope: !166)
!369 = !DILocation(line: 133, column: 10, scope: !166)
!370 = !DILocation(line: 139, column: 6, scope: !166)
!371 = !DILocation(line: 139, column: 13, scope: !166)
!372 = !DILocation(line: 145, column: 6, scope: !166)
!373 = !DILocation(line: 145, column: 14, scope: !166)
!374 = !DILocation(line: 151, column: 47, scope: !166)
!375 = !DILocation(line: 151, column: 6, scope: !166)
!376 = !DILocation(line: 151, column: 17, scope: !166)
!377 = !DILocation(line: 157, column: 6, scope: !166)
!378 = !DILocation(line: 157, column: 12, scope: !166)
!379 = !DILocation(line: 163, column: 6, scope: !166)
!380 = !DILocation(line: 163, column: 13, scope: !166)
!381 = !DILocation(line: 178, column: 8, scope: !382)
!382 = distinct !DILexicalBlock(scope: !166, file: !1, line: 170, column: 18)
!383 = !DILocation(line: 178, column: 15, scope: !382)
!384 = !DILocation(line: 186, column: 6, scope: !166)
!385 = !DILocation(line: 186, column: 12, scope: !166)
!386 = !DILocation(line: 215, column: 6, scope: !166)
!387 = !DILocation(line: 215, column: 18, scope: !166)
!388 = !DILocation(line: 221, column: 6, scope: !166)
!389 = !DILocation(line: 221, column: 23, scope: !166)
!390 = !DILocation(line: 239, column: 2, scope: !166)
!391 = !DILocation(line: 248, column: 41, scope: !392)
!392 = distinct !DILexicalBlock(scope: !166, file: !1, line: 239, column: 18)
!393 = !DILocation(line: 248, column: 86, scope: !392)
!394 = !DILocation(line: 248, column: 65, scope: !392)
!395 = !DILocation(line: 248, column: 20, scope: !392)
!396 = !DILocation(line: 249, column: 4, scope: !392)
!397 = !DILocation(line: 255, column: 20, scope: !392)
!398 = !DILocation(line: 256, column: 4, scope: !392)
!399 = !DILocation(line: 0, scope: !392)
!400 = !DILocation(line: 267, column: 2, scope: !166)
!401 = !DILocation(line: 0, scope: !402)
!402 = distinct !DILexicalBlock(scope: !166, file: !1, line: 267, column: 18)
!403 = !DILocation(line: 282, column: 6, scope: !166)
!404 = !DILocation(line: 282, column: 18, scope: !166)
!405 = !DILocation(line: 302, column: 6, scope: !166)
!406 = !DILocation(line: 302, column: 11, scope: !166)
!407 = !DILocation(line: 334, column: 6, scope: !166)
!408 = !DILocation(line: 334, column: 12, scope: !166)
!409 = !DILocation(line: 341, column: 6, scope: !166)
!410 = !DILocation(line: 341, column: 13, scope: !166)
!411 = !DILocation(line: 347, column: 6, scope: !166)
!412 = !DILocation(line: 347, column: 13, scope: !166)
!413 = !DILocation(line: 353, column: 6, scope: !166)
!414 = !DILocation(line: 353, column: 12, scope: !166)
!415 = !DILocation(line: 359, column: 6, scope: !166)
!416 = !DILocation(line: 359, column: 21, scope: !166)
!417 = !DILocation(line: 365, column: 21, scope: !166)
!418 = !DILocation(line: 365, column: 6, scope: !166)
!419 = !DILocation(line: 365, column: 10, scope: !166)
!420 = !DILocation(line: 413, column: 29, scope: !166)
!421 = !DILocation(line: 413, column: 6, scope: !166)
!422 = !DILocation(line: 413, column: 15, scope: !166)
!423 = !DILocation(line: 419, column: 29, scope: !166)
!424 = !DILocation(line: 419, column: 6, scope: !166)
!425 = !DILocation(line: 419, column: 15, scope: !166)
!426 = !DILocation(line: 425, column: 29, scope: !166)
!427 = !DILocation(line: 425, column: 6, scope: !166)
!428 = !DILocation(line: 431, column: 29, scope: !166)
!429 = !DILocation(line: 437, column: 29, scope: !166)
!430 = !DILocation(line: 443, column: 31, scope: !166)
!431 = !DILocation(line: 449, column: 31, scope: !166)
!432 = !DILocation(line: 455, column: 32, scope: !166)
!433 = !DILocation(line: 461, column: 33, scope: !166)
!434 = !DILocation(line: 425, column: 15, scope: !166)
!435 = !DILocation(line: 473, column: 31, scope: !166)
!436 = !DILocation(line: 473, column: 6, scope: !166)
!437 = !DILocation(line: 473, column: 17, scope: !166)
!438 = !DILocation(line: 479, column: 34, scope: !166)
!439 = !DILocation(line: 479, column: 6, scope: !166)
!440 = !DILocation(line: 479, column: 20, scope: !166)
!441 = !DILocation(line: 485, column: 34, scope: !166)
!442 = !DILocation(line: 485, column: 6, scope: !166)
!443 = !DILocation(line: 485, column: 20, scope: !166)
!444 = !DILocation(line: 491, column: 39, scope: !166)
!445 = !DILocation(line: 491, column: 6, scope: !166)
!446 = !DILocation(line: 491, column: 25, scope: !166)
!447 = !DILocation(line: 497, column: 31, scope: !166)
!448 = !DILocation(line: 497, column: 6, scope: !166)
!449 = !DILocation(line: 497, column: 17, scope: !166)
!450 = !DILocation(line: 503, column: 6, scope: !166)
!451 = !DILocation(line: 503, column: 10, scope: !166)
!452 = !DILocation(line: 509, column: 44, scope: !166)
!453 = !DILocation(line: 509, column: 13, scope: !166)
!454 = !DILocation(line: 509, column: 6, scope: !166)
!455 = !DILocation(line: 509, column: 10, scope: !166)
!456 = !DILocation(line: 515, column: 18, scope: !166)
!457 = !DILocation(line: 515, column: 22, scope: !166)
!458 = !DILocation(line: 515, column: 6, scope: !166)
!459 = !DILocation(line: 515, column: 12, scope: !166)
!460 = !DILocation(line: 521, column: 21, scope: !166)
!461 = !DILocation(line: 521, column: 6, scope: !166)
!462 = !DILocation(line: 521, column: 10, scope: !166)
!463 = !DILocation(line: 543, column: 6, scope: !166)
!464 = !DILocation(line: 543, column: 17, scope: !166)
!465 = !DILocation(line: 549, column: 11, scope: !166)
!466 = !DILocation(line: 555, column: 12, scope: !166)
!467 = !DILocation(line: 570, column: 17, scope: !166)
!468 = !DILocation(line: 576, column: 12, scope: !166)
!469 = !DILocation(line: 582, column: 13, scope: !166)
!470 = !DILocation(line: 588, column: 10, scope: !166)
!471 = !DILocation(line: 594, column: 10, scope: !166)
!472 = !DILocation(line: 606, column: 10, scope: !166)
!473 = !DILocation(line: 612, column: 10, scope: !166)
!474 = !DILocation(line: 618, column: 11, scope: !166)
!475 = !DILocation(line: 624, column: 16, scope: !166)
!476 = !DILocation(line: 630, column: 17, scope: !166)
!477 = !DILocation(line: 642, column: 6, scope: !166)
!478 = !DILocation(line: 642, column: 13, scope: !166)
!479 = !DILocation(line: 648, column: 6, scope: !166)
!480 = !DILocation(line: 648, column: 13, scope: !166)
!481 = !DILocation(line: 654, column: 6, scope: !166)
!482 = !DILocation(line: 654, column: 10, scope: !166)
!483 = !DILocation(line: 656, column: 13, scope: !286)
!484 = !DILocation(line: 656, column: 6, scope: !166)
!485 = !DILocation(line: 0, scope: !323, inlinedAt: !486)
!486 = distinct !DILocation(line: 657, column: 47, scope: !285)
!487 = !DILocation(line: 30, column: 5, scope: !323, inlinedAt: !486)
!488 = !DILocation(line: 0, scope: !285)
!489 = !DILocation(line: 660, column: 25, scope: !291)
!490 = !DILocation(line: 660, column: 7, scope: !285)
!491 = !DILocation(line: 0, scope: !323, inlinedAt: !492)
!492 = distinct !DILocation(line: 661, column: 43, scope: !290)
!493 = !DILocation(line: 30, column: 5, scope: !323, inlinedAt: !492)
!494 = !DILocation(line: 0, scope: !290)
!495 = !DILocation(line: 669, column: 32, scope: !290)
!496 = !DILocation(line: 669, column: 52, scope: !290)
!497 = !DILocation(line: 669, column: 8, scope: !290)
!498 = !DILocation(line: 669, column: 12, scope: !290)
!499 = !DILocation(line: 677, column: 8, scope: !290)
!500 = !DILocation(line: 685, column: 8, scope: !290)
!501 = !DILocation(line: 693, column: 8, scope: !290)
!502 = !DILocation(line: 701, column: 32, scope: !290)
!503 = !DILocation(line: 701, column: 52, scope: !290)
!504 = !DILocation(line: 677, column: 12, scope: !290)
!505 = !DILocation(line: 685, column: 13, scope: !290)
!506 = !DILocation(line: 693, column: 12, scope: !290)
!507 = !DILocation(line: 701, column: 8, scope: !290)
!508 = !DILocation(line: 701, column: 12, scope: !290)
!509 = !DILocation(line: 702, column: 3, scope: !290)
!510 = !DILocation(line: 709, column: 6, scope: !166)
!511 = !DILocation(line: 709, column: 10, scope: !166)
!512 = !DILocation(line: 715, column: 13, scope: !166)
!513 = !DILocation(line: 721, column: 6, scope: !166)
!514 = !DILocation(line: 721, column: 12, scope: !166)
!515 = !DILocation(line: 724, column: 1, scope: !166)
; ModuleID = 'cpuinfo/src/x86/isa.c'
source_filename = "cpuinfo/src/x86/isa.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.cpuinfo_x86_isa = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
; Function Attrs: argmemonly nounwind optsize sanitize_memory
define hidden void @cpuinfo_x86_detect_isa(%struct.cpuinfo_x86_isa* noalias sret(%struct.cpuinfo_x86_isa) align 1 %agg.result, i64 %basic_info.coerce0, i64 %basic_info.coerce1, i64 %extended_info.coerce0, i64 %extended_info.coerce1, i32 noundef %max_base_index, i32 noundef %max_extended_index, i32 noundef %vendor, i32 noundef %uarch) local_unnamed_addr #0 !dbg !166 {
entry:
call void @llvm.dbg.value(metadata i64 %basic_info.coerce0, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%basic_info.sroa.1.8.extract.trunc = trunc i64 %basic_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %basic_info.sroa.1.8.extract.trunc, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%basic_info.sroa.18.8.extract.shift = lshr i64 %basic_info.coerce1, 32
call void @llvm.dbg.value(metadata i64 %basic_info.sroa.18.8.extract.shift, metadata !257, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i64 %extended_info.coerce0, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%extended_info.sroa.1.8.extract.trunc = trunc i64 %extended_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.1.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%extended_info.sroa.14.8.extract.shift = lshr i64 %extended_info.coerce1, 32
%extended_info.sroa.14.8.extract.trunc = trunc i64 %extended_info.sroa.14.8.extract.shift to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.14.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_base_index, metadata !259, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_extended_index, metadata !260, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %vendor, metadata !261, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %uarch, metadata !262, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.declare(metadata %struct.cpuinfo_x86_isa* %agg.result, metadata !263, metadata !DIExpression()), !dbg !298
%0 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 0, !dbg !298
tail call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 1 dereferenceable(74) %0, i8 0, i64 74, i1 false), !dbg !298
%cmp = icmp ugt i32 %max_base_index, 6, !dbg !299
br i1 %cmp, label %cond.true2, label %cond.end9, !dbg !300
cond.true2: ; preds = %entry
call void @llvm.dbg.value(metadata i32 7, metadata !301, metadata !DIExpression()) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 0, metadata !307, metadata !DIExpression()) #4, !dbg !309
%1 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #5, !dbg !311, !srcloc !312
%asmresult3.i = extractvalue { i32, i32, i32, i32 } %1, 1, !dbg !311
%asmresult4.i = extractvalue { i32, i32, i32, i32 } %1, 2, !dbg !311
%asmresult5.i = extractvalue { i32, i32, i32, i32 } %1, 3, !dbg !311
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult3.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult4.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult5.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !309
%retval.sroa.2.0.insert.ext.i = zext i32 %asmresult3.i to i64, !dbg !313
%retval.sroa.2.0.insert.shift.i = shl nuw i64 %retval.sroa.2.0.insert.ext.i, 32, !dbg !313
%retval.sroa.5.8.insert.ext.i = zext i32 %asmresult5.i to i64, !dbg !313
%retval.sroa.5.8.insert.shift.i = shl nuw i64 %retval.sroa.5.8.insert.ext.i, 32, !dbg !313
%retval.sroa.3.8.insert.ext.i = zext i32 %asmresult4.i to i64, !dbg !313
%retval.sroa.3.8.insert.insert.i = or i64 %retval.sroa.5.8.insert.shift.i, %retval.sroa.3.8.insert.ext.i, !dbg !313
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 7, metadata !301, metadata !DIExpression()) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 1, metadata !307, metadata !DIExpression()) #4, !dbg !314
%2 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #5, !dbg !316, !srcloc !312
%asmresult.i858 = extractvalue { i32, i32, i32, i32 } %2, 0, !dbg !316
call void @llvm.dbg.value(metadata i32 %asmresult.i858, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !314
%retval.sroa.0.0.insert.ext.i864 = trunc i32 %asmresult.i858 to i8, !dbg !317
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i858), metadata !265, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.bo935 = lshr i8 %retval.sroa.0.0.insert.ext.i864, 5, !dbg !318
%phi.bo936 = and i8 %phi.bo935, 1, !dbg !318
br label %cond.end9, !dbg !318
cond.end9: ; preds = %entry, %cond.true2
%structured_feature_info0.sroa.25.0932 = phi i64 [ %retval.sroa.3.8.insert.insert.i, %cond.true2 ], [ 0, %entry ]
%structured_feature_info0.sroa.0.0930 = phi i64 [ %retval.sroa.2.0.insert.shift.i, %cond.true2 ], [ 0, %entry ]
%structured_feature_info1.sroa.0.0 = phi i8 [ %phi.bo936, %cond.true2 ], [ 0, %entry ]
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !266, metadata !DIExpression()), !dbg !297
%cmp10 = icmp ugt i32 %max_extended_index, -2147483641, !dbg !319
br i1 %cmp10, label %cond.true11, label %cond.end18, !dbg !320
cond.true11: ; preds = %cond.end9
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !321, metadata !DIExpression()) #4, !dbg !327
%3 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483640) #5, !dbg !329, !srcloc !330
%asmresult2.i = extractvalue { i32, i32, i32, i32 } %3, 1, !dbg !329
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 %asmresult2.i, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.cast = trunc i32 %asmresult2.i to i8, !dbg !320
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult2.i, i32 undef), metadata !268, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%phi.bo = and i8 %phi.cast, 1, !dbg !320
br label %cond.end18, !dbg !320
cond.end18: ; preds = %cond.end9, %cond.true11
%processor_capacity_info.sroa.0.0 = phi i8 [ %phi.bo, %cond.true11 ], [ 0, %cond.end9 ]
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !271, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 201326592, metadata !272, metadata !DIExpression()), !dbg !297
%and = and i32 %basic_info.sroa.1.8.extract.trunc, 201326592, !dbg !331
%cmp20 = icmp eq i32 %and, 201326592, !dbg !332
br i1 %cmp20, label %if.then, label %if.end54, !dbg !333
if.then: ; preds = %cond.end18
call void @llvm.dbg.value(metadata i64 0, metadata !273, metadata !DIExpression()), !dbg !334
%cmp21 = icmp ugt i32 %max_base_index, 12, !dbg !335
br i1 %cmp21, label %if.then22, label %if.end, !dbg !336
if.then22: ; preds = %if.then
call void @llvm.dbg.value(metadata i32 13, metadata !301, metadata !DIExpression()) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 0, metadata !307, metadata !DIExpression()) #4, !dbg !337
%4 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 13, i32 0) #5, !dbg !339, !srcloc !312
%asmresult.i885 = extractvalue { i32, i32, i32, i32 } %4, 0, !dbg !339
call void @llvm.dbg.value(metadata i32 %asmresult.i885, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !337
%retval.sroa.0.0.insert.ext.i891 = zext i32 %asmresult.i885 to i64, !dbg !340
call void @llvm.dbg.value(metadata !DIArgList(i32 undef, i64 %retval.sroa.0.0.insert.ext.i891), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !341
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 undef), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !341
call void @llvm.dbg.value(metadata i64 %retval.sroa.0.0.insert.ext.i891, metadata !273, metadata !DIExpression()), !dbg !334
br label %if.end, !dbg !342
if.end: ; preds = %if.then22, %if.then
%xcr0_valid_bits.0 = phi i64 [ %retval.sroa.0.0.insert.ext.i891, %if.then22 ], [ 0, %if.then ], !dbg !334
call void @llvm.dbg.value(metadata i64 %xcr0_valid_bits.0, metadata !273, metadata !DIExpression()), !dbg !334
call void @llvm.dbg.value(metadata i32 0, metadata !343, metadata !DIExpression()) #4, !dbg !350
%5 = tail call { i32, i32 } asm ".byte 0x0F, 0x01, 0xD0", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #5, !dbg !352, !srcloc !353
%asmresult.i899 = extractvalue { i32, i32 } %5, 0, !dbg !352
call void @llvm.dbg.value(metadata i32 %asmresult.i899, metadata !348, metadata !DIExpression()) #4, !dbg !350
call void @llvm.dbg.value(metadata i32 undef, metadata !349, metadata !DIExpression()) #4, !dbg !350
%conv2.i = zext i32 %asmresult.i899 to i64, !dbg !354
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i64 %conv2.i), metadata !279, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value)), !dbg !334
call void @llvm.dbg.value(metadata i64 6, metadata !281, metadata !DIExpression()), !dbg !334
%6 = insertelement <2 x i64> poison, i64 %xcr0_valid_bits.0, i32 0, !dbg !355
%7 = insertelement <2 x i64> %6, i64 %xcr0_valid_bits.0, i32 1, !dbg !355
%8 = and <2 x i64> %7, <i64 6, i64 230>, !dbg !355
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 230, metadata !282, metadata !DIExpression()), !dbg !334
%9 = icmp eq <2 x i64> %8, <i64 6, i64 230>, !dbg !357
%10 = insertelement <2 x i64> poison, i64 %conv2.i, i32 0, !dbg !358
%11 = insertelement <2 x i64> %10, i64 %conv2.i, i32 1, !dbg !358
%12 = and <2 x i64> %11, <i64 6, i64 230>, !dbg !358
%13 = icmp eq <2 x i64> %12, <i64 6, i64 230>, !dbg !358
%14 = select <2 x i1> %9, <2 x i1> %13, <2 x i1> zeroinitializer, !dbg !358
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 24, metadata !283, metadata !DIExpression()), !dbg !334
%and45 = and i64 %xcr0_valid_bits.0, 24, !dbg !359
%cmp46 = icmp eq i64 %and45, 24, !dbg !361
%and49 = and i64 %conv2.i, 24, !dbg !362
%cmp50 = icmp eq i64 %and49, 24, !dbg !362
%mpx_regs.0 = select i1 %cmp46, i1 %cmp50, i1 false, !dbg !362
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
br label %if.end54, !dbg !363
if.end54: ; preds = %if.end, %cond.end18
%mpx_regs.1 = phi i1 [ %mpx_regs.0, %if.end ], [ false, %cond.end18 ], !dbg !297
%15 = phi <2 x i1> [ %14, %if.end ], [ zeroinitializer, %cond.end18 ], !dbg !297
%shuffle937 = shufflevector <2 x i1> %15, <2 x i1> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1>, !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
%sysenter = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 2, !dbg !364
%and56815 = lshr i64 %basic_info.coerce1, 43, !dbg !365
%16 = trunc i64 %and56815 to i8, !dbg !365
%17 = and i8 %16, 1, !dbg !365
store i8 %17, i8* %sysenter, align 1, !dbg !365
%or61820 = or i64 %extended_info.sroa.14.8.extract.shift, %basic_info.sroa.18.8.extract.shift, !dbg !366
%msr = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 3, !dbg !367
%18 = trunc i64 %or61820 to i8, !dbg !368
%19 = lshr i8 %18, 5, !dbg !368
%20 = and i8 %19, 1, !dbg !368
store i8 %20, i8* %msr, align 1, !dbg !368
%clzero = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 4, !dbg !369
store i8 %processor_capacity_info.sroa.0.0, i8* %clzero, align 1, !dbg !370
%clflush = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 5, !dbg !371
%and74817 = lshr i64 %basic_info.coerce1, 51, !dbg !372
%21 = trunc i64 %and74817 to i8, !dbg !372
%22 = and i8 %21, 1, !dbg !372
store i8 %22, i8* %clflush, align 1, !dbg !372
%structured_feature_info0.sroa.0.4.extract.shift = lshr exact i64 %structured_feature_info0.sroa.0.0930, 32, !dbg !373
%structured_feature_info0.sroa.0.4.extract.trunc = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i32, !dbg !373
%clflushopt = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 6, !dbg !374
%and80818 = lshr i64 %structured_feature_info0.sroa.0.0930, 55, !dbg !375
%23 = trunc i64 %and80818 to i8, !dbg !375
%24 = and i8 %23, 1, !dbg !375
store i8 %24, i8* %clflushopt, align 1, !dbg !375
%mwait = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 7, !dbg !376
%25 = trunc i64 %basic_info.coerce1 to i8, !dbg !377
%26 = lshr i8 %25, 3, !dbg !377
%27 = and i8 %26, 1, !dbg !377
store i8 %27, i8* %mwait, align 1, !dbg !377
%mwaitx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 8, !dbg !378
%and92 = lshr i32 %extended_info.sroa.1.8.extract.trunc, 29, !dbg !379
%28 = trunc i32 %and92 to i8, !dbg !379
%29 = and i8 %28, 1, !dbg !379
store i8 %29, i8* %mwaitx, align 1, !dbg !379
%fxsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 9, !dbg !380
%and100821 = lshr i64 %or61820, 24, !dbg !382
%30 = trunc i64 %and100821 to i8, !dbg !382
%31 = and i8 %30, 1, !dbg !382
store i8 %31, i8* %fxsave, align 1, !dbg !382
%xsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 10, !dbg !383
%and106 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 26, !dbg !384
%32 = trunc i32 %and106 to i8, !dbg !384
%33 = and i8 %32, 1, !dbg !384
store i8 %33, i8* %xsave, align 1, !dbg !384
%three_d_now = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 11, !dbg !385
%extended_info.coerce1.lobit = lshr i64 %extended_info.coerce1, 63, !dbg !386
%34 = trunc i64 %extended_info.coerce1.lobit to i8, !dbg !386
store i8 %34, i8* %three_d_now, align 1, !dbg !386
%three_d_now_plus = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 12, !dbg !387
%and118 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 30, !dbg !388
%35 = trunc i32 %and118 to i8, !dbg !388
%36 = and i8 %35, 1, !dbg !388
store i8 %36, i8* %three_d_now_plus, align 1, !dbg !388
switch i32 %vendor, label %sw.default132 [
i32 16, label %sw.bb
i32 2, label %sw.bb
i32 1, label %sw.epilog162
], !dbg !389
sw.bb: ; preds = %if.end54, %if.end54
%and124 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !390
%and126 = and i32 %extended_info.sroa.14.8.extract.trunc, -536870912, !dbg !392
%or127 = or i32 %and126, %and124, !dbg !393
%tobool128 = icmp ne i32 %or127, 0, !dbg !394
br label %sw.epilog140, !dbg !395
sw.default132: ; preds = %if.end54
%tobool135 = icmp ugt i32 %extended_info.sroa.14.8.extract.trunc, 1073741823, !dbg !396
br label %sw.epilog140, !dbg !397
sw.epilog140: ; preds = %sw.default132, %sw.bb
%tobool135.sink = phi i1 [ %tobool135, %sw.default132 ], [ %tobool128, %sw.bb ]
%prefetch138 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 13, !dbg !398
%frombool139 = zext i1 %tobool135.sink to i8, !dbg !398
store i8 %frombool139, i8* %prefetch138, align 1, !dbg !398
%switch.selectcmp.case1 = icmp eq i32 %vendor, 2, !dbg !399
%switch.selectcmp.case2 = icmp eq i32 %vendor, 16, !dbg !399
%switch.selectcmp = or i1 %switch.selectcmp.case1, %switch.selectcmp.case2, !dbg !399
%37 = select i1 %switch.selectcmp, i32 -536870912, i32 -1073741824, !dbg !399
br label %sw.epilog162, !dbg !399
sw.epilog162: ; preds = %if.end54, %sw.epilog140
%.sink = phi i32 [ %37, %sw.epilog140 ], [ -1073741824, %if.end54 ]
%and153 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !400
%and155 = and i32 %.sink, %extended_info.sroa.14.8.extract.trunc, !dbg !400
%or156 = or i32 %and155, %and153, !dbg !400
%tobool157 = icmp ne i32 %or156, 0, !dbg !400
%prefetchw160 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 14, !dbg !400
%frombool161 = zext i1 %tobool157 to i8, !dbg !400
store i8 %frombool161, i8* %prefetchw160, align 1, !dbg !400
%prefetchwt1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 15, !dbg !402
%38 = trunc i64 %structured_feature_info0.sroa.25.0932 to i8, !dbg !403
%39 = and i8 %38, 1, !dbg !403
store i8 %39, i8* %prefetchwt1, align 1, !dbg !403
%sse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 16, !dbg !404
%40 = and i8 %25, 1, !dbg !405
store i8 %40, i8* %sse3, align 1, !dbg !405
%ssse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 17, !dbg !406
%and176822 = lshr i64 %basic_info.coerce1, 9, !dbg !407
%41 = trunc i64 %and176822 to i8, !dbg !407
%42 = and i8 %41, 1, !dbg !407
store i8 %42, i8* %ssse3, align 1, !dbg !407
%sse4_1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 18, !dbg !408
%and182823 = lshr i64 %basic_info.coerce1, 19, !dbg !409
%43 = trunc i64 %and182823 to i8, !dbg !409
%44 = and i8 %43, 1, !dbg !409
store i8 %44, i8* %sse4_1, align 1, !dbg !409
%sse4_2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 19, !dbg !410
%and188824 = lshr i64 %basic_info.coerce1, 20, !dbg !411
%45 = trunc i64 %and188824 to i8, !dbg !411
%46 = and i8 %45, 1, !dbg !411
store i8 %46, i8* %sse4_2, align 1, !dbg !411
%sse4a = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 20, !dbg !412
%47 = trunc i64 %extended_info.coerce1 to i8, !dbg !413
%48 = lshr i8 %47, 6, !dbg !413
%49 = and i8 %48, 1, !dbg !413
store i8 %49, i8* %sse4a, align 1, !dbg !413
%misaligned_sse = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 21, !dbg !414
%50 = lshr i8 %47, 7, !dbg !415
store i8 %50, i8* %misaligned_sse, align 1, !dbg !415
%51 = insertelement <8 x i32> poison, i32 %basic_info.sroa.1.8.extract.trunc, i32 0, !dbg !416
%52 = insertelement <8 x i32> %51, i32 %extended_info.sroa.1.8.extract.trunc, i32 1, !dbg !416
%53 = insertelement <8 x i32> %52, i32 %structured_feature_info0.sroa.0.4.extract.trunc, i32 2, !dbg !416
%shuffle938 = shufflevector <8 x i32> %53, <8 x i32> poison, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 0, i32 2, i32 2, i32 2>, !dbg !416
%54 = and <8 x i32> %shuffle938, <i32 268435456, i32 4096, i32 65536, i32 2048, i32 536870912, i32 32, i32 65536, i32 67108864>, !dbg !416
%avx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 22, !dbg !417
%55 = icmp ne <8 x i32> %54, zeroinitializer, !dbg !416
%56 = select <8 x i1> %shuffle937, <8 x i1> %55, <8 x i1> zeroinitializer, !dbg !416
%57 = zext <8 x i1> %56 to <8 x i8>, !dbg !418
%58 = bitcast i8* %avx to <8 x i8>*, !dbg !418
store <8 x i8> %57, <8 x i8>* %58, align 1, !dbg !418
%and287 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 134217728, !dbg !419
%tobool288 = icmp ne i32 %and287, 0, !dbg !419
%59 = extractelement <8 x i1> %shuffle937, i32 6, !dbg !419
%60 = select i1 %59, i1 %tobool288, i1 false, !dbg !419
%avx512er = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 30, !dbg !420
%frombool292 = zext i1 %60 to i8, !dbg !421
store i8 %frombool292, i8* %avx512er, align 1, !dbg !421
%and297 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 268435456, !dbg !422
%tobool298 = icmp ne i32 %and297, 0, !dbg !422
%61 = select i1 %59, i1 %tobool298, i1 false, !dbg !422
%avx512cd = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 31, !dbg !423
%frombool302 = zext i1 %61 to i8, !dbg !424
store i8 %frombool302, i8* %avx512cd, align 1, !dbg !424
%and307827 = lshr i64 %structured_feature_info0.sroa.0.0930, 49, !dbg !425
%62 = trunc i64 %and307827 to i8, !dbg !425
%avx512dq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 32, !dbg !426
%and317 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 30, !dbg !427
%63 = trunc i32 %and317 to i8, !dbg !427
%64 = insertelement <2 x i8> poison, i8 %62, i32 0, !dbg !425
%65 = insertelement <2 x i8> %64, i8 %63, i32 1, !dbg !425
%66 = and <2 x i8> %65, <i8 1, i8 1>, !dbg !425
%and327.lobit = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 31, !dbg !428
%67 = trunc i32 %and327.lobit to i8, !dbg !428
%and337828 = lshr i64 %structured_feature_info0.sroa.0.0930, 53, !dbg !429
%68 = trunc i64 %and337828 to i8, !dbg !429
%69 = and i8 %68, 1, !dbg !429
%70 = lshr i8 %38, 1, !dbg !430
%71 = and i8 %70, 1, !dbg !430
%72 = lshr i8 %38, 6, !dbg !431
%73 = and i8 %72, 1, !dbg !431
%and367831 = lshr i64 %structured_feature_info0.sroa.25.0932, 12, !dbg !432
%74 = trunc i64 %and367831 to i8, !dbg !432
%75 = and i8 %74, 1, !dbg !432
%and377832 = lshr i64 %structured_feature_info0.sroa.25.0932, 14, !dbg !433
%76 = trunc i64 %and377832 to i8, !dbg !433
%77 = and i8 %76, 1, !dbg !433
%78 = insertelement <8 x i1> poison, i1 %59, i32 0, !dbg !425
%79 = insertelement <8 x i1> %78, i1 %59, i32 1, !dbg !425
%80 = insertelement <8 x i1> %79, i1 %59, i32 2, !dbg !425
%81 = insertelement <8 x i1> %80, i1 %59, i32 3, !dbg !425
%82 = insertelement <8 x i1> %81, i1 %59, i32 4, !dbg !425
%83 = insertelement <8 x i1> %82, i1 %59, i32 5, !dbg !425
%84 = insertelement <8 x i1> %83, i1 %59, i32 6, !dbg !425
%85 = insertelement <8 x i1> %84, i1 %59, i32 7, !dbg !425
%86 = shufflevector <2 x i8> %66, <2 x i8> poison, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !425
%87 = insertelement <8 x i8> %86, i8 %67, i32 2, !dbg !425
%88 = insertelement <8 x i8> %87, i8 %69, i32 3, !dbg !425
%89 = insertelement <8 x i8> %88, i8 %71, i32 4, !dbg !425
%90 = insertelement <8 x i8> %89, i8 %73, i32 5, !dbg !425
%91 = insertelement <8 x i8> %90, i8 %75, i32 6, !dbg !425
%92 = insertelement <8 x i8> %91, i8 %77, i32 7, !dbg !425
%93 = select <8 x i1> %85, <8 x i8> %92, <8 x i8> zeroinitializer, !dbg !425
%94 = bitcast i8* %avx512dq to <8 x i8>*, !dbg !434
store <8 x i8> %93, <8 x i8>* %94, align 1, !dbg !434
%and387833 = lshr i64 %structured_feature_info0.sroa.25.0932, 11, !dbg !435
%95 = trunc i64 %and387833 to i8, !dbg !435
%96 = and i8 %95, 1, !dbg !435
%97 = select i1 %59, i8 %96, i8 0, !dbg !435
%avx512vnni = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 40, !dbg !436
store i8 %97, i8* %avx512vnni, align 1, !dbg !437
%sum.shift = lshr i64 %structured_feature_info0.sroa.25.0932, 34, !dbg !438
%and397834 = trunc i64 %sum.shift to i8, !dbg !438
%and397.lobit = and i8 %and397834, 1, !dbg !438
%98 = select i1 %59, i8 %and397.lobit, i8 0, !dbg !438
%avx512_4vnniw = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 43, !dbg !439
store i8 %98, i8* %avx512_4vnniw, align 1, !dbg !440
%sum.shift835 = lshr i64 %structured_feature_info0.sroa.25.0932, 35, !dbg !441
%and407836 = trunc i64 %sum.shift835 to i8, !dbg !441
%and407.lobit = and i8 %and407836, 1, !dbg !441
%99 = select i1 %59, i8 %and407.lobit, i8 0, !dbg !441
%avx512_4fmaps = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 44, !dbg !442
store i8 %99, i8* %avx512_4fmaps, align 1, !dbg !443
%sum.shift837 = lshr i64 %structured_feature_info0.sroa.25.0932, 40, !dbg !444
%and417838 = trunc i64 %sum.shift837 to i8, !dbg !444
%and417.lobit = and i8 %and417838, 1, !dbg !444
%100 = select i1 %59, i8 %and417.lobit, i8 0, !dbg !444
%avx512vp2intersect = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 42, !dbg !445
store i8 %100, i8* %avx512vp2intersect, align 1, !dbg !446
%101 = select i1 %59, i8 %structured_feature_info1.sroa.0.0, i8 0, !dbg !447
%avx512bf16 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 41, !dbg !448
store i8 %101, i8* %avx512bf16, align 1, !dbg !449
%hle = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 45, !dbg !450
%and434840 = lshr i64 %structured_feature_info0.sroa.0.0930, 36, !dbg !451
%102 = trunc i64 %and434840 to i8, !dbg !451
%103 = and i8 %102, 1, !dbg !451
store i8 %103, i8* %hle, align 1, !dbg !451
%and440 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 2048, !dbg !452
%tobool441 = icmp ne i32 %and440, 0, !dbg !453
%rtm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 46, !dbg !454
%and440.lobit = lshr exact i32 %and440, 11, !dbg !455
%104 = trunc i32 %and440.lobit to i8, !dbg !455
store i8 %104, i8* %rtm, align 1, !dbg !455
%tobool446 = icmp ne i8 %103, 0, !dbg !456
%105 = select i1 %tobool446, i1 true, i1 %tobool441, !dbg !457
%xtest = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 47, !dbg !458
%frombool451 = zext i1 %105 to i8, !dbg !459
store i8 %frombool451, i8* %xtest, align 1, !dbg !459
%and456841 = lshr i64 %structured_feature_info0.sroa.0.0930, 46, !dbg !460
%106 = trunc i64 %and456841 to i8, !dbg !460
%107 = and i8 %106, 1, !dbg !460
%108 = select i1 %mpx_regs.1, i8 %107, i8 0, !dbg !460
%mpx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 48, !dbg !461
store i8 %108, i8* %mpx, align 1, !dbg !462
%cmpxchg16b = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 49, !dbg !463
%and463842 = lshr i64 %basic_info.coerce1, 13, !dbg !464
%109 = trunc i64 %and463842 to i8, !dbg !464
%and469843 = lshr i64 %structured_feature_info0.sroa.0.0930, 56, !dbg !465
%110 = trunc i64 %and469843 to i8, !dbg !465
%and475844 = lshr i64 %basic_info.coerce1, 22, !dbg !466
%111 = trunc i64 %and475844 to i8, !dbg !466
%112 = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i8, !dbg !467
%113 = lshr i8 %47, 5, !dbg !468
%and499846 = lshr i64 %basic_info.coerce1, 23, !dbg !469
%114 = trunc i64 %and499846 to i8, !dbg !469
%and505847 = lshr i64 %extended_info.coerce1, 21, !dbg !470
%115 = trunc i64 %and505847 to i8, !dbg !470
%and511848 = lshr i64 %structured_feature_info0.sroa.0.0930, 35, !dbg !471
%116 = trunc i64 %and511848 to i8, !dbg !471
%and517849 = lshr i64 %structured_feature_info0.sroa.0.0930, 40, !dbg !472
%117 = trunc i64 %and517849 to i8, !dbg !472
%and523850 = lshr i64 %structured_feature_info0.sroa.0.0930, 51, !dbg !473
%118 = trunc i64 %and523850 to i8, !dbg !473
%and529 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 25, !dbg !474
%119 = trunc i32 %and529 to i8, !dbg !474
%and535851 = lshr i64 %structured_feature_info0.sroa.25.0932, 9, !dbg !475
%120 = trunc i64 %and535851 to i8, !dbg !475
%121 = lshr i8 %25, 1, !dbg !476
%and547853 = lshr i64 %structured_feature_info0.sroa.25.0932, 10, !dbg !477
%122 = trunc i64 %and547853 to i8, !dbg !477
%and553854 = lshr i64 %structured_feature_info0.sroa.25.0932, 8, !dbg !478
%123 = trunc i64 %and553854 to i8, !dbg !478
%124 = insertelement <16 x i8> poison, i8 %109, i32 0, !dbg !464
%125 = insertelement <16 x i8> %124, i8 %110, i32 1, !dbg !464
%126 = insertelement <16 x i8> %125, i8 %111, i32 2, !dbg !464
%127 = insertelement <16 x i8> %126, i8 %47, i32 3, !dbg !464
%128 = insertelement <16 x i8> %127, i8 %112, i32 4, !dbg !464
%129 = insertelement <16 x i8> %128, i8 %113, i32 5, !dbg !464
%130 = insertelement <16 x i8> %129, i8 %114, i32 6, !dbg !464
%131 = insertelement <16 x i8> %130, i8 %115, i32 7, !dbg !464
%132 = insertelement <16 x i8> %131, i8 %116, i32 8, !dbg !464
%133 = insertelement <16 x i8> %132, i8 %117, i32 9, !dbg !464
%134 = insertelement <16 x i8> %133, i8 %118, i32 10, !dbg !464
%135 = insertelement <16 x i8> %134, i8 %119, i32 11, !dbg !464
%136 = insertelement <16 x i8> %135, i8 %120, i32 12, !dbg !464
%137 = insertelement <16 x i8> %136, i8 %121, i32 13, !dbg !464
%138 = insertelement <16 x i8> %137, i8 %122, i32 14, !dbg !464
%139 = insertelement <16 x i8> %138, i8 %123, i32 15, !dbg !464
%140 = and <16 x i8> %139, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>, !dbg !464
%141 = bitcast i8* %cmpxchg16b to <16 x i8>*, !dbg !464
store <16 x i8> %140, <16 x i8>* %141, align 1, !dbg !464
%rdrand = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 65, !dbg !479
%and559 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 30, !dbg !480
%142 = trunc i32 %and559 to i8, !dbg !480
%143 = and i8 %142, 1, !dbg !480
store i8 %143, i8* %rdrand, align 1, !dbg !480
%rdseed = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 66, !dbg !481
%and565855 = lshr i64 %structured_feature_info0.sroa.0.0930, 50, !dbg !482
%144 = trunc i64 %and565855 to i8, !dbg !482
%145 = and i8 %144, 1, !dbg !482
store i8 %145, i8* %rdseed, align 1, !dbg !482
%sha = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 67, !dbg !483
%and571 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 29, !dbg !484
%146 = trunc i32 %and571 to i8, !dbg !484
%147 = and i8 %146, 1, !dbg !484
store i8 %147, i8* %sha, align 1, !dbg !484
%cmp576 = icmp eq i32 %vendor, 11, !dbg !485
br i1 %cmp576, label %if.then578, label %if.end611, !dbg !486
if.then578: ; preds = %sw.epilog162
call void @llvm.dbg.value(metadata i32 -1073741824, metadata !321, metadata !DIExpression()) #4, !dbg !487
%148 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741824) #5, !dbg !489, !srcloc !330
%asmresult.i900 = extractvalue { i32, i32, i32, i32 } %148, 0, !dbg !489
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !487
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !487
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !487
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !487
call void @llvm.dbg.value(metadata i64 undef, metadata !284, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !490
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i900), metadata !284, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !490
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !287, metadata !DIExpression()), !dbg !490
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !288, metadata !DIExpression()), !dbg !490
%cmp581 = icmp ugt i32 %asmresult.i900, -1073741824, !dbg !491
br i1 %cmp581, label %if.then583, label %if.end611, !dbg !492
if.then583: ; preds = %if.then578
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !321, metadata !DIExpression()) #4, !dbg !493
%149 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741823) #5, !dbg !495, !srcloc !330
%asmresult4.i917 = extractvalue { i32, i32, i32, i32 } %149, 3, !dbg !495
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !493
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !493
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !493
call void @llvm.dbg.value(metadata i32 %asmresult4.i917, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !493
call void @llvm.dbg.value(metadata i64 undef, metadata !289, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !496
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult4.i917, i32 undef), metadata !289, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !496
call void @llvm.dbg.value(metadata i32 12, metadata !292, metadata !DIExpression()), !dbg !496
%and586 = and i32 %asmresult4.i917, 12, !dbg !497
%cmp587 = icmp eq i32 %and586, 12, !dbg !498
%rng = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 68, !dbg !499
%frombool589 = zext i1 %cmp587 to i8, !dbg !500
store i8 %frombool589, i8* %rng, align 1, !dbg !500
call void @llvm.dbg.value(metadata i32 192, metadata !293, metadata !DIExpression()), !dbg !496
%ace = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 69, !dbg !501
call void @llvm.dbg.value(metadata i32 768, metadata !294, metadata !DIExpression()), !dbg !496
%ace2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 70, !dbg !502
call void @llvm.dbg.value(metadata i32 3072, metadata !295, metadata !DIExpression()), !dbg !496
%phe = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 71, !dbg !503
call void @llvm.dbg.value(metadata i32 12288, metadata !296, metadata !DIExpression()), !dbg !496
%150 = insertelement <4 x i32> poison, i32 %asmresult4.i917, i32 0, !dbg !504
%shuffle = shufflevector <4 x i32> %150, <4 x i32> poison, <4 x i32> zeroinitializer, !dbg !504
%151 = and <4 x i32> %shuffle, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !504
%152 = icmp eq <4 x i32> %151, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !505
%153 = extractelement <4 x i1> %152, i32 3, !dbg !506
%frombool594 = zext i1 %153 to i8, !dbg !506
store i8 %frombool594, i8* %ace, align 1, !dbg !506
%154 = extractelement <4 x i1> %152, i32 2, !dbg !507
%frombool599 = zext i1 %154 to i8, !dbg !507
store i8 %frombool599, i8* %ace2, align 1, !dbg !507
%155 = extractelement <4 x i1> %152, i32 1, !dbg !508
%frombool604 = zext i1 %155 to i8, !dbg !508
store i8 %frombool604, i8* %phe, align 1, !dbg !508
%pmm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 72, !dbg !509
%156 = extractelement <4 x i1> %152, i32 0, !dbg !510
%frombool609 = zext i1 %156 to i8, !dbg !510
store i8 %frombool609, i8* %pmm, align 1, !dbg !510
br label %if.end611, !dbg !511
if.end611: ; preds = %if.then578, %if.then583, %sw.epilog162
%lwp = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 73, !dbg !512
%and613856 = lshr i64 %extended_info.coerce1, 15, !dbg !513
%157 = trunc i64 %and613856 to i8, !dbg !513
%158 = and i8 %157, 1, !dbg !513
store i8 %158, i8* %lwp, align 1, !dbg !513
%and619 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 27, !dbg !514
%159 = trunc i32 %and619 to i8, !dbg !514
%160 = and i8 %159, 1, !dbg !514
store i8 %160, i8* %0, align 1, !dbg !514
%rdpid = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 1, !dbg !515
%and625857 = lshr i64 %structured_feature_info0.sroa.25.0932, 22, !dbg !516
%161 = trunc i64 %and625857 to i8, !dbg !516
%162 = and i8 %161, 1, !dbg !516
store i8 %162, i8* %rdpid, align 1, !dbg !516
ret void, !dbg !517
}
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly mustprogress nofree nounwind willreturn writeonly
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #2
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
attributes #0 = { argmemonly nounwind optsize sanitize_memory "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="x86-64-v3" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #2 = { argmemonly mustprogress nofree nounwind willreturn writeonly }
attributes #3 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #4 = { nounwind }
attributes #5 = { nounwind readnone }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!160, !161, !162, !163, !164}
!llvm.ident = !{!165}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !154, nameTableKind: None)
!1 = !DIFile(filename: "cpuinfo/src/x86/isa.c", directory: "workspace", checksumkind: CSK_MD5, checksum: "1f066767a48d692a7df3bd0b30681f63")
!2 = !{!3, !37}
!3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_vendor", file: !4, line: 137, baseType: !5, size: 32, elements: !6)
!4 = !DIFile(filename: "cpuinfo/include/cpuinfo.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "b2d9902226e7212a1e7a8aecca87c8f4")
!5 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!6 = !{!7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36}
!7 = !DIEnumerator(name: "cpuinfo_vendor_unknown", value: 0)
!8 = !DIEnumerator(name: "cpuinfo_vendor_intel", value: 1)
!9 = !DIEnumerator(name: "cpuinfo_vendor_amd", value: 2)
!10 = !DIEnumerator(name: "cpuinfo_vendor_arm", value: 3)
!11 = !DIEnumerator(name: "cpuinfo_vendor_qualcomm", value: 4)
!12 = !DIEnumerator(name: "cpuinfo_vendor_apple", value: 5)
!13 = !DIEnumerator(name: "cpuinfo_vendor_samsung", value: 6)
!14 = !DIEnumerator(name: "cpuinfo_vendor_nvidia", value: 7)
!15 = !DIEnumerator(name: "cpuinfo_vendor_mips", value: 8)
!16 = !DIEnumerator(name: "cpuinfo_vendor_ibm", value: 9)
!17 = !DIEnumerator(name: "cpuinfo_vendor_ingenic", value: 10)
!18 = !DIEnumerator(name: "cpuinfo_vendor_via", value: 11)
!19 = !DIEnumerator(name: "cpuinfo_vendor_cavium", value: 12)
!20 = !DIEnumerator(name: "cpuinfo_vendor_broadcom", value: 13)
!21 = !DIEnumerator(name: "cpuinfo_vendor_apm", value: 14)
!22 = !DIEnumerator(name: "cpuinfo_vendor_huawei", value: 15)
!23 = !DIEnumerator(name: "cpuinfo_vendor_hygon", value: 16)
!24 = !DIEnumerator(name: "cpuinfo_vendor_texas_instruments", value: 30)
!25 = !DIEnumerator(name: "cpuinfo_vendor_marvell", value: 31)
!26 = !DIEnumerator(name: "cpuinfo_vendor_rdc", value: 32)
!27 = !DIEnumerator(name: "cpuinfo_vendor_dmp", value: 33)
!28 = !DIEnumerator(name: "cpuinfo_vendor_motorola", value: 34)
!29 = !DIEnumerator(name: "cpuinfo_vendor_transmeta", value: 50)
!30 = !DIEnumerator(name: "cpuinfo_vendor_cyrix", value: 51)
!31 = !DIEnumerator(name: "cpuinfo_vendor_rise", value: 52)
!32 = !DIEnumerator(name: "cpuinfo_vendor_nsc", value: 53)
!33 = !DIEnumerator(name: "cpuinfo_vendor_sis", value: 54)
!34 = !DIEnumerator(name: "cpuinfo_vendor_nexgen", value: 55)
!35 = !DIEnumerator(name: "cpuinfo_vendor_umc", value: 56)
!36 = !DIEnumerator(name: "cpuinfo_vendor_dec", value: 57)
!37 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_uarch", file: !4, line: 266, baseType: !5, size: 32, elements: !38)
!38 = !{!39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79, !80, !81, !82, !83, !84, !85, !86, !87, !88, !89, !90, !91, !92, !93, !94, !95, !96, !97, !98, !99, !100, !101, !102, !103, !104, !105, !106, !107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !117, !118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131, !132, !133, !134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144, !145, !146, !147, !148, !149, !150, !151, !152, !153}
!39 = !DIEnumerator(name: "cpuinfo_uarch_unknown", value: 0)
!40 = !DIEnumerator(name: "cpuinfo_uarch_p5", value: 1048832)
!41 = !DIEnumerator(name: "cpuinfo_uarch_quark", value: 1048833)
!42 = !DIEnumerator(name: "cpuinfo_uarch_p6", value: 1049088)
!43 = !DIEnumerator(name: "cpuinfo_uarch_dothan", value: 1049089)
!44 = !DIEnumerator(name: "cpuinfo_uarch_yonah", value: 1049090)
!45 = !DIEnumerator(name: "cpuinfo_uarch_conroe", value: 1049091)
!46 = !DIEnumerator(name: "cpuinfo_uarch_penryn", value: 1049092)
!47 = !DIEnumerator(name: "cpuinfo_uarch_nehalem", value: 1049093)
!48 = !DIEnumerator(name: "cpuinfo_uarch_sandy_bridge", value: 1049094)
!49 = !DIEnumerator(name: "cpuinfo_uarch_ivy_bridge", value: 1049095)
!50 = !DIEnumerator(name: "cpuinfo_uarch_haswell", value: 1049096)
!51 = !DIEnumerator(name: "cpuinfo_uarch_broadwell", value: 1049097)
!52 = !DIEnumerator(name: "cpuinfo_uarch_sky_lake", value: 1049098)
!53 = !DIEnumerator(name: "cpuinfo_uarch_kaby_lake", value: 1049098)
!54 = !DIEnumerator(name: "cpuinfo_uarch_palm_cove", value: 1049099)
!55 = !DIEnumerator(name: "cpuinfo_uarch_sunny_cove", value: 1049100)
!56 = !DIEnumerator(name: "cpuinfo_uarch_willamette", value: 1049344)
!57 = !DIEnumerator(name: "cpuinfo_uarch_prescott", value: 1049345)
!58 = !DIEnumerator(name: "cpuinfo_uarch_bonnell", value: 1049600)
!59 = !DIEnumerator(name: "cpuinfo_uarch_saltwell", value: 1049601)
!60 = !DIEnumerator(name: "cpuinfo_uarch_silvermont", value: 1049602)
!61 = !DIEnumerator(name: "cpuinfo_uarch_airmont", value: 1049603)
!62 = !DIEnumerator(name: "cpuinfo_uarch_goldmont", value: 1049604)
!63 = !DIEnumerator(name: "cpuinfo_uarch_goldmont_plus", value: 1049605)
!64 = !DIEnumerator(name: "cpuinfo_uarch_knights_ferry", value: 1049856)
!65 = !DIEnumerator(name: "cpuinfo_uarch_knights_corner", value: 1049857)
!66 = !DIEnumerator(name: "cpuinfo_uarch_knights_landing", value: 1049858)
!67 = !DIEnumerator(name: "cpuinfo_uarch_knights_hill", value: 1049859)
!68 = !DIEnumerator(name: "cpuinfo_uarch_knights_mill", value: 1049860)
!69 = !DIEnumerator(name: "cpuinfo_uarch_xscale", value: 1050112)
!70 = !DIEnumerator(name: "cpuinfo_uarch_k5", value: 2097408)
!71 = !DIEnumerator(name: "cpuinfo_uarch_k6", value: 2097409)
!72 = !DIEnumerator(name: "cpuinfo_uarch_k7", value: 2097410)
!73 = !DIEnumerator(name: "cpuinfo_uarch_k8", value: 2097411)
!74 = !DIEnumerator(name: "cpuinfo_uarch_k10", value: 2097412)
!75 = !DIEnumerator(name: "cpuinfo_uarch_bulldozer", value: 2097413)
!76 = !DIEnumerator(name: "cpuinfo_uarch_piledriver", value: 2097414)
!77 = !DIEnumerator(name: "cpuinfo_uarch_steamroller", value: 2097415)
!78 = !DIEnumerator(name: "cpuinfo_uarch_excavator", value: 2097416)
!79 = !DIEnumerator(name: "cpuinfo_uarch_zen", value: 2097417)
!80 = !DIEnumerator(name: "cpuinfo_uarch_zen2", value: 2097418)
!81 = !DIEnumerator(name: "cpuinfo_uarch_zen3", value: 2097419)
!82 = !DIEnumerator(name: "cpuinfo_uarch_geode", value: 2097664)
!83 = !DIEnumerator(name: "cpuinfo_uarch_bobcat", value: 2097665)
!84 = !DIEnumerator(name: "cpuinfo_uarch_jaguar", value: 2097666)
!85 = !DIEnumerator(name: "cpuinfo_uarch_puma", value: 2097667)
!86 = !DIEnumerator(name: "cpuinfo_uarch_arm7", value: 3145984)
!87 = !DIEnumerator(name: "cpuinfo_uarch_arm9", value: 3145985)
!88 = !DIEnumerator(name: "cpuinfo_uarch_arm11", value: 3145986)
!89 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a5", value: 3146245)
!90 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a7", value: 3146247)
!91 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a8", value: 3146248)
!92 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a9", value: 3146249)
!93 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a12", value: 3146258)
!94 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a15", value: 3146261)
!95 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a17", value: 3146263)
!96 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a32", value: 3146546)
!97 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a35", value: 3146549)
!98 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a53", value: 3146579)
!99 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55r0", value: 3146580)
!100 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55", value: 3146581)
!101 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a57", value: 3146583)
!102 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a65", value: 3146597)
!103 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a72", value: 3146610)
!104 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a73", value: 3146611)
!105 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a75", value: 3146613)
!106 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76", value: 3146614)
!107 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a77", value: 3146615)
!108 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a78", value: 3146616)
!109 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_n1", value: 3146752)
!110 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_e1", value: 3146753)
!111 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x1", value: 3147008)
!112 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x2", value: 3147010)
!113 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a510", value: 3147089)
!114 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a710", value: 3147121)
!115 = !DIEnumerator(name: "cpuinfo_uarch_scorpion", value: 4194560)
!116 = !DIEnumerator(name: "cpuinfo_uarch_krait", value: 4194561)
!117 = !DIEnumerator(name: "cpuinfo_uarch_kryo", value: 4194562)
!118 = !DIEnumerator(name: "cpuinfo_uarch_falkor", value: 4194563)
!119 = !DIEnumerator(name: "cpuinfo_uarch_saphira", value: 4194564)
!120 = !DIEnumerator(name: "cpuinfo_uarch_denver", value: 5243136)
!121 = !DIEnumerator(name: "cpuinfo_uarch_denver2", value: 5243137)
!122 = !DIEnumerator(name: "cpuinfo_uarch_carmel", value: 5243138)
!123 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m1", value: 6291712)
!124 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m2", value: 6291713)
!125 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m3", value: 6291714)
!126 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m4", value: 6291715)
!127 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m5", value: 6291716)
!128 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76ae", value: 3146614)
!129 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m1", value: 6291712)
!130 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m2", value: 6291713)
!131 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m3", value: 6291714)
!132 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m4", value: 6291715)
!133 = !DIEnumerator(name: "cpuinfo_uarch_swift", value: 7340288)
!134 = !DIEnumerator(name: "cpuinfo_uarch_cyclone", value: 7340289)
!135 = !DIEnumerator(name: "cpuinfo_uarch_typhoon", value: 7340290)
!136 = !DIEnumerator(name: "cpuinfo_uarch_twister", value: 7340291)
!137 = !DIEnumerator(name: "cpuinfo_uarch_hurricane", value: 7340292)
!138 = !DIEnumerator(name: "cpuinfo_uarch_monsoon", value: 7340293)
!139 = !DIEnumerator(name: "cpuinfo_uarch_mistral", value: 7340294)
!140 = !DIEnumerator(name: "cpuinfo_uarch_vortex", value: 7340295)
!141 = !DIEnumerator(name: "cpuinfo_uarch_tempest", value: 7340296)
!142 = !DIEnumerator(name: "cpuinfo_uarch_lightning", value: 7340297)
!143 = !DIEnumerator(name: "cpuinfo_uarch_thunder", value: 7340298)
!144 = !DIEnumerator(name: "cpuinfo_uarch_firestorm", value: 7340299)
!145 = !DIEnumerator(name: "cpuinfo_uarch_icestorm", value: 7340300)
!146 = !DIEnumerator(name: "cpuinfo_uarch_thunderx", value: 8388864)
!147 = !DIEnumerator(name: "cpuinfo_uarch_thunderx2", value: 8389120)
!148 = !DIEnumerator(name: "cpuinfo_uarch_pj4", value: 9437440)
!149 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b15", value: 10486016)
!150 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b53", value: 10486017)
!151 = !DIEnumerator(name: "cpuinfo_uarch_xgene", value: 11534592)
!152 = !DIEnumerator(name: "cpuinfo_uarch_dhyana", value: 16777472)
!153 = !DIEnumerator(name: "cpuinfo_uarch_taishan_v110", value: 12583168)
!154 = !{!155}
!155 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint64_t", file: !156, line: 27, baseType: !157)
!156 = !DIFile(filename: "glibc/include/bits/stdint-uintn.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "9754ebe022edbe8d7928fa709e442f0d")
!157 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint64_t", file: !158, line: 44, baseType: !159)
!158 = !DIFile(filename: "glibc/include/bits/types.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "25679ba19d359e314e48661b21f5aa1f")
!159 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned)
!160 = !{i32 7, !"Dwarf Version", i32 5}
!161 = !{i32 2, !"Debug Info Version", i32 3}
!162 = !{i32 1, !"wchar_size", i32 4}
!163 = !{i32 7, !"PIC Level", i32 2}
!164 = !{i32 7, !"frame-pointer", i32 2}
!165 = !{!"clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab"}
!166 = distinct !DISubprogram(name: "cpuinfo_x86_detect_isa", scope: !1, file: !1, line: 38, type: !167, scopeLine: 42, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !256)
!167 = !DISubroutineType(types: !168)
!168 = !{!169, !246, !246, !251, !251, !3, !37}
!169 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuinfo_x86_isa", file: !4, line: 670, size: 592, elements: !170)
!170 = !{!171, !173, !174, !175, !176, !177, !178, !179, !180, !181, !182, !183, !184, !185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199, !200, !201, !202, !203, !204, !205, !206, !207, !208, !209, !210, !211, !212, !213, !214, !215, !216, !217, !218, !219, !220, !221, !222, !223, !224, !225, !226, !227, !228, !229, !230, !231, !232, !233, !234, !235, !236, !237, !238, !239, !240, !241, !242, !243, !244, !245}
!171 = !DIDerivedType(tag: DW_TAG_member, name: "rdtscp", scope: !169, file: !4, line: 674, baseType: !172, size: 8)
!172 = !DIBasicType(name: "_Bool", size: 8, encoding: DW_ATE_boolean)
!173 = !DIDerivedType(tag: DW_TAG_member, name: "rdpid", scope: !169, file: !4, line: 675, baseType: !172, size: 8, offset: 8)
!174 = !DIDerivedType(tag: DW_TAG_member, name: "sysenter", scope: !169, file: !4, line: 676, baseType: !172, size: 8, offset: 16)
!175 = !DIDerivedType(tag: DW_TAG_member, name: "msr", scope: !169, file: !4, line: 680, baseType: !172, size: 8, offset: 24)
!176 = !DIDerivedType(tag: DW_TAG_member, name: "clzero", scope: !169, file: !4, line: 681, baseType: !172, size: 8, offset: 32)
!177 = !DIDerivedType(tag: DW_TAG_member, name: "clflush", scope: !169, file: !4, line: 682, baseType: !172, size: 8, offset: 40)
!178 = !DIDerivedType(tag: DW_TAG_member, name: "clflushopt", scope: !169, file: !4, line: 683, baseType: !172, size: 8, offset: 48)
!179 = !DIDerivedType(tag: DW_TAG_member, name: "mwait", scope: !169, file: !4, line: 684, baseType: !172, size: 8, offset: 56)
!180 = !DIDerivedType(tag: DW_TAG_member, name: "mwaitx", scope: !169, file: !4, line: 685, baseType: !172, size: 8, offset: 64)
!181 = !DIDerivedType(tag: DW_TAG_member, name: "fxsave", scope: !169, file: !4, line: 689, baseType: !172, size: 8, offset: 72)
!182 = !DIDerivedType(tag: DW_TAG_member, name: "xsave", scope: !169, file: !4, line: 690, baseType: !172, size: 8, offset: 80)
!183 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now", scope: !169, file: !4, line: 696, baseType: !172, size: 8, offset: 88)
!184 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now_plus", scope: !169, file: !4, line: 697, baseType: !172, size: 8, offset: 96)
!185 = !DIDerivedType(tag: DW_TAG_member, name: "prefetch", scope: !169, file: !4, line: 701, baseType: !172, size: 8, offset: 104)
!186 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchw", scope: !169, file: !4, line: 702, baseType: !172, size: 8, offset: 112)
!187 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchwt1", scope: !169, file: !4, line: 703, baseType: !172, size: 8, offset: 120)
!188 = !DIDerivedType(tag: DW_TAG_member, name: "sse3", scope: !169, file: !4, line: 709, baseType: !172, size: 8, offset: 128)
!189 = !DIDerivedType(tag: DW_TAG_member, name: "ssse3", scope: !169, file: !4, line: 710, baseType: !172, size: 8, offset: 136)
!190 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_1", scope: !169, file: !4, line: 711, baseType: !172, size: 8, offset: 144)
!191 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_2", scope: !169, file: !4, line: 712, baseType: !172, size: 8, offset: 152)
!192 = !DIDerivedType(tag: DW_TAG_member, name: "sse4a", scope: !169, file: !4, line: 713, baseType: !172, size: 8, offset: 160)
!193 = !DIDerivedType(tag: DW_TAG_member, name: "misaligned_sse", scope: !169, file: !4, line: 714, baseType: !172, size: 8, offset: 168)
!194 = !DIDerivedType(tag: DW_TAG_member, name: "avx", scope: !169, file: !4, line: 715, baseType: !172, size: 8, offset: 176)
!195 = !DIDerivedType(tag: DW_TAG_member, name: "fma3", scope: !169, file: !4, line: 716, baseType: !172, size: 8, offset: 184)
!196 = !DIDerivedType(tag: DW_TAG_member, name: "fma4", scope: !169, file: !4, line: 717, baseType: !172, size: 8, offset: 192)
!197 = !DIDerivedType(tag: DW_TAG_member, name: "xop", scope: !169, file: !4, line: 718, baseType: !172, size: 8, offset: 200)
!198 = !DIDerivedType(tag: DW_TAG_member, name: "f16c", scope: !169, file: !4, line: 719, baseType: !172, size: 8, offset: 208)
!199 = !DIDerivedType(tag: DW_TAG_member, name: "avx2", scope: !169, file: !4, line: 720, baseType: !172, size: 8, offset: 216)
!200 = !DIDerivedType(tag: DW_TAG_member, name: "avx512f", scope: !169, file: !4, line: 721, baseType: !172, size: 8, offset: 224)
!201 = !DIDerivedType(tag: DW_TAG_member, name: "avx512pf", scope: !169, file: !4, line: 722, baseType: !172, size: 8, offset: 232)
!202 = !DIDerivedType(tag: DW_TAG_member, name: "avx512er", scope: !169, file: !4, line: 723, baseType: !172, size: 8, offset: 240)
!203 = !DIDerivedType(tag: DW_TAG_member, name: "avx512cd", scope: !169, file: !4, line: 724, baseType: !172, size: 8, offset: 248)
!204 = !DIDerivedType(tag: DW_TAG_member, name: "avx512dq", scope: !169, file: !4, line: 725, baseType: !172, size: 8, offset: 256)
!205 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bw", scope: !169, file: !4, line: 726, baseType: !172, size: 8, offset: 264)
!206 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vl", scope: !169, file: !4, line: 727, baseType: !172, size: 8, offset: 272)
!207 = !DIDerivedType(tag: DW_TAG_member, name: "avx512ifma", scope: !169, file: !4, line: 728, baseType: !172, size: 8, offset: 280)
!208 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi", scope: !169, file: !4, line: 729, baseType: !172, size: 8, offset: 288)
!209 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi2", scope: !169, file: !4, line: 730, baseType: !172, size: 8, offset: 296)
!210 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bitalg", scope: !169, file: !4, line: 731, baseType: !172, size: 8, offset: 304)
!211 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vpopcntdq", scope: !169, file: !4, line: 732, baseType: !172, size: 8, offset: 312)
!212 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vnni", scope: !169, file: !4, line: 733, baseType: !172, size: 8, offset: 320)
!213 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bf16", scope: !169, file: !4, line: 734, baseType: !172, size: 8, offset: 328)
!214 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vp2intersect", scope: !169, file: !4, line: 735, baseType: !172, size: 8, offset: 336)
!215 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4vnniw", scope: !169, file: !4, line: 736, baseType: !172, size: 8, offset: 344)
!216 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4fmaps", scope: !169, file: !4, line: 737, baseType: !172, size: 8, offset: 352)
!217 = !DIDerivedType(tag: DW_TAG_member, name: "hle", scope: !169, file: !4, line: 738, baseType: !172, size: 8, offset: 360)
!218 = !DIDerivedType(tag: DW_TAG_member, name: "rtm", scope: !169, file: !4, line: 739, baseType: !172, size: 8, offset: 368)
!219 = !DIDerivedType(tag: DW_TAG_member, name: "xtest", scope: !169, file: !4, line: 740, baseType: !172, size: 8, offset: 376)
!220 = !DIDerivedType(tag: DW_TAG_member, name: "mpx", scope: !169, file: !4, line: 741, baseType: !172, size: 8, offset: 384)
!221 = !DIDerivedType(tag: DW_TAG_member, name: "cmpxchg16b", scope: !169, file: !4, line: 746, baseType: !172, size: 8, offset: 392)
!222 = !DIDerivedType(tag: DW_TAG_member, name: "clwb", scope: !169, file: !4, line: 747, baseType: !172, size: 8, offset: 400)
!223 = !DIDerivedType(tag: DW_TAG_member, name: "movbe", scope: !169, file: !4, line: 748, baseType: !172, size: 8, offset: 408)
!224 = !DIDerivedType(tag: DW_TAG_member, name: "lahf_sahf", scope: !169, file: !4, line: 750, baseType: !172, size: 8, offset: 416)
!225 = !DIDerivedType(tag: DW_TAG_member, name: "fs_gs_base", scope: !169, file: !4, line: 752, baseType: !172, size: 8, offset: 424)
!226 = !DIDerivedType(tag: DW_TAG_member, name: "lzcnt", scope: !169, file: !4, line: 753, baseType: !172, size: 8, offset: 432)
!227 = !DIDerivedType(tag: DW_TAG_member, name: "popcnt", scope: !169, file: !4, line: 754, baseType: !172, size: 8, offset: 440)
!228 = !DIDerivedType(tag: DW_TAG_member, name: "tbm", scope: !169, file: !4, line: 755, baseType: !172, size: 8, offset: 448)
!229 = !DIDerivedType(tag: DW_TAG_member, name: "bmi", scope: !169, file: !4, line: 756, baseType: !172, size: 8, offset: 456)
!230 = !DIDerivedType(tag: DW_TAG_member, name: "bmi2", scope: !169, file: !4, line: 757, baseType: !172, size: 8, offset: 464)
!231 = !DIDerivedType(tag: DW_TAG_member, name: "adx", scope: !169, file: !4, line: 758, baseType: !172, size: 8, offset: 472)
!232 = !DIDerivedType(tag: DW_TAG_member, name: "aes", scope: !169, file: !4, line: 759, baseType: !172, size: 8, offset: 480)
!233 = !DIDerivedType(tag: DW_TAG_member, name: "vaes", scope: !169, file: !4, line: 760, baseType: !172, size: 8, offset: 488)
!234 = !DIDerivedType(tag: DW_TAG_member, name: "pclmulqdq", scope: !169, file: !4, line: 761, baseType: !172, size: 8, offset: 496)
!235 = !DIDerivedType(tag: DW_TAG_member, name: "vpclmulqdq", scope: !169, file: !4, line: 762, baseType: !172, size: 8, offset: 504)
!236 = !DIDerivedType(tag: DW_TAG_member, name: "gfni", scope: !169, file: !4, line: 763, baseType: !172, size: 8, offset: 512)
!237 = !DIDerivedType(tag: DW_TAG_member, name: "rdrand", scope: !169, file: !4, line: 764, baseType: !172, size: 8, offset: 520)
!238 = !DIDerivedType(tag: DW_TAG_member, name: "rdseed", scope: !169, file: !4, line: 765, baseType: !172, size: 8, offset: 528)
!239 = !DIDerivedType(tag: DW_TAG_member, name: "sha", scope: !169, file: !4, line: 766, baseType: !172, size: 8, offset: 536)
!240 = !DIDerivedType(tag: DW_TAG_member, name: "rng", scope: !169, file: !4, line: 767, baseType: !172, size: 8, offset: 544)
!241 = !DIDerivedType(tag: DW_TAG_member, name: "ace", scope: !169, file: !4, line: 768, baseType: !172, size: 8, offset: 552)
!242 = !DIDerivedType(tag: DW_TAG_member, name: "ace2", scope: !169, file: !4, line: 769, baseType: !172, size: 8, offset: 560)
!243 = !DIDerivedType(tag: DW_TAG_member, name: "phe", scope: !169, file: !4, line: 770, baseType: !172, size: 8, offset: 568)
!244 = !DIDerivedType(tag: DW_TAG_member, name: "pmm", scope: !169, file: !4, line: 771, baseType: !172, size: 8, offset: 576)
!245 = !DIDerivedType(tag: DW_TAG_member, name: "lwp", scope: !169, file: !4, line: 772, baseType: !172, size: 8, offset: 584)
!246 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !247)
!247 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuid_regs", file: !248, line: 10, size: 128, elements: !249)
!248 = !DIFile(filename: "cpuinfo/src/x86/api.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "27c8ee589f06b55198de5debd23b68da")
!249 = !{!250, !253, !254, !255}
!250 = !DIDerivedType(tag: DW_TAG_member, name: "eax", scope: !247, file: !248, line: 11, baseType: !251, size: 32)
!251 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !156, line: 26, baseType: !252)
!252 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !158, line: 41, baseType: !5)
!253 = !DIDerivedType(tag: DW_TAG_member, name: "ebx", scope: !247, file: !248, line: 12, baseType: !251, size: 32, offset: 32)
!254 = !DIDerivedType(tag: DW_TAG_member, name: "ecx", scope: !247, file: !248, line: 13, baseType: !251, size: 32, offset: 64)
!255 = !DIDerivedType(tag: DW_TAG_member, name: "edx", scope: !247, file: !248, line: 14, baseType: !251, size: 32, offset: 96)
!256 = !{!257, !258, !259, !260, !261, !262, !263, !264, !265, !266, !268, !269, !270, !271, !272, !273, !276, !279, !281, !282, !283, !284, !287, !288, !289, !292, !293, !294, !295, !296}
!257 = !DILocalVariable(name: "basic_info", arg: 1, scope: !166, file: !1, line: 39, type: !246)
!258 = !DILocalVariable(name: "extended_info", arg: 2, scope: !166, file: !1, line: 39, type: !246)
!259 = !DILocalVariable(name: "max_base_index", arg: 3, scope: !166, file: !1, line: 40, type: !251)
!260 = !DILocalVariable(name: "max_extended_index", arg: 4, scope: !166, file: !1, line: 40, type: !251)
!261 = !DILocalVariable(name: "vendor", arg: 5, scope: !166, file: !1, line: 41, type: !3)
!262 = !DILocalVariable(name: "uarch", arg: 6, scope: !166, file: !1, line: 41, type: !37)
!263 = !DILocalVariable(name: "isa", scope: !166, file: !1, line: 43, type: !169)
!264 = !DILocalVariable(name: "structured_feature_info0", scope: !166, file: !1, line: 45, type: !246)
!265 = !DILocalVariable(name: "structured_feature_info1", scope: !166, file: !1, line: 47, type: !246)
!266 = !DILocalVariable(name: "processor_capacity_info_index", scope: !166, file: !1, line: 50, type: !267)
!267 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !251)
!268 = !DILocalVariable(name: "processor_capacity_info", scope: !166, file: !1, line: 51, type: !246)
!269 = !DILocalVariable(name: "avx_regs", scope: !166, file: !1, line: 55, type: !172)
!270 = !DILocalVariable(name: "avx512_regs", scope: !166, file: !1, line: 55, type: !172)
!271 = !DILocalVariable(name: "mpx_regs", scope: !166, file: !1, line: 55, type: !172)
!272 = !DILocalVariable(name: "osxsave_mask", scope: !166, file: !1, line: 61, type: !267)
!273 = !DILocalVariable(name: "xcr0_valid_bits", scope: !274, file: !1, line: 63, type: !155)
!274 = distinct !DILexicalBlock(scope: !275, file: !1, line: 62, column: 55)
!275 = distinct !DILexicalBlock(scope: !166, file: !1, line: 62, column: 6)
!276 = !DILocalVariable(name: "regs", scope: !277, file: !1, line: 65, type: !246)
!277 = distinct !DILexicalBlock(scope: !278, file: !1, line: 64, column: 30)
!278 = distinct !DILexicalBlock(scope: !274, file: !1, line: 64, column: 7)
!279 = !DILocalVariable(name: "xfeature_enabled_mask", scope: !274, file: !1, line: 69, type: !280)
!280 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !155)
!281 = !DILocalVariable(name: "avx_regs_mask", scope: !274, file: !1, line: 76, type: !280)
!282 = !DILocalVariable(name: "avx512_regs_mask", scope: !274, file: !1, line: 89, type: !280)
!283 = !DILocalVariable(name: "mpx_regs_mask", scope: !274, file: !1, line: 99, type: !280)
!284 = !DILocalVariable(name: "padlock_meta_info", scope: !285, file: !1, line: 657, type: !246)
!285 = distinct !DILexicalBlock(scope: !286, file: !1, line: 656, column: 36)
!286 = distinct !DILexicalBlock(scope: !166, file: !1, line: 656, column: 6)
!287 = !DILocalVariable(name: "max_padlock_index", scope: !285, file: !1, line: 658, type: !267)
!288 = !DILocalVariable(name: "padlock_info_index", scope: !285, file: !1, line: 659, type: !267)
!289 = !DILocalVariable(name: "padlock_info", scope: !290, file: !1, line: 661, type: !246)
!290 = distinct !DILexicalBlock(scope: !291, file: !1, line: 660, column: 48)
!291 = distinct !DILexicalBlock(scope: !285, file: !1, line: 660, column: 7)
!292 = !DILocalVariable(name: "padlock_rng_mask", scope: !290, file: !1, line: 668, type: !267)
!293 = !DILocalVariable(name: "padlock_ace_mask", scope: !290, file: !1, line: 676, type: !267)
!294 = !DILocalVariable(name: "padlock_ace2_mask", scope: !290, file: !1, line: 684, type: !267)
!295 = !DILocalVariable(name: "padlock_phe_mask", scope: !290, file: !1, line: 692, type: !267)
!296 = !DILocalVariable(name: "padlock_pmm_mask", scope: !290, file: !1, line: 700, type: !267)
!297 = !DILocation(line: 0, scope: !166)
!298 = !DILocation(line: 43, column: 25, scope: !166)
!299 = !DILocation(line: 46, column: 19, scope: !166)
!300 = !DILocation(line: 46, column: 3, scope: !166)
!301 = !DILocalVariable(name: "eax", arg: 1, scope: !302, file: !303, line: 43, type: !251)
!302 = distinct !DISubprogram(name: "cpuidex", scope: !303, file: !303, line: 43, type: !304, scopeLine: 43, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !306)
!303 = !DIFile(filename: "cpuinfo/src/x86/cpuid.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "f9e451aa7a48009ba003a034c14f0ac3")
!304 = !DISubroutineType(types: !305)
!305 = !{!247, !251, !251}
!306 = !{!301, !307, !308}
!307 = !DILocalVariable(name: "ecx", arg: 2, scope: !302, file: !303, line: 43, type: !251)
!308 = !DILocalVariable(name: "regs", scope: !302, file: !303, line: 54, type: !247)
!309 = !DILocation(line: 0, scope: !302, inlinedAt: !310)
!310 = distinct !DILocation(line: 46, column: 27, scope: !166)
!311 = !DILocation(line: 56, column: 5, scope: !302, inlinedAt: !310)
!312 = !{i64 2147921615, i64 2147921651, i64 2147921675}
!313 = !DILocation(line: 65, column: 4, scope: !302, inlinedAt: !310)
!314 = !DILocation(line: 0, scope: !302, inlinedAt: !315)
!315 = distinct !DILocation(line: 48, column: 27, scope: !166)
!316 = !DILocation(line: 56, column: 5, scope: !302, inlinedAt: !315)
!317 = !DILocation(line: 65, column: 4, scope: !302, inlinedAt: !315)
!318 = !DILocation(line: 48, column: 3, scope: !166)
!319 = !DILocation(line: 52, column: 23, scope: !166)
!320 = !DILocation(line: 52, column: 3, scope: !166)
!321 = !DILocalVariable(name: "eax", arg: 1, scope: !322, file: !303, line: 17, type: !251)
!322 = distinct !DISubprogram(name: "cpuid", scope: !303, file: !303, line: 17, type: !323, scopeLine: 17, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !325)
!323 = !DISubroutineType(types: !324)
!324 = !{!247, !251}
!325 = !{!321, !326}
!326 = !DILocalVariable(name: "regs", scope: !322, file: !303, line: 28, type: !247)
!327 = !DILocation(line: 0, scope: !322, inlinedAt: !328)
!328 = distinct !DILocation(line: 53, column: 4, scope: !166)
!329 = !DILocation(line: 30, column: 5, scope: !322, inlinedAt: !328)
!330 = !{i64 2147921400, i64 2147921436, i64 2147921460}
!331 = !DILocation(line: 62, column: 22, scope: !275)
!332 = !DILocation(line: 62, column: 38, scope: !275)
!333 = !DILocation(line: 62, column: 6, scope: !166)
!334 = !DILocation(line: 0, scope: !274)
!335 = !DILocation(line: 64, column: 22, scope: !278)
!336 = !DILocation(line: 64, column: 7, scope: !274)
!337 = !DILocation(line: 0, scope: !302, inlinedAt: !338)
!338 = distinct !DILocation(line: 65, column: 35, scope: !277)
!339 = !DILocation(line: 56, column: 5, scope: !302, inlinedAt: !338)
!340 = !DILocation(line: 65, column: 4, scope: !302, inlinedAt: !338)
!341 = !DILocation(line: 0, scope: !277)
!342 = !DILocation(line: 67, column: 3, scope: !277)
!343 = !DILocalVariable(name: "ext_ctrl_reg", arg: 1, scope: !344, file: !303, line: 70, type: !251)
!344 = distinct !DISubprogram(name: "xgetbv", scope: !303, file: !303, line: 70, type: !345, scopeLine: 70, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !347)
!345 = !DISubroutineType(cc: DW_CC_nocall, types: !346)
!346 = !{!155, !251}
!347 = !{!343, !348, !349}
!348 = !DILocalVariable(name: "lo", scope: !344, file: !303, line: 74, type: !251)
!349 = !DILocalVariable(name: "hi", scope: !344, file: !303, line: 74, type: !251)
!350 = !DILocation(line: 0, scope: !344, inlinedAt: !351)
!351 = distinct !DILocation(line: 69, column: 42, scope: !274)
!352 = !DILocation(line: 75, column: 3, scope: !344, inlinedAt: !351)
!353 = !{i64 371123}
!354 = !DILocation(line: 76, column: 34, scope: !344, inlinedAt: !351)
!355 = !DILocation(line: 77, column: 24, scope: !356)
!356 = distinct !DILexicalBlock(scope: !274, file: !1, line: 77, column: 7)
!357 = !DILocation(line: 77, column: 41, scope: !356)
!358 = !DILocation(line: 77, column: 7, scope: !274)
!359 = !DILocation(line: 100, column: 24, scope: !360)
!360 = distinct !DILexicalBlock(scope: !274, file: !1, line: 100, column: 7)
!361 = !DILocation(line: 100, column: 41, scope: !360)
!362 = !DILocation(line: 100, column: 7, scope: !274)
!363 = !DILocation(line: 103, column: 2, scope: !274)
!364 = !DILocation(line: 118, column: 6, scope: !166)
!365 = !DILocation(line: 118, column: 15, scope: !166)
!366 = !DILocation(line: 133, column: 31, scope: !166)
!367 = !DILocation(line: 133, column: 6, scope: !166)
!368 = !DILocation(line: 133, column: 10, scope: !166)
!369 = !DILocation(line: 139, column: 6, scope: !166)
!370 = !DILocation(line: 139, column: 13, scope: !166)
!371 = !DILocation(line: 145, column: 6, scope: !166)
!372 = !DILocation(line: 145, column: 14, scope: !166)
!373 = !DILocation(line: 151, column: 47, scope: !166)
!374 = !DILocation(line: 151, column: 6, scope: !166)
!375 = !DILocation(line: 151, column: 17, scope: !166)
!376 = !DILocation(line: 157, column: 6, scope: !166)
!377 = !DILocation(line: 157, column: 12, scope: !166)
!378 = !DILocation(line: 163, column: 6, scope: !166)
!379 = !DILocation(line: 163, column: 13, scope: !166)
!380 = !DILocation(line: 178, column: 8, scope: !381)
!381 = distinct !DILexicalBlock(scope: !166, file: !1, line: 170, column: 18)
!382 = !DILocation(line: 178, column: 15, scope: !381)
!383 = !DILocation(line: 186, column: 6, scope: !166)
!384 = !DILocation(line: 186, column: 12, scope: !166)
!385 = !DILocation(line: 215, column: 6, scope: !166)
!386 = !DILocation(line: 215, column: 18, scope: !166)
!387 = !DILocation(line: 221, column: 6, scope: !166)
!388 = !DILocation(line: 221, column: 23, scope: !166)
!389 = !DILocation(line: 239, column: 2, scope: !166)
!390 = !DILocation(line: 248, column: 41, scope: !391)
!391 = distinct !DILexicalBlock(scope: !166, file: !1, line: 239, column: 18)
!392 = !DILocation(line: 248, column: 86, scope: !391)
!393 = !DILocation(line: 248, column: 65, scope: !391)
!394 = !DILocation(line: 248, column: 20, scope: !391)
!395 = !DILocation(line: 249, column: 4, scope: !391)
!396 = !DILocation(line: 255, column: 20, scope: !391)
!397 = !DILocation(line: 256, column: 4, scope: !391)
!398 = !DILocation(line: 0, scope: !391)
!399 = !DILocation(line: 267, column: 2, scope: !166)
!400 = !DILocation(line: 0, scope: !401)
!401 = distinct !DILexicalBlock(scope: !166, file: !1, line: 267, column: 18)
!402 = !DILocation(line: 282, column: 6, scope: !166)
!403 = !DILocation(line: 282, column: 18, scope: !166)
!404 = !DILocation(line: 302, column: 6, scope: !166)
!405 = !DILocation(line: 302, column: 11, scope: !166)
!406 = !DILocation(line: 334, column: 6, scope: !166)
!407 = !DILocation(line: 334, column: 12, scope: !166)
!408 = !DILocation(line: 341, column: 6, scope: !166)
!409 = !DILocation(line: 341, column: 13, scope: !166)
!410 = !DILocation(line: 347, column: 6, scope: !166)
!411 = !DILocation(line: 347, column: 13, scope: !166)
!412 = !DILocation(line: 353, column: 6, scope: !166)
!413 = !DILocation(line: 353, column: 12, scope: !166)
!414 = !DILocation(line: 359, column: 6, scope: !166)
!415 = !DILocation(line: 359, column: 21, scope: !166)
!416 = !DILocation(line: 365, column: 21, scope: !166)
!417 = !DILocation(line: 365, column: 6, scope: !166)
!418 = !DILocation(line: 365, column: 10, scope: !166)
!419 = !DILocation(line: 413, column: 29, scope: !166)
!420 = !DILocation(line: 413, column: 6, scope: !166)
!421 = !DILocation(line: 413, column: 15, scope: !166)
!422 = !DILocation(line: 419, column: 29, scope: !166)
!423 = !DILocation(line: 419, column: 6, scope: !166)
!424 = !DILocation(line: 419, column: 15, scope: !166)
!425 = !DILocation(line: 425, column: 29, scope: !166)
!426 = !DILocation(line: 425, column: 6, scope: !166)
!427 = !DILocation(line: 431, column: 29, scope: !166)
!428 = !DILocation(line: 437, column: 29, scope: !166)
!429 = !DILocation(line: 443, column: 31, scope: !166)
!430 = !DILocation(line: 449, column: 31, scope: !166)
!431 = !DILocation(line: 455, column: 32, scope: !166)
!432 = !DILocation(line: 461, column: 33, scope: !166)
!433 = !DILocation(line: 467, column: 36, scope: !166)
!434 = !DILocation(line: 425, column: 15, scope: !166)
!435 = !DILocation(line: 473, column: 31, scope: !166)
!436 = !DILocation(line: 473, column: 6, scope: !166)
!437 = !DILocation(line: 473, column: 17, scope: !166)
!438 = !DILocation(line: 479, column: 34, scope: !166)
!439 = !DILocation(line: 479, column: 6, scope: !166)
!440 = !DILocation(line: 479, column: 20, scope: !166)
!441 = !DILocation(line: 485, column: 34, scope: !166)
!442 = !DILocation(line: 485, column: 6, scope: !166)
!443 = !DILocation(line: 485, column: 20, scope: !166)
!444 = !DILocation(line: 491, column: 39, scope: !166)
!445 = !DILocation(line: 491, column: 6, scope: !166)
!446 = !DILocation(line: 491, column: 25, scope: !166)
!447 = !DILocation(line: 497, column: 31, scope: !166)
!448 = !DILocation(line: 497, column: 6, scope: !166)
!449 = !DILocation(line: 497, column: 17, scope: !166)
!450 = !DILocation(line: 503, column: 6, scope: !166)
!451 = !DILocation(line: 503, column: 10, scope: !166)
!452 = !DILocation(line: 509, column: 44, scope: !166)
!453 = !DILocation(line: 509, column: 13, scope: !166)
!454 = !DILocation(line: 509, column: 6, scope: !166)
!455 = !DILocation(line: 509, column: 10, scope: !166)
!456 = !DILocation(line: 515, column: 18, scope: !166)
!457 = !DILocation(line: 515, column: 22, scope: !166)
!458 = !DILocation(line: 515, column: 6, scope: !166)
!459 = !DILocation(line: 515, column: 12, scope: !166)
!460 = !DILocation(line: 521, column: 21, scope: !166)
!461 = !DILocation(line: 521, column: 6, scope: !166)
!462 = !DILocation(line: 521, column: 10, scope: !166)
!463 = !DILocation(line: 543, column: 6, scope: !166)
!464 = !DILocation(line: 543, column: 17, scope: !166)
!465 = !DILocation(line: 549, column: 11, scope: !166)
!466 = !DILocation(line: 555, column: 12, scope: !166)
!467 = !DILocation(line: 570, column: 17, scope: !166)
!468 = !DILocation(line: 576, column: 12, scope: !166)
!469 = !DILocation(line: 582, column: 13, scope: !166)
!470 = !DILocation(line: 588, column: 10, scope: !166)
!471 = !DILocation(line: 594, column: 10, scope: !166)
!472 = !DILocation(line: 600, column: 11, scope: !166)
!473 = !DILocation(line: 606, column: 10, scope: !166)
!474 = !DILocation(line: 612, column: 10, scope: !166)
!475 = !DILocation(line: 618, column: 11, scope: !166)
!476 = !DILocation(line: 624, column: 16, scope: !166)
!477 = !DILocation(line: 630, column: 17, scope: !166)
!478 = !DILocation(line: 636, column: 11, scope: !166)
!479 = !DILocation(line: 642, column: 6, scope: !166)
!480 = !DILocation(line: 642, column: 13, scope: !166)
!481 = !DILocation(line: 648, column: 6, scope: !166)
!482 = !DILocation(line: 648, column: 13, scope: !166)
!483 = !DILocation(line: 654, column: 6, scope: !166)
!484 = !DILocation(line: 654, column: 10, scope: !166)
!485 = !DILocation(line: 656, column: 13, scope: !286)
!486 = !DILocation(line: 656, column: 6, scope: !166)
!487 = !DILocation(line: 0, scope: !322, inlinedAt: !488)
!488 = distinct !DILocation(line: 657, column: 47, scope: !285)
!489 = !DILocation(line: 30, column: 5, scope: !322, inlinedAt: !488)
!490 = !DILocation(line: 0, scope: !285)
!491 = !DILocation(line: 660, column: 25, scope: !291)
!492 = !DILocation(line: 660, column: 7, scope: !285)
!493 = !DILocation(line: 0, scope: !322, inlinedAt: !494)
!494 = distinct !DILocation(line: 661, column: 43, scope: !290)
!495 = !DILocation(line: 30, column: 5, scope: !322, inlinedAt: !494)
!496 = !DILocation(line: 0, scope: !290)
!497 = !DILocation(line: 669, column: 32, scope: !290)
!498 = !DILocation(line: 669, column: 52, scope: !290)
!499 = !DILocation(line: 669, column: 8, scope: !290)
!500 = !DILocation(line: 669, column: 12, scope: !290)
!501 = !DILocation(line: 677, column: 8, scope: !290)
!502 = !DILocation(line: 685, column: 8, scope: !290)
!503 = !DILocation(line: 693, column: 8, scope: !290)
!504 = !DILocation(line: 701, column: 32, scope: !290)
!505 = !DILocation(line: 701, column: 52, scope: !290)
!506 = !DILocation(line: 677, column: 12, scope: !290)
!507 = !DILocation(line: 685, column: 13, scope: !290)
!508 = !DILocation(line: 693, column: 12, scope: !290)
!509 = !DILocation(line: 701, column: 8, scope: !290)
!510 = !DILocation(line: 701, column: 12, scope: !290)
!511 = !DILocation(line: 702, column: 3, scope: !290)
!512 = !DILocation(line: 709, column: 6, scope: !166)
!513 = !DILocation(line: 709, column: 10, scope: !166)
!514 = !DILocation(line: 715, column: 13, scope: !166)
!515 = !DILocation(line: 721, column: 6, scope: !166)
!516 = !DILocation(line: 721, column: 12, scope: !166)
!517 = !DILocation(line: 724, column: 1, scope: !166)
; ModuleID = 'cpuinfo/src/x86/isa.c'
source_filename = "cpuinfo/src/x86/isa.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.cpuinfo_x86_isa = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
; Function Attrs: argmemonly nounwind optsize sanitize_memory
define hidden void @cpuinfo_x86_detect_isa(%struct.cpuinfo_x86_isa* noalias sret(%struct.cpuinfo_x86_isa) align 1 %agg.result, i64 %basic_info.coerce0, i64 %basic_info.coerce1, i64 %extended_info.coerce0, i64 %extended_info.coerce1, i32 noundef %max_base_index, i32 noundef %max_extended_index, i32 noundef %vendor, i32 noundef %uarch) local_unnamed_addr #0 !dbg !166 {
entry:
call void @llvm.dbg.value(metadata i64 %basic_info.coerce0, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%basic_info.sroa.1.8.extract.trunc = trunc i64 %basic_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %basic_info.sroa.1.8.extract.trunc, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%basic_info.sroa.18.8.extract.shift = lshr i64 %basic_info.coerce1, 32
call void @llvm.dbg.value(metadata i64 %basic_info.sroa.18.8.extract.shift, metadata !257, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i64 %extended_info.coerce0, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%extended_info.sroa.1.8.extract.trunc = trunc i64 %extended_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.1.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%extended_info.sroa.14.8.extract.shift = lshr i64 %extended_info.coerce1, 32
%extended_info.sroa.14.8.extract.trunc = trunc i64 %extended_info.sroa.14.8.extract.shift to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.14.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_base_index, metadata !259, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_extended_index, metadata !260, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %vendor, metadata !261, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %uarch, metadata !262, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.declare(metadata %struct.cpuinfo_x86_isa* %agg.result, metadata !263, metadata !DIExpression()), !dbg !298
%0 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 0, !dbg !298
tail call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 1 dereferenceable(74) %0, i8 0, i64 74, i1 false), !dbg !298
%cmp = icmp ugt i32 %max_base_index, 6, !dbg !299
br i1 %cmp, label %cond.true2, label %cond.end9, !dbg !300
cond.true2: ; preds = %entry
call void @llvm.dbg.value(metadata i32 7, metadata !301, metadata !DIExpression()) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 0, metadata !307, metadata !DIExpression()) #4, !dbg !309
%1 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #5, !dbg !311, !srcloc !312
%asmresult3.i = extractvalue { i32, i32, i32, i32 } %1, 1, !dbg !311
%asmresult4.i = extractvalue { i32, i32, i32, i32 } %1, 2, !dbg !311
%asmresult5.i = extractvalue { i32, i32, i32, i32 } %1, 3, !dbg !311
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult3.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult4.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult5.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !309
%retval.sroa.2.0.insert.ext.i = zext i32 %asmresult3.i to i64, !dbg !313
%retval.sroa.2.0.insert.shift.i = shl nuw i64 %retval.sroa.2.0.insert.ext.i, 32, !dbg !313
%retval.sroa.5.8.insert.ext.i = zext i32 %asmresult5.i to i64, !dbg !313
%retval.sroa.5.8.insert.shift.i = shl nuw i64 %retval.sroa.5.8.insert.ext.i, 32, !dbg !313
%retval.sroa.3.8.insert.ext.i = zext i32 %asmresult4.i to i64, !dbg !313
%retval.sroa.3.8.insert.insert.i = or i64 %retval.sroa.5.8.insert.shift.i, %retval.sroa.3.8.insert.ext.i, !dbg !313
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 7, metadata !301, metadata !DIExpression()) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 1, metadata !307, metadata !DIExpression()) #4, !dbg !314
%2 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #5, !dbg !316, !srcloc !312
%asmresult.i858 = extractvalue { i32, i32, i32, i32 } %2, 0, !dbg !316
call void @llvm.dbg.value(metadata i32 %asmresult.i858, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !314
%retval.sroa.0.0.insert.ext.i864 = trunc i32 %asmresult.i858 to i8, !dbg !317
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i858), metadata !265, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.bo935 = lshr i8 %retval.sroa.0.0.insert.ext.i864, 5, !dbg !318
%phi.bo936 = and i8 %phi.bo935, 1, !dbg !318
br label %cond.end9, !dbg !318
cond.end9: ; preds = %entry, %cond.true2
%structured_feature_info0.sroa.25.0932 = phi i64 [ %retval.sroa.3.8.insert.insert.i, %cond.true2 ], [ 0, %entry ]
%structured_feature_info0.sroa.0.0930 = phi i64 [ %retval.sroa.2.0.insert.shift.i, %cond.true2 ], [ 0, %entry ]
%structured_feature_info1.sroa.0.0 = phi i8 [ %phi.bo936, %cond.true2 ], [ 0, %entry ]
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !266, metadata !DIExpression()), !dbg !297
%cmp10 = icmp ugt i32 %max_extended_index, -2147483641, !dbg !319
br i1 %cmp10, label %cond.true11, label %cond.end18, !dbg !320
cond.true11: ; preds = %cond.end9
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !321, metadata !DIExpression()) #4, !dbg !327
%3 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483640) #5, !dbg !329, !srcloc !330
%asmresult2.i = extractvalue { i32, i32, i32, i32 } %3, 1, !dbg !329
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 %asmresult2.i, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.cast = trunc i32 %asmresult2.i to i8, !dbg !320
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult2.i, i32 undef), metadata !268, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%phi.bo = and i8 %phi.cast, 1, !dbg !320
br label %cond.end18, !dbg !320
cond.end18: ; preds = %cond.end9, %cond.true11
%processor_capacity_info.sroa.0.0 = phi i8 [ %phi.bo, %cond.true11 ], [ 0, %cond.end9 ]
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !271, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 201326592, metadata !272, metadata !DIExpression()), !dbg !297
%and = and i32 %basic_info.sroa.1.8.extract.trunc, 201326592, !dbg !331
%cmp20 = icmp eq i32 %and, 201326592, !dbg !332
br i1 %cmp20, label %if.then, label %if.end54, !dbg !333
if.then: ; preds = %cond.end18
call void @llvm.dbg.value(metadata i64 0, metadata !273, metadata !DIExpression()), !dbg !334
%cmp21 = icmp ugt i32 %max_base_index, 12, !dbg !335
br i1 %cmp21, label %if.then22, label %if.end, !dbg !336
if.then22: ; preds = %if.then
call void @llvm.dbg.value(metadata i32 13, metadata !301, metadata !DIExpression()) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 0, metadata !307, metadata !DIExpression()) #4, !dbg !337
%4 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 13, i32 0) #5, !dbg !339, !srcloc !312
%asmresult.i885 = extractvalue { i32, i32, i32, i32 } %4, 0, !dbg !339
call void @llvm.dbg.value(metadata i32 %asmresult.i885, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !337
%retval.sroa.0.0.insert.ext.i891 = zext i32 %asmresult.i885 to i64, !dbg !340
call void @llvm.dbg.value(metadata !DIArgList(i32 undef, i64 %retval.sroa.0.0.insert.ext.i891), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !341
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 undef), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !341
call void @llvm.dbg.value(metadata i64 %retval.sroa.0.0.insert.ext.i891, metadata !273, metadata !DIExpression()), !dbg !334
br label %if.end, !dbg !342
if.end: ; preds = %if.then22, %if.then
%xcr0_valid_bits.0 = phi i64 [ %retval.sroa.0.0.insert.ext.i891, %if.then22 ], [ 0, %if.then ], !dbg !334
call void @llvm.dbg.value(metadata i64 %xcr0_valid_bits.0, metadata !273, metadata !DIExpression()), !dbg !334
call void @llvm.dbg.value(metadata i32 0, metadata !343, metadata !DIExpression()) #4, !dbg !350
%5 = tail call { i32, i32 } asm ".byte 0x0F, 0x01, 0xD0", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #5, !dbg !352, !srcloc !353
%asmresult.i899 = extractvalue { i32, i32 } %5, 0, !dbg !352
call void @llvm.dbg.value(metadata i32 %asmresult.i899, metadata !348, metadata !DIExpression()) #4, !dbg !350
call void @llvm.dbg.value(metadata i32 undef, metadata !349, metadata !DIExpression()) #4, !dbg !350
%conv2.i = zext i32 %asmresult.i899 to i64, !dbg !354
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i64 %conv2.i), metadata !279, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value)), !dbg !334
call void @llvm.dbg.value(metadata i64 6, metadata !281, metadata !DIExpression()), !dbg !334
%6 = insertelement <2 x i64> poison, i64 %xcr0_valid_bits.0, i32 0, !dbg !355
%7 = insertelement <2 x i64> %6, i64 %xcr0_valid_bits.0, i32 1, !dbg !355
%8 = and <2 x i64> %7, <i64 6, i64 230>, !dbg !355
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 230, metadata !282, metadata !DIExpression()), !dbg !334
%9 = icmp eq <2 x i64> %8, <i64 6, i64 230>, !dbg !357
%10 = insertelement <2 x i64> poison, i64 %conv2.i, i32 0, !dbg !358
%11 = insertelement <2 x i64> %10, i64 %conv2.i, i32 1, !dbg !358
%12 = and <2 x i64> %11, <i64 6, i64 230>, !dbg !358
%13 = icmp eq <2 x i64> %12, <i64 6, i64 230>, !dbg !358
%14 = select <2 x i1> %9, <2 x i1> %13, <2 x i1> zeroinitializer, !dbg !358
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 24, metadata !283, metadata !DIExpression()), !dbg !334
%and45 = and i64 %xcr0_valid_bits.0, 24, !dbg !359
%cmp46 = icmp eq i64 %and45, 24, !dbg !361
%and49 = and i64 %conv2.i, 24, !dbg !362
%cmp50 = icmp eq i64 %and49, 24, !dbg !362
%mpx_regs.0 = select i1 %cmp46, i1 %cmp50, i1 false, !dbg !362
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
br label %if.end54, !dbg !363
if.end54: ; preds = %if.end, %cond.end18
%mpx_regs.1 = phi i1 [ %mpx_regs.0, %if.end ], [ false, %cond.end18 ], !dbg !297
%15 = phi <2 x i1> [ %14, %if.end ], [ zeroinitializer, %cond.end18 ], !dbg !297
%shuffle937 = shufflevector <2 x i1> %15, <2 x i1> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1>, !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
%sysenter = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 2, !dbg !364
%and56815 = lshr i64 %basic_info.coerce1, 43, !dbg !365
%16 = trunc i64 %and56815 to i8, !dbg !365
%17 = and i8 %16, 1, !dbg !365
store i8 %17, i8* %sysenter, align 1, !dbg !365
%or61820 = or i64 %extended_info.sroa.14.8.extract.shift, %basic_info.sroa.18.8.extract.shift, !dbg !366
%msr = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 3, !dbg !367
%18 = trunc i64 %or61820 to i8, !dbg !368
%19 = lshr i8 %18, 5, !dbg !368
%20 = and i8 %19, 1, !dbg !368
store i8 %20, i8* %msr, align 1, !dbg !368
%clzero = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 4, !dbg !369
store i8 %processor_capacity_info.sroa.0.0, i8* %clzero, align 1, !dbg !370
%clflush = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 5, !dbg !371
%and74817 = lshr i64 %basic_info.coerce1, 51, !dbg !372
%21 = trunc i64 %and74817 to i8, !dbg !372
%22 = and i8 %21, 1, !dbg !372
store i8 %22, i8* %clflush, align 1, !dbg !372
%structured_feature_info0.sroa.0.4.extract.shift = lshr exact i64 %structured_feature_info0.sroa.0.0930, 32, !dbg !373
%structured_feature_info0.sroa.0.4.extract.trunc = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i32, !dbg !373
%clflushopt = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 6, !dbg !374
%and80818 = lshr i64 %structured_feature_info0.sroa.0.0930, 55, !dbg !375
%23 = trunc i64 %and80818 to i8, !dbg !375
%24 = and i8 %23, 1, !dbg !375
store i8 %24, i8* %clflushopt, align 1, !dbg !375
%mwait = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 7, !dbg !376
%25 = trunc i64 %basic_info.coerce1 to i8, !dbg !377
%26 = lshr i8 %25, 3, !dbg !377
%27 = and i8 %26, 1, !dbg !377
store i8 %27, i8* %mwait, align 1, !dbg !377
%mwaitx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 8, !dbg !378
%and92 = lshr i32 %extended_info.sroa.1.8.extract.trunc, 29, !dbg !379
%28 = trunc i32 %and92 to i8, !dbg !379
%29 = and i8 %28, 1, !dbg !379
store i8 %29, i8* %mwaitx, align 1, !dbg !379
%fxsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 9, !dbg !380
%and100821 = lshr i64 %or61820, 24, !dbg !382
%30 = trunc i64 %and100821 to i8, !dbg !382
%31 = and i8 %30, 1, !dbg !382
store i8 %31, i8* %fxsave, align 1, !dbg !382
%xsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 10, !dbg !383
%and106 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 26, !dbg !384
%32 = trunc i32 %and106 to i8, !dbg !384
%33 = and i8 %32, 1, !dbg !384
store i8 %33, i8* %xsave, align 1, !dbg !384
%three_d_now = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 11, !dbg !385
%extended_info.coerce1.lobit = lshr i64 %extended_info.coerce1, 63, !dbg !386
%34 = trunc i64 %extended_info.coerce1.lobit to i8, !dbg !386
store i8 %34, i8* %three_d_now, align 1, !dbg !386
%three_d_now_plus = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 12, !dbg !387
%and118 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 30, !dbg !388
%35 = trunc i32 %and118 to i8, !dbg !388
%36 = and i8 %35, 1, !dbg !388
store i8 %36, i8* %three_d_now_plus, align 1, !dbg !388
switch i32 %vendor, label %sw.default132 [
i32 16, label %sw.bb
i32 2, label %sw.bb
i32 1, label %sw.epilog162
], !dbg !389
sw.bb: ; preds = %if.end54, %if.end54
%and124 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !390
%and126 = and i32 %extended_info.sroa.14.8.extract.trunc, -536870912, !dbg !392
%or127 = or i32 %and126, %and124, !dbg !393
%tobool128 = icmp ne i32 %or127, 0, !dbg !394
br label %sw.epilog140, !dbg !395
sw.default132: ; preds = %if.end54
%tobool135 = icmp ugt i32 %extended_info.sroa.14.8.extract.trunc, 1073741823, !dbg !396
br label %sw.epilog140, !dbg !397
sw.epilog140: ; preds = %sw.default132, %sw.bb
%tobool135.sink = phi i1 [ %tobool135, %sw.default132 ], [ %tobool128, %sw.bb ]
%prefetch138 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 13, !dbg !398
%frombool139 = zext i1 %tobool135.sink to i8, !dbg !398
store i8 %frombool139, i8* %prefetch138, align 1, !dbg !398
%switch.selectcmp.case1 = icmp eq i32 %vendor, 2, !dbg !399
%switch.selectcmp.case2 = icmp eq i32 %vendor, 16, !dbg !399
%switch.selectcmp = or i1 %switch.selectcmp.case1, %switch.selectcmp.case2, !dbg !399
%37 = select i1 %switch.selectcmp, i32 -536870912, i32 -1073741824, !dbg !399
br label %sw.epilog162, !dbg !399
sw.epilog162: ; preds = %if.end54, %sw.epilog140
%.sink = phi i32 [ %37, %sw.epilog140 ], [ -1073741824, %if.end54 ]
%and153 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !400
%and155 = and i32 %.sink, %extended_info.sroa.14.8.extract.trunc, !dbg !400
%or156 = or i32 %and155, %and153, !dbg !400
%tobool157 = icmp ne i32 %or156, 0, !dbg !400
%prefetchw160 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 14, !dbg !400
%frombool161 = zext i1 %tobool157 to i8, !dbg !400
store i8 %frombool161, i8* %prefetchw160, align 1, !dbg !400
%prefetchwt1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 15, !dbg !402
%38 = trunc i64 %structured_feature_info0.sroa.25.0932 to i8, !dbg !403
%39 = and i8 %38, 1, !dbg !403
store i8 %39, i8* %prefetchwt1, align 1, !dbg !403
%sse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 16, !dbg !404
%40 = and i8 %25, 1, !dbg !405
store i8 %40, i8* %sse3, align 1, !dbg !405
%ssse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 17, !dbg !406
%and176822 = lshr i64 %basic_info.coerce1, 9, !dbg !407
%41 = trunc i64 %and176822 to i8, !dbg !407
%42 = and i8 %41, 1, !dbg !407
store i8 %42, i8* %ssse3, align 1, !dbg !407
%sse4_1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 18, !dbg !408
%and182823 = lshr i64 %basic_info.coerce1, 19, !dbg !409
%43 = trunc i64 %and182823 to i8, !dbg !409
%44 = and i8 %43, 1, !dbg !409
store i8 %44, i8* %sse4_1, align 1, !dbg !409
%sse4_2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 19, !dbg !410
%and188824 = lshr i64 %basic_info.coerce1, 20, !dbg !411
%45 = trunc i64 %and188824 to i8, !dbg !411
%46 = and i8 %45, 1, !dbg !411
store i8 %46, i8* %sse4_2, align 1, !dbg !411
%sse4a = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 20, !dbg !412
%47 = trunc i64 %extended_info.coerce1 to i8, !dbg !413
%48 = lshr i8 %47, 6, !dbg !413
%49 = and i8 %48, 1, !dbg !413
store i8 %49, i8* %sse4a, align 1, !dbg !413
%misaligned_sse = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 21, !dbg !414
%50 = lshr i8 %47, 7, !dbg !415
store i8 %50, i8* %misaligned_sse, align 1, !dbg !415
%51 = insertelement <8 x i32> poison, i32 %basic_info.sroa.1.8.extract.trunc, i32 0, !dbg !416
%52 = insertelement <8 x i32> %51, i32 %extended_info.sroa.1.8.extract.trunc, i32 1, !dbg !416
%53 = insertelement <8 x i32> %52, i32 %structured_feature_info0.sroa.0.4.extract.trunc, i32 2, !dbg !416
%shuffle938 = shufflevector <8 x i32> %53, <8 x i32> poison, <8 x i32> <i32 0, i32 0, i32 1, i32 1, i32 0, i32 2, i32 2, i32 2>, !dbg !416
%54 = and <8 x i32> %shuffle938, <i32 268435456, i32 4096, i32 65536, i32 2048, i32 536870912, i32 32, i32 65536, i32 67108864>, !dbg !416
%avx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 22, !dbg !417
%55 = icmp ne <8 x i32> %54, zeroinitializer, !dbg !416
%56 = select <8 x i1> %shuffle937, <8 x i1> %55, <8 x i1> zeroinitializer, !dbg !416
%57 = zext <8 x i1> %56 to <8 x i8>, !dbg !418
%58 = bitcast i8* %avx to <8 x i8>*, !dbg !418
store <8 x i8> %57, <8 x i8>* %58, align 1, !dbg !418
%and287 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 134217728, !dbg !419
%tobool288 = icmp ne i32 %and287, 0, !dbg !419
%59 = extractelement <8 x i1> %shuffle937, i32 6, !dbg !419
%60 = select i1 %59, i1 %tobool288, i1 false, !dbg !419
%avx512er = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 30, !dbg !420
%frombool292 = zext i1 %60 to i8, !dbg !421
store i8 %frombool292, i8* %avx512er, align 1, !dbg !421
%and297 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 268435456, !dbg !422
%tobool298 = icmp ne i32 %and297, 0, !dbg !422
%61 = select i1 %59, i1 %tobool298, i1 false, !dbg !422
%avx512cd = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 31, !dbg !423
%frombool302 = zext i1 %61 to i8, !dbg !424
store i8 %frombool302, i8* %avx512cd, align 1, !dbg !424
%and307827 = lshr i64 %structured_feature_info0.sroa.0.0930, 49, !dbg !425
%62 = trunc i64 %and307827 to i8, !dbg !425
%avx512dq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 32, !dbg !426
%and317 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 30, !dbg !427
%63 = trunc i32 %and317 to i8, !dbg !427
%64 = insertelement <2 x i8> poison, i8 %62, i32 0, !dbg !425
%65 = insertelement <2 x i8> %64, i8 %63, i32 1, !dbg !425
%66 = and <2 x i8> %65, <i8 1, i8 1>, !dbg !425
%and327.lobit = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 31, !dbg !428
%67 = trunc i32 %and327.lobit to i8, !dbg !428
%and337828 = lshr i64 %structured_feature_info0.sroa.0.0930, 53, !dbg !429
%68 = trunc i64 %and337828 to i8, !dbg !429
%69 = and i8 %68, 1, !dbg !429
%70 = lshr i8 %38, 1, !dbg !430
%71 = lshr i8 %38, 6, !dbg !431
%72 = insertelement <2 x i64> poison, i64 %structured_feature_info0.sroa.25.0932, i32 0, !dbg !432
%73 = insertelement <2 x i64> %72, i64 %structured_feature_info0.sroa.25.0932, i32 1, !dbg !432
%74 = lshr <2 x i64> %73, <i64 12, i64 14>, !dbg !432
%75 = trunc <2 x i64> %74 to <2 x i8>, !dbg !432
%76 = insertelement <4 x i8> poison, i8 %70, i32 0, !dbg !430
%77 = insertelement <4 x i8> %76, i8 %71, i32 1, !dbg !430
%78 = shufflevector <2 x i8> %75, <2 x i8> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>, !dbg !430
%79 = shufflevector <4 x i8> %77, <4 x i8> %78, <4 x i32> <i32 0, i32 1, i32 4, i32 5>, !dbg !430
%80 = and <4 x i8> %79, <i8 1, i8 1, i8 1, i8 1>, !dbg !430
%81 = insertelement <8 x i1> poison, i1 %59, i32 0, !dbg !425
%82 = insertelement <8 x i1> %81, i1 %59, i32 1, !dbg !425
%83 = insertelement <8 x i1> %82, i1 %59, i32 2, !dbg !425
%84 = insertelement <8 x i1> %83, i1 %59, i32 3, !dbg !425
%85 = insertelement <8 x i1> %84, i1 %59, i32 4, !dbg !425
%86 = insertelement <8 x i1> %85, i1 %59, i32 5, !dbg !425
%87 = insertelement <8 x i1> %86, i1 %59, i32 6, !dbg !425
%88 = insertelement <8 x i1> %87, i1 %59, i32 7, !dbg !425
%89 = shufflevector <2 x i8> %66, <2 x i8> poison, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !425
%90 = insertelement <8 x i8> %89, i8 %67, i32 2, !dbg !425
%91 = insertelement <8 x i8> %90, i8 %69, i32 3, !dbg !425
%92 = shufflevector <4 x i8> %80, <4 x i8> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !425
%93 = shufflevector <8 x i8> %91, <8 x i8> %92, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 8, i32 9, i32 10, i32 11>, !dbg !425
%94 = select <8 x i1> %88, <8 x i8> %93, <8 x i8> zeroinitializer, !dbg !425
%95 = bitcast i8* %avx512dq to <8 x i8>*, !dbg !433
store <8 x i8> %94, <8 x i8>* %95, align 1, !dbg !433
%and387833 = lshr i64 %structured_feature_info0.sroa.25.0932, 11, !dbg !434
%96 = trunc i64 %and387833 to i8, !dbg !434
%97 = and i8 %96, 1, !dbg !434
%98 = select i1 %59, i8 %97, i8 0, !dbg !434
%avx512vnni = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 40, !dbg !435
store i8 %98, i8* %avx512vnni, align 1, !dbg !436
%sum.shift = lshr i64 %structured_feature_info0.sroa.25.0932, 34, !dbg !437
%and397834 = trunc i64 %sum.shift to i8, !dbg !437
%and397.lobit = and i8 %and397834, 1, !dbg !437
%99 = select i1 %59, i8 %and397.lobit, i8 0, !dbg !437
%avx512_4vnniw = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 43, !dbg !438
store i8 %99, i8* %avx512_4vnniw, align 1, !dbg !439
%sum.shift835 = lshr i64 %structured_feature_info0.sroa.25.0932, 35, !dbg !440
%and407836 = trunc i64 %sum.shift835 to i8, !dbg !440
%and407.lobit = and i8 %and407836, 1, !dbg !440
%100 = select i1 %59, i8 %and407.lobit, i8 0, !dbg !440
%avx512_4fmaps = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 44, !dbg !441
store i8 %100, i8* %avx512_4fmaps, align 1, !dbg !442
%sum.shift837 = lshr i64 %structured_feature_info0.sroa.25.0932, 40, !dbg !443
%and417838 = trunc i64 %sum.shift837 to i8, !dbg !443
%and417.lobit = and i8 %and417838, 1, !dbg !443
%101 = select i1 %59, i8 %and417.lobit, i8 0, !dbg !443
%avx512vp2intersect = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 42, !dbg !444
store i8 %101, i8* %avx512vp2intersect, align 1, !dbg !445
%102 = select i1 %59, i8 %structured_feature_info1.sroa.0.0, i8 0, !dbg !446
%avx512bf16 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 41, !dbg !447
store i8 %102, i8* %avx512bf16, align 1, !dbg !448
%hle = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 45, !dbg !449
%and434840 = lshr i64 %structured_feature_info0.sroa.0.0930, 36, !dbg !450
%103 = trunc i64 %and434840 to i8, !dbg !450
%104 = and i8 %103, 1, !dbg !450
store i8 %104, i8* %hle, align 1, !dbg !450
%and440 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 2048, !dbg !451
%tobool441 = icmp ne i32 %and440, 0, !dbg !452
%rtm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 46, !dbg !453
%and440.lobit = lshr exact i32 %and440, 11, !dbg !454
%105 = trunc i32 %and440.lobit to i8, !dbg !454
store i8 %105, i8* %rtm, align 1, !dbg !454
%tobool446 = icmp ne i8 %104, 0, !dbg !455
%106 = select i1 %tobool446, i1 true, i1 %tobool441, !dbg !456
%xtest = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 47, !dbg !457
%frombool451 = zext i1 %106 to i8, !dbg !458
store i8 %frombool451, i8* %xtest, align 1, !dbg !458
%and456841 = lshr i64 %structured_feature_info0.sroa.0.0930, 46, !dbg !459
%107 = trunc i64 %and456841 to i8, !dbg !459
%108 = and i8 %107, 1, !dbg !459
%109 = select i1 %mpx_regs.1, i8 %108, i8 0, !dbg !459
%mpx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 48, !dbg !460
store i8 %109, i8* %mpx, align 1, !dbg !461
%cmpxchg16b = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 49, !dbg !462
%and463842 = lshr i64 %basic_info.coerce1, 13, !dbg !463
%110 = trunc i64 %and463842 to i8, !dbg !463
%and469843 = lshr i64 %structured_feature_info0.sroa.0.0930, 56, !dbg !464
%111 = trunc i64 %and469843 to i8, !dbg !464
%and475844 = lshr i64 %basic_info.coerce1, 22, !dbg !465
%112 = trunc i64 %and475844 to i8, !dbg !465
%113 = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i8, !dbg !466
%114 = lshr i8 %47, 5, !dbg !467
%and499846 = lshr i64 %basic_info.coerce1, 23, !dbg !468
%115 = trunc i64 %and499846 to i8, !dbg !468
%and505847 = lshr i64 %extended_info.coerce1, 21, !dbg !469
%116 = trunc i64 %and505847 to i8, !dbg !469
%117 = insertelement <2 x i64> poison, i64 %structured_feature_info0.sroa.0.0930, i32 0, !dbg !470
%118 = insertelement <2 x i64> %117, i64 %structured_feature_info0.sroa.0.0930, i32 1, !dbg !470
%119 = lshr <2 x i64> %118, <i64 35, i64 40>, !dbg !470
%120 = trunc <2 x i64> %119 to <2 x i8>, !dbg !470
%and523850 = lshr i64 %structured_feature_info0.sroa.0.0930, 51, !dbg !471
%121 = trunc i64 %and523850 to i8, !dbg !471
%and529 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 25, !dbg !472
%122 = trunc i32 %and529 to i8, !dbg !472
%and535851 = lshr i64 %structured_feature_info0.sroa.25.0932, 9, !dbg !473
%123 = trunc i64 %and535851 to i8, !dbg !473
%124 = lshr i8 %25, 1, !dbg !474
%125 = lshr <2 x i64> %73, <i64 10, i64 8>, !dbg !475
%126 = trunc <2 x i64> %125 to <2 x i8>, !dbg !475
%127 = insertelement <16 x i8> poison, i8 %110, i32 0, !dbg !463
%128 = insertelement <16 x i8> %127, i8 %111, i32 1, !dbg !463
%129 = insertelement <16 x i8> %128, i8 %112, i32 2, !dbg !463
%130 = insertelement <16 x i8> %129, i8 %47, i32 3, !dbg !463
%131 = insertelement <16 x i8> %130, i8 %113, i32 4, !dbg !463
%132 = insertelement <16 x i8> %131, i8 %114, i32 5, !dbg !463
%133 = insertelement <16 x i8> %132, i8 %115, i32 6, !dbg !463
%134 = insertelement <16 x i8> %133, i8 %116, i32 7, !dbg !463
%135 = shufflevector <2 x i8> %120, <2 x i8> poison, <16 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !463
%136 = shufflevector <16 x i8> %134, <16 x i8> %135, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>, !dbg !463
%137 = insertelement <16 x i8> %136, i8 %121, i32 10, !dbg !463
%138 = insertelement <16 x i8> %137, i8 %122, i32 11, !dbg !463
%139 = insertelement <16 x i8> %138, i8 %123, i32 12, !dbg !463
%140 = insertelement <16 x i8> %139, i8 %124, i32 13, !dbg !463
%141 = shufflevector <2 x i8> %126, <2 x i8> poison, <16 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>, !dbg !463
%142 = shufflevector <16 x i8> %140, <16 x i8> %141, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 16, i32 17>, !dbg !463
%143 = and <16 x i8> %142, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>, !dbg !463
%144 = bitcast i8* %cmpxchg16b to <16 x i8>*, !dbg !463
store <16 x i8> %143, <16 x i8>* %144, align 1, !dbg !463
%rdrand = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 65, !dbg !476
%and559 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 30, !dbg !477
%145 = trunc i32 %and559 to i8, !dbg !477
%146 = and i8 %145, 1, !dbg !477
store i8 %146, i8* %rdrand, align 1, !dbg !477
%rdseed = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 66, !dbg !478
%and565855 = lshr i64 %structured_feature_info0.sroa.0.0930, 50, !dbg !479
%147 = trunc i64 %and565855 to i8, !dbg !479
%148 = and i8 %147, 1, !dbg !479
store i8 %148, i8* %rdseed, align 1, !dbg !479
%sha = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 67, !dbg !480
%and571 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 29, !dbg !481
%149 = trunc i32 %and571 to i8, !dbg !481
%150 = and i8 %149, 1, !dbg !481
store i8 %150, i8* %sha, align 1, !dbg !481
%cmp576 = icmp eq i32 %vendor, 11, !dbg !482
br i1 %cmp576, label %if.then578, label %if.end611, !dbg !483
if.then578: ; preds = %sw.epilog162
call void @llvm.dbg.value(metadata i32 -1073741824, metadata !321, metadata !DIExpression()) #4, !dbg !484
%151 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741824) #5, !dbg !486, !srcloc !330
%asmresult.i900 = extractvalue { i32, i32, i32, i32 } %151, 0, !dbg !486
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !484
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !484
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !484
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !484
call void @llvm.dbg.value(metadata i64 undef, metadata !284, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !487
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i900), metadata !284, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !487
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !287, metadata !DIExpression()), !dbg !487
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !288, metadata !DIExpression()), !dbg !487
%cmp581 = icmp ugt i32 %asmresult.i900, -1073741824, !dbg !488
br i1 %cmp581, label %if.then583, label %if.end611, !dbg !489
if.then583: ; preds = %if.then578
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !321, metadata !DIExpression()) #4, !dbg !490
%152 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741823) #5, !dbg !492, !srcloc !330
%asmresult4.i917 = extractvalue { i32, i32, i32, i32 } %152, 3, !dbg !492
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !490
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !490
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !490
call void @llvm.dbg.value(metadata i32 %asmresult4.i917, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !490
call void @llvm.dbg.value(metadata i64 undef, metadata !289, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !493
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult4.i917, i32 undef), metadata !289, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !493
call void @llvm.dbg.value(metadata i32 12, metadata !292, metadata !DIExpression()), !dbg !493
%and586 = and i32 %asmresult4.i917, 12, !dbg !494
%cmp587 = icmp eq i32 %and586, 12, !dbg !495
%rng = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 68, !dbg !496
%frombool589 = zext i1 %cmp587 to i8, !dbg !497
store i8 %frombool589, i8* %rng, align 1, !dbg !497
call void @llvm.dbg.value(metadata i32 192, metadata !293, metadata !DIExpression()), !dbg !493
%ace = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 69, !dbg !498
call void @llvm.dbg.value(metadata i32 768, metadata !294, metadata !DIExpression()), !dbg !493
%ace2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 70, !dbg !499
call void @llvm.dbg.value(metadata i32 3072, metadata !295, metadata !DIExpression()), !dbg !493
%phe = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 71, !dbg !500
call void @llvm.dbg.value(metadata i32 12288, metadata !296, metadata !DIExpression()), !dbg !493
%153 = insertelement <4 x i32> poison, i32 %asmresult4.i917, i32 0, !dbg !501
%shuffle = shufflevector <4 x i32> %153, <4 x i32> poison, <4 x i32> zeroinitializer, !dbg !501
%154 = and <4 x i32> %shuffle, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !501
%155 = icmp eq <4 x i32> %154, <i32 12288, i32 3072, i32 768, i32 192>, !dbg !502
%156 = extractelement <4 x i1> %155, i32 3, !dbg !503
%frombool594 = zext i1 %156 to i8, !dbg !503
store i8 %frombool594, i8* %ace, align 1, !dbg !503
%157 = extractelement <4 x i1> %155, i32 2, !dbg !504
%frombool599 = zext i1 %157 to i8, !dbg !504
store i8 %frombool599, i8* %ace2, align 1, !dbg !504
%158 = extractelement <4 x i1> %155, i32 1, !dbg !505
%frombool604 = zext i1 %158 to i8, !dbg !505
store i8 %frombool604, i8* %phe, align 1, !dbg !505
%pmm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 72, !dbg !506
%159 = extractelement <4 x i1> %155, i32 0, !dbg !507
%frombool609 = zext i1 %159 to i8, !dbg !507
store i8 %frombool609, i8* %pmm, align 1, !dbg !507
br label %if.end611, !dbg !508
if.end611: ; preds = %if.then578, %if.then583, %sw.epilog162
%lwp = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 73, !dbg !509
%and613856 = lshr i64 %extended_info.coerce1, 15, !dbg !510
%160 = trunc i64 %and613856 to i8, !dbg !510
%161 = and i8 %160, 1, !dbg !510
store i8 %161, i8* %lwp, align 1, !dbg !510
%and619 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 27, !dbg !511
%162 = trunc i32 %and619 to i8, !dbg !511
%163 = and i8 %162, 1, !dbg !511
store i8 %163, i8* %0, align 1, !dbg !511
%rdpid = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 1, !dbg !512
%and625857 = lshr i64 %structured_feature_info0.sroa.25.0932, 22, !dbg !513
%164 = trunc i64 %and625857 to i8, !dbg !513
%165 = and i8 %164, 1, !dbg !513
store i8 %165, i8* %rdpid, align 1, !dbg !513
ret void, !dbg !514
}
; Function Attrs: mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly mustprogress nofree nounwind willreturn writeonly
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #2
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
attributes #0 = { argmemonly nounwind optsize sanitize_memory "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="x86-64-v3" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fxsr,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #2 = { argmemonly mustprogress nofree nounwind willreturn writeonly }
attributes #3 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
attributes #4 = { nounwind }
attributes #5 = { nounwind readnone }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!160, !161, !162, !163, !164}
!llvm.ident = !{!165}
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !154, nameTableKind: None)
!1 = !DIFile(filename: "cpuinfo/src/x86/isa.c", directory: "workspace", checksumkind: CSK_MD5, checksum: "1f066767a48d692a7df3bd0b30681f63")
!2 = !{!3, !37}
!3 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_vendor", file: !4, line: 137, baseType: !5, size: 32, elements: !6)
!4 = !DIFile(filename: "cpuinfo/include/cpuinfo.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "b2d9902226e7212a1e7a8aecca87c8f4")
!5 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned)
!6 = !{!7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36}
!7 = !DIEnumerator(name: "cpuinfo_vendor_unknown", value: 0)
!8 = !DIEnumerator(name: "cpuinfo_vendor_intel", value: 1)
!9 = !DIEnumerator(name: "cpuinfo_vendor_amd", value: 2)
!10 = !DIEnumerator(name: "cpuinfo_vendor_arm", value: 3)
!11 = !DIEnumerator(name: "cpuinfo_vendor_qualcomm", value: 4)
!12 = !DIEnumerator(name: "cpuinfo_vendor_apple", value: 5)
!13 = !DIEnumerator(name: "cpuinfo_vendor_samsung", value: 6)
!14 = !DIEnumerator(name: "cpuinfo_vendor_nvidia", value: 7)
!15 = !DIEnumerator(name: "cpuinfo_vendor_mips", value: 8)
!16 = !DIEnumerator(name: "cpuinfo_vendor_ibm", value: 9)
!17 = !DIEnumerator(name: "cpuinfo_vendor_ingenic", value: 10)
!18 = !DIEnumerator(name: "cpuinfo_vendor_via", value: 11)
!19 = !DIEnumerator(name: "cpuinfo_vendor_cavium", value: 12)
!20 = !DIEnumerator(name: "cpuinfo_vendor_broadcom", value: 13)
!21 = !DIEnumerator(name: "cpuinfo_vendor_apm", value: 14)
!22 = !DIEnumerator(name: "cpuinfo_vendor_huawei", value: 15)
!23 = !DIEnumerator(name: "cpuinfo_vendor_hygon", value: 16)
!24 = !DIEnumerator(name: "cpuinfo_vendor_texas_instruments", value: 30)
!25 = !DIEnumerator(name: "cpuinfo_vendor_marvell", value: 31)
!26 = !DIEnumerator(name: "cpuinfo_vendor_rdc", value: 32)
!27 = !DIEnumerator(name: "cpuinfo_vendor_dmp", value: 33)
!28 = !DIEnumerator(name: "cpuinfo_vendor_motorola", value: 34)
!29 = !DIEnumerator(name: "cpuinfo_vendor_transmeta", value: 50)
!30 = !DIEnumerator(name: "cpuinfo_vendor_cyrix", value: 51)
!31 = !DIEnumerator(name: "cpuinfo_vendor_rise", value: 52)
!32 = !DIEnumerator(name: "cpuinfo_vendor_nsc", value: 53)
!33 = !DIEnumerator(name: "cpuinfo_vendor_sis", value: 54)
!34 = !DIEnumerator(name: "cpuinfo_vendor_nexgen", value: 55)
!35 = !DIEnumerator(name: "cpuinfo_vendor_umc", value: 56)
!36 = !DIEnumerator(name: "cpuinfo_vendor_dec", value: 57)
!37 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "cpuinfo_uarch", file: !4, line: 266, baseType: !5, size: 32, elements: !38)
!38 = !{!39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50, !51, !52, !53, !54, !55, !56, !57, !58, !59, !60, !61, !62, !63, !64, !65, !66, !67, !68, !69, !70, !71, !72, !73, !74, !75, !76, !77, !78, !79, !80, !81, !82, !83, !84, !85, !86, !87, !88, !89, !90, !91, !92, !93, !94, !95, !96, !97, !98, !99, !100, !101, !102, !103, !104, !105, !106, !107, !108, !109, !110, !111, !112, !113, !114, !115, !116, !117, !118, !119, !120, !121, !122, !123, !124, !125, !126, !127, !128, !129, !130, !131, !132, !133, !134, !135, !136, !137, !138, !139, !140, !141, !142, !143, !144, !145, !146, !147, !148, !149, !150, !151, !152, !153}
!39 = !DIEnumerator(name: "cpuinfo_uarch_unknown", value: 0)
!40 = !DIEnumerator(name: "cpuinfo_uarch_p5", value: 1048832)
!41 = !DIEnumerator(name: "cpuinfo_uarch_quark", value: 1048833)
!42 = !DIEnumerator(name: "cpuinfo_uarch_p6", value: 1049088)
!43 = !DIEnumerator(name: "cpuinfo_uarch_dothan", value: 1049089)
!44 = !DIEnumerator(name: "cpuinfo_uarch_yonah", value: 1049090)
!45 = !DIEnumerator(name: "cpuinfo_uarch_conroe", value: 1049091)
!46 = !DIEnumerator(name: "cpuinfo_uarch_penryn", value: 1049092)
!47 = !DIEnumerator(name: "cpuinfo_uarch_nehalem", value: 1049093)
!48 = !DIEnumerator(name: "cpuinfo_uarch_sandy_bridge", value: 1049094)
!49 = !DIEnumerator(name: "cpuinfo_uarch_ivy_bridge", value: 1049095)
!50 = !DIEnumerator(name: "cpuinfo_uarch_haswell", value: 1049096)
!51 = !DIEnumerator(name: "cpuinfo_uarch_broadwell", value: 1049097)
!52 = !DIEnumerator(name: "cpuinfo_uarch_sky_lake", value: 1049098)
!53 = !DIEnumerator(name: "cpuinfo_uarch_kaby_lake", value: 1049098)
!54 = !DIEnumerator(name: "cpuinfo_uarch_palm_cove", value: 1049099)
!55 = !DIEnumerator(name: "cpuinfo_uarch_sunny_cove", value: 1049100)
!56 = !DIEnumerator(name: "cpuinfo_uarch_willamette", value: 1049344)
!57 = !DIEnumerator(name: "cpuinfo_uarch_prescott", value: 1049345)
!58 = !DIEnumerator(name: "cpuinfo_uarch_bonnell", value: 1049600)
!59 = !DIEnumerator(name: "cpuinfo_uarch_saltwell", value: 1049601)
!60 = !DIEnumerator(name: "cpuinfo_uarch_silvermont", value: 1049602)
!61 = !DIEnumerator(name: "cpuinfo_uarch_airmont", value: 1049603)
!62 = !DIEnumerator(name: "cpuinfo_uarch_goldmont", value: 1049604)
!63 = !DIEnumerator(name: "cpuinfo_uarch_goldmont_plus", value: 1049605)
!64 = !DIEnumerator(name: "cpuinfo_uarch_knights_ferry", value: 1049856)
!65 = !DIEnumerator(name: "cpuinfo_uarch_knights_corner", value: 1049857)
!66 = !DIEnumerator(name: "cpuinfo_uarch_knights_landing", value: 1049858)
!67 = !DIEnumerator(name: "cpuinfo_uarch_knights_hill", value: 1049859)
!68 = !DIEnumerator(name: "cpuinfo_uarch_knights_mill", value: 1049860)
!69 = !DIEnumerator(name: "cpuinfo_uarch_xscale", value: 1050112)
!70 = !DIEnumerator(name: "cpuinfo_uarch_k5", value: 2097408)
!71 = !DIEnumerator(name: "cpuinfo_uarch_k6", value: 2097409)
!72 = !DIEnumerator(name: "cpuinfo_uarch_k7", value: 2097410)
!73 = !DIEnumerator(name: "cpuinfo_uarch_k8", value: 2097411)
!74 = !DIEnumerator(name: "cpuinfo_uarch_k10", value: 2097412)
!75 = !DIEnumerator(name: "cpuinfo_uarch_bulldozer", value: 2097413)
!76 = !DIEnumerator(name: "cpuinfo_uarch_piledriver", value: 2097414)
!77 = !DIEnumerator(name: "cpuinfo_uarch_steamroller", value: 2097415)
!78 = !DIEnumerator(name: "cpuinfo_uarch_excavator", value: 2097416)
!79 = !DIEnumerator(name: "cpuinfo_uarch_zen", value: 2097417)
!80 = !DIEnumerator(name: "cpuinfo_uarch_zen2", value: 2097418)
!81 = !DIEnumerator(name: "cpuinfo_uarch_zen3", value: 2097419)
!82 = !DIEnumerator(name: "cpuinfo_uarch_geode", value: 2097664)
!83 = !DIEnumerator(name: "cpuinfo_uarch_bobcat", value: 2097665)
!84 = !DIEnumerator(name: "cpuinfo_uarch_jaguar", value: 2097666)
!85 = !DIEnumerator(name: "cpuinfo_uarch_puma", value: 2097667)
!86 = !DIEnumerator(name: "cpuinfo_uarch_arm7", value: 3145984)
!87 = !DIEnumerator(name: "cpuinfo_uarch_arm9", value: 3145985)
!88 = !DIEnumerator(name: "cpuinfo_uarch_arm11", value: 3145986)
!89 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a5", value: 3146245)
!90 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a7", value: 3146247)
!91 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a8", value: 3146248)
!92 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a9", value: 3146249)
!93 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a12", value: 3146258)
!94 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a15", value: 3146261)
!95 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a17", value: 3146263)
!96 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a32", value: 3146546)
!97 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a35", value: 3146549)
!98 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a53", value: 3146579)
!99 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55r0", value: 3146580)
!100 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a55", value: 3146581)
!101 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a57", value: 3146583)
!102 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a65", value: 3146597)
!103 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a72", value: 3146610)
!104 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a73", value: 3146611)
!105 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a75", value: 3146613)
!106 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76", value: 3146614)
!107 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a77", value: 3146615)
!108 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a78", value: 3146616)
!109 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_n1", value: 3146752)
!110 = !DIEnumerator(name: "cpuinfo_uarch_neoverse_e1", value: 3146753)
!111 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x1", value: 3147008)
!112 = !DIEnumerator(name: "cpuinfo_uarch_cortex_x2", value: 3147010)
!113 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a510", value: 3147089)
!114 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a710", value: 3147121)
!115 = !DIEnumerator(name: "cpuinfo_uarch_scorpion", value: 4194560)
!116 = !DIEnumerator(name: "cpuinfo_uarch_krait", value: 4194561)
!117 = !DIEnumerator(name: "cpuinfo_uarch_kryo", value: 4194562)
!118 = !DIEnumerator(name: "cpuinfo_uarch_falkor", value: 4194563)
!119 = !DIEnumerator(name: "cpuinfo_uarch_saphira", value: 4194564)
!120 = !DIEnumerator(name: "cpuinfo_uarch_denver", value: 5243136)
!121 = !DIEnumerator(name: "cpuinfo_uarch_denver2", value: 5243137)
!122 = !DIEnumerator(name: "cpuinfo_uarch_carmel", value: 5243138)
!123 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m1", value: 6291712)
!124 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m2", value: 6291713)
!125 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m3", value: 6291714)
!126 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m4", value: 6291715)
!127 = !DIEnumerator(name: "cpuinfo_uarch_exynos_m5", value: 6291716)
!128 = !DIEnumerator(name: "cpuinfo_uarch_cortex_a76ae", value: 3146614)
!129 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m1", value: 6291712)
!130 = !DIEnumerator(name: "cpuinfo_uarch_mongoose_m2", value: 6291713)
!131 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m3", value: 6291714)
!132 = !DIEnumerator(name: "cpuinfo_uarch_meerkat_m4", value: 6291715)
!133 = !DIEnumerator(name: "cpuinfo_uarch_swift", value: 7340288)
!134 = !DIEnumerator(name: "cpuinfo_uarch_cyclone", value: 7340289)
!135 = !DIEnumerator(name: "cpuinfo_uarch_typhoon", value: 7340290)
!136 = !DIEnumerator(name: "cpuinfo_uarch_twister", value: 7340291)
!137 = !DIEnumerator(name: "cpuinfo_uarch_hurricane", value: 7340292)
!138 = !DIEnumerator(name: "cpuinfo_uarch_monsoon", value: 7340293)
!139 = !DIEnumerator(name: "cpuinfo_uarch_mistral", value: 7340294)
!140 = !DIEnumerator(name: "cpuinfo_uarch_vortex", value: 7340295)
!141 = !DIEnumerator(name: "cpuinfo_uarch_tempest", value: 7340296)
!142 = !DIEnumerator(name: "cpuinfo_uarch_lightning", value: 7340297)
!143 = !DIEnumerator(name: "cpuinfo_uarch_thunder", value: 7340298)
!144 = !DIEnumerator(name: "cpuinfo_uarch_firestorm", value: 7340299)
!145 = !DIEnumerator(name: "cpuinfo_uarch_icestorm", value: 7340300)
!146 = !DIEnumerator(name: "cpuinfo_uarch_thunderx", value: 8388864)
!147 = !DIEnumerator(name: "cpuinfo_uarch_thunderx2", value: 8389120)
!148 = !DIEnumerator(name: "cpuinfo_uarch_pj4", value: 9437440)
!149 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b15", value: 10486016)
!150 = !DIEnumerator(name: "cpuinfo_uarch_brahma_b53", value: 10486017)
!151 = !DIEnumerator(name: "cpuinfo_uarch_xgene", value: 11534592)
!152 = !DIEnumerator(name: "cpuinfo_uarch_dhyana", value: 16777472)
!153 = !DIEnumerator(name: "cpuinfo_uarch_taishan_v110", value: 12583168)
!154 = !{!155}
!155 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint64_t", file: !156, line: 27, baseType: !157)
!156 = !DIFile(filename: "glibc/include/bits/stdint-uintn.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "9754ebe022edbe8d7928fa709e442f0d")
!157 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint64_t", file: !158, line: 44, baseType: !159)
!158 = !DIFile(filename: "glibc/include/bits/types.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "25679ba19d359e314e48661b21f5aa1f")
!159 = !DIBasicType(name: "unsigned long", size: 64, encoding: DW_ATE_unsigned)
!160 = !{i32 7, !"Dwarf Version", i32 5}
!161 = !{i32 2, !"Debug Info Version", i32 3}
!162 = !{i32 1, !"wchar_size", i32 4}
!163 = !{i32 7, !"PIC Level", i32 2}
!164 = !{i32 7, !"frame-pointer", i32 2}
!165 = !{!"clang version 0fe13b5f84abe1716f5991da057c801dc548a9ab"}
!166 = distinct !DISubprogram(name: "cpuinfo_x86_detect_isa", scope: !1, file: !1, line: 38, type: !167, scopeLine: 42, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !256)
!167 = !DISubroutineType(types: !168)
!168 = !{!169, !246, !246, !251, !251, !3, !37}
!169 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuinfo_x86_isa", file: !4, line: 670, size: 592, elements: !170)
!170 = !{!171, !173, !174, !175, !176, !177, !178, !179, !180, !181, !182, !183, !184, !185, !186, !187, !188, !189, !190, !191, !192, !193, !194, !195, !196, !197, !198, !199, !200, !201, !202, !203, !204, !205, !206, !207, !208, !209, !210, !211, !212, !213, !214, !215, !216, !217, !218, !219, !220, !221, !222, !223, !224, !225, !226, !227, !228, !229, !230, !231, !232, !233, !234, !235, !236, !237, !238, !239, !240, !241, !242, !243, !244, !245}
!171 = !DIDerivedType(tag: DW_TAG_member, name: "rdtscp", scope: !169, file: !4, line: 674, baseType: !172, size: 8)
!172 = !DIBasicType(name: "_Bool", size: 8, encoding: DW_ATE_boolean)
!173 = !DIDerivedType(tag: DW_TAG_member, name: "rdpid", scope: !169, file: !4, line: 675, baseType: !172, size: 8, offset: 8)
!174 = !DIDerivedType(tag: DW_TAG_member, name: "sysenter", scope: !169, file: !4, line: 676, baseType: !172, size: 8, offset: 16)
!175 = !DIDerivedType(tag: DW_TAG_member, name: "msr", scope: !169, file: !4, line: 680, baseType: !172, size: 8, offset: 24)
!176 = !DIDerivedType(tag: DW_TAG_member, name: "clzero", scope: !169, file: !4, line: 681, baseType: !172, size: 8, offset: 32)
!177 = !DIDerivedType(tag: DW_TAG_member, name: "clflush", scope: !169, file: !4, line: 682, baseType: !172, size: 8, offset: 40)
!178 = !DIDerivedType(tag: DW_TAG_member, name: "clflushopt", scope: !169, file: !4, line: 683, baseType: !172, size: 8, offset: 48)
!179 = !DIDerivedType(tag: DW_TAG_member, name: "mwait", scope: !169, file: !4, line: 684, baseType: !172, size: 8, offset: 56)
!180 = !DIDerivedType(tag: DW_TAG_member, name: "mwaitx", scope: !169, file: !4, line: 685, baseType: !172, size: 8, offset: 64)
!181 = !DIDerivedType(tag: DW_TAG_member, name: "fxsave", scope: !169, file: !4, line: 689, baseType: !172, size: 8, offset: 72)
!182 = !DIDerivedType(tag: DW_TAG_member, name: "xsave", scope: !169, file: !4, line: 690, baseType: !172, size: 8, offset: 80)
!183 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now", scope: !169, file: !4, line: 696, baseType: !172, size: 8, offset: 88)
!184 = !DIDerivedType(tag: DW_TAG_member, name: "three_d_now_plus", scope: !169, file: !4, line: 697, baseType: !172, size: 8, offset: 96)
!185 = !DIDerivedType(tag: DW_TAG_member, name: "prefetch", scope: !169, file: !4, line: 701, baseType: !172, size: 8, offset: 104)
!186 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchw", scope: !169, file: !4, line: 702, baseType: !172, size: 8, offset: 112)
!187 = !DIDerivedType(tag: DW_TAG_member, name: "prefetchwt1", scope: !169, file: !4, line: 703, baseType: !172, size: 8, offset: 120)
!188 = !DIDerivedType(tag: DW_TAG_member, name: "sse3", scope: !169, file: !4, line: 709, baseType: !172, size: 8, offset: 128)
!189 = !DIDerivedType(tag: DW_TAG_member, name: "ssse3", scope: !169, file: !4, line: 710, baseType: !172, size: 8, offset: 136)
!190 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_1", scope: !169, file: !4, line: 711, baseType: !172, size: 8, offset: 144)
!191 = !DIDerivedType(tag: DW_TAG_member, name: "sse4_2", scope: !169, file: !4, line: 712, baseType: !172, size: 8, offset: 152)
!192 = !DIDerivedType(tag: DW_TAG_member, name: "sse4a", scope: !169, file: !4, line: 713, baseType: !172, size: 8, offset: 160)
!193 = !DIDerivedType(tag: DW_TAG_member, name: "misaligned_sse", scope: !169, file: !4, line: 714, baseType: !172, size: 8, offset: 168)
!194 = !DIDerivedType(tag: DW_TAG_member, name: "avx", scope: !169, file: !4, line: 715, baseType: !172, size: 8, offset: 176)
!195 = !DIDerivedType(tag: DW_TAG_member, name: "fma3", scope: !169, file: !4, line: 716, baseType: !172, size: 8, offset: 184)
!196 = !DIDerivedType(tag: DW_TAG_member, name: "fma4", scope: !169, file: !4, line: 717, baseType: !172, size: 8, offset: 192)
!197 = !DIDerivedType(tag: DW_TAG_member, name: "xop", scope: !169, file: !4, line: 718, baseType: !172, size: 8, offset: 200)
!198 = !DIDerivedType(tag: DW_TAG_member, name: "f16c", scope: !169, file: !4, line: 719, baseType: !172, size: 8, offset: 208)
!199 = !DIDerivedType(tag: DW_TAG_member, name: "avx2", scope: !169, file: !4, line: 720, baseType: !172, size: 8, offset: 216)
!200 = !DIDerivedType(tag: DW_TAG_member, name: "avx512f", scope: !169, file: !4, line: 721, baseType: !172, size: 8, offset: 224)
!201 = !DIDerivedType(tag: DW_TAG_member, name: "avx512pf", scope: !169, file: !4, line: 722, baseType: !172, size: 8, offset: 232)
!202 = !DIDerivedType(tag: DW_TAG_member, name: "avx512er", scope: !169, file: !4, line: 723, baseType: !172, size: 8, offset: 240)
!203 = !DIDerivedType(tag: DW_TAG_member, name: "avx512cd", scope: !169, file: !4, line: 724, baseType: !172, size: 8, offset: 248)
!204 = !DIDerivedType(tag: DW_TAG_member, name: "avx512dq", scope: !169, file: !4, line: 725, baseType: !172, size: 8, offset: 256)
!205 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bw", scope: !169, file: !4, line: 726, baseType: !172, size: 8, offset: 264)
!206 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vl", scope: !169, file: !4, line: 727, baseType: !172, size: 8, offset: 272)
!207 = !DIDerivedType(tag: DW_TAG_member, name: "avx512ifma", scope: !169, file: !4, line: 728, baseType: !172, size: 8, offset: 280)
!208 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi", scope: !169, file: !4, line: 729, baseType: !172, size: 8, offset: 288)
!209 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vbmi2", scope: !169, file: !4, line: 730, baseType: !172, size: 8, offset: 296)
!210 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bitalg", scope: !169, file: !4, line: 731, baseType: !172, size: 8, offset: 304)
!211 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vpopcntdq", scope: !169, file: !4, line: 732, baseType: !172, size: 8, offset: 312)
!212 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vnni", scope: !169, file: !4, line: 733, baseType: !172, size: 8, offset: 320)
!213 = !DIDerivedType(tag: DW_TAG_member, name: "avx512bf16", scope: !169, file: !4, line: 734, baseType: !172, size: 8, offset: 328)
!214 = !DIDerivedType(tag: DW_TAG_member, name: "avx512vp2intersect", scope: !169, file: !4, line: 735, baseType: !172, size: 8, offset: 336)
!215 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4vnniw", scope: !169, file: !4, line: 736, baseType: !172, size: 8, offset: 344)
!216 = !DIDerivedType(tag: DW_TAG_member, name: "avx512_4fmaps", scope: !169, file: !4, line: 737, baseType: !172, size: 8, offset: 352)
!217 = !DIDerivedType(tag: DW_TAG_member, name: "hle", scope: !169, file: !4, line: 738, baseType: !172, size: 8, offset: 360)
!218 = !DIDerivedType(tag: DW_TAG_member, name: "rtm", scope: !169, file: !4, line: 739, baseType: !172, size: 8, offset: 368)
!219 = !DIDerivedType(tag: DW_TAG_member, name: "xtest", scope: !169, file: !4, line: 740, baseType: !172, size: 8, offset: 376)
!220 = !DIDerivedType(tag: DW_TAG_member, name: "mpx", scope: !169, file: !4, line: 741, baseType: !172, size: 8, offset: 384)
!221 = !DIDerivedType(tag: DW_TAG_member, name: "cmpxchg16b", scope: !169, file: !4, line: 746, baseType: !172, size: 8, offset: 392)
!222 = !DIDerivedType(tag: DW_TAG_member, name: "clwb", scope: !169, file: !4, line: 747, baseType: !172, size: 8, offset: 400)
!223 = !DIDerivedType(tag: DW_TAG_member, name: "movbe", scope: !169, file: !4, line: 748, baseType: !172, size: 8, offset: 408)
!224 = !DIDerivedType(tag: DW_TAG_member, name: "lahf_sahf", scope: !169, file: !4, line: 750, baseType: !172, size: 8, offset: 416)
!225 = !DIDerivedType(tag: DW_TAG_member, name: "fs_gs_base", scope: !169, file: !4, line: 752, baseType: !172, size: 8, offset: 424)
!226 = !DIDerivedType(tag: DW_TAG_member, name: "lzcnt", scope: !169, file: !4, line: 753, baseType: !172, size: 8, offset: 432)
!227 = !DIDerivedType(tag: DW_TAG_member, name: "popcnt", scope: !169, file: !4, line: 754, baseType: !172, size: 8, offset: 440)
!228 = !DIDerivedType(tag: DW_TAG_member, name: "tbm", scope: !169, file: !4, line: 755, baseType: !172, size: 8, offset: 448)
!229 = !DIDerivedType(tag: DW_TAG_member, name: "bmi", scope: !169, file: !4, line: 756, baseType: !172, size: 8, offset: 456)
!230 = !DIDerivedType(tag: DW_TAG_member, name: "bmi2", scope: !169, file: !4, line: 757, baseType: !172, size: 8, offset: 464)
!231 = !DIDerivedType(tag: DW_TAG_member, name: "adx", scope: !169, file: !4, line: 758, baseType: !172, size: 8, offset: 472)
!232 = !DIDerivedType(tag: DW_TAG_member, name: "aes", scope: !169, file: !4, line: 759, baseType: !172, size: 8, offset: 480)
!233 = !DIDerivedType(tag: DW_TAG_member, name: "vaes", scope: !169, file: !4, line: 760, baseType: !172, size: 8, offset: 488)
!234 = !DIDerivedType(tag: DW_TAG_member, name: "pclmulqdq", scope: !169, file: !4, line: 761, baseType: !172, size: 8, offset: 496)
!235 = !DIDerivedType(tag: DW_TAG_member, name: "vpclmulqdq", scope: !169, file: !4, line: 762, baseType: !172, size: 8, offset: 504)
!236 = !DIDerivedType(tag: DW_TAG_member, name: "gfni", scope: !169, file: !4, line: 763, baseType: !172, size: 8, offset: 512)
!237 = !DIDerivedType(tag: DW_TAG_member, name: "rdrand", scope: !169, file: !4, line: 764, baseType: !172, size: 8, offset: 520)
!238 = !DIDerivedType(tag: DW_TAG_member, name: "rdseed", scope: !169, file: !4, line: 765, baseType: !172, size: 8, offset: 528)
!239 = !DIDerivedType(tag: DW_TAG_member, name: "sha", scope: !169, file: !4, line: 766, baseType: !172, size: 8, offset: 536)
!240 = !DIDerivedType(tag: DW_TAG_member, name: "rng", scope: !169, file: !4, line: 767, baseType: !172, size: 8, offset: 544)
!241 = !DIDerivedType(tag: DW_TAG_member, name: "ace", scope: !169, file: !4, line: 768, baseType: !172, size: 8, offset: 552)
!242 = !DIDerivedType(tag: DW_TAG_member, name: "ace2", scope: !169, file: !4, line: 769, baseType: !172, size: 8, offset: 560)
!243 = !DIDerivedType(tag: DW_TAG_member, name: "phe", scope: !169, file: !4, line: 770, baseType: !172, size: 8, offset: 568)
!244 = !DIDerivedType(tag: DW_TAG_member, name: "pmm", scope: !169, file: !4, line: 771, baseType: !172, size: 8, offset: 576)
!245 = !DIDerivedType(tag: DW_TAG_member, name: "lwp", scope: !169, file: !4, line: 772, baseType: !172, size: 8, offset: 584)
!246 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !247)
!247 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "cpuid_regs", file: !248, line: 10, size: 128, elements: !249)
!248 = !DIFile(filename: "cpuinfo/src/x86/api.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "27c8ee589f06b55198de5debd23b68da")
!249 = !{!250, !253, !254, !255}
!250 = !DIDerivedType(tag: DW_TAG_member, name: "eax", scope: !247, file: !248, line: 11, baseType: !251, size: 32)
!251 = !DIDerivedType(tag: DW_TAG_typedef, name: "uint32_t", file: !156, line: 26, baseType: !252)
!252 = !DIDerivedType(tag: DW_TAG_typedef, name: "__uint32_t", file: !158, line: 41, baseType: !5)
!253 = !DIDerivedType(tag: DW_TAG_member, name: "ebx", scope: !247, file: !248, line: 12, baseType: !251, size: 32, offset: 32)
!254 = !DIDerivedType(tag: DW_TAG_member, name: "ecx", scope: !247, file: !248, line: 13, baseType: !251, size: 32, offset: 64)
!255 = !DIDerivedType(tag: DW_TAG_member, name: "edx", scope: !247, file: !248, line: 14, baseType: !251, size: 32, offset: 96)
!256 = !{!257, !258, !259, !260, !261, !262, !263, !264, !265, !266, !268, !269, !270, !271, !272, !273, !276, !279, !281, !282, !283, !284, !287, !288, !289, !292, !293, !294, !295, !296}
!257 = !DILocalVariable(name: "basic_info", arg: 1, scope: !166, file: !1, line: 39, type: !246)
!258 = !DILocalVariable(name: "extended_info", arg: 2, scope: !166, file: !1, line: 39, type: !246)
!259 = !DILocalVariable(name: "max_base_index", arg: 3, scope: !166, file: !1, line: 40, type: !251)
!260 = !DILocalVariable(name: "max_extended_index", arg: 4, scope: !166, file: !1, line: 40, type: !251)
!261 = !DILocalVariable(name: "vendor", arg: 5, scope: !166, file: !1, line: 41, type: !3)
!262 = !DILocalVariable(name: "uarch", arg: 6, scope: !166, file: !1, line: 41, type: !37)
!263 = !DILocalVariable(name: "isa", scope: !166, file: !1, line: 43, type: !169)
!264 = !DILocalVariable(name: "structured_feature_info0", scope: !166, file: !1, line: 45, type: !246)
!265 = !DILocalVariable(name: "structured_feature_info1", scope: !166, file: !1, line: 47, type: !246)
!266 = !DILocalVariable(name: "processor_capacity_info_index", scope: !166, file: !1, line: 50, type: !267)
!267 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !251)
!268 = !DILocalVariable(name: "processor_capacity_info", scope: !166, file: !1, line: 51, type: !246)
!269 = !DILocalVariable(name: "avx_regs", scope: !166, file: !1, line: 55, type: !172)
!270 = !DILocalVariable(name: "avx512_regs", scope: !166, file: !1, line: 55, type: !172)
!271 = !DILocalVariable(name: "mpx_regs", scope: !166, file: !1, line: 55, type: !172)
!272 = !DILocalVariable(name: "osxsave_mask", scope: !166, file: !1, line: 61, type: !267)
!273 = !DILocalVariable(name: "xcr0_valid_bits", scope: !274, file: !1, line: 63, type: !155)
!274 = distinct !DILexicalBlock(scope: !275, file: !1, line: 62, column: 55)
!275 = distinct !DILexicalBlock(scope: !166, file: !1, line: 62, column: 6)
!276 = !DILocalVariable(name: "regs", scope: !277, file: !1, line: 65, type: !246)
!277 = distinct !DILexicalBlock(scope: !278, file: !1, line: 64, column: 30)
!278 = distinct !DILexicalBlock(scope: !274, file: !1, line: 64, column: 7)
!279 = !DILocalVariable(name: "xfeature_enabled_mask", scope: !274, file: !1, line: 69, type: !280)
!280 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !155)
!281 = !DILocalVariable(name: "avx_regs_mask", scope: !274, file: !1, line: 76, type: !280)
!282 = !DILocalVariable(name: "avx512_regs_mask", scope: !274, file: !1, line: 89, type: !280)
!283 = !DILocalVariable(name: "mpx_regs_mask", scope: !274, file: !1, line: 99, type: !280)
!284 = !DILocalVariable(name: "padlock_meta_info", scope: !285, file: !1, line: 657, type: !246)
!285 = distinct !DILexicalBlock(scope: !286, file: !1, line: 656, column: 36)
!286 = distinct !DILexicalBlock(scope: !166, file: !1, line: 656, column: 6)
!287 = !DILocalVariable(name: "max_padlock_index", scope: !285, file: !1, line: 658, type: !267)
!288 = !DILocalVariable(name: "padlock_info_index", scope: !285, file: !1, line: 659, type: !267)
!289 = !DILocalVariable(name: "padlock_info", scope: !290, file: !1, line: 661, type: !246)
!290 = distinct !DILexicalBlock(scope: !291, file: !1, line: 660, column: 48)
!291 = distinct !DILexicalBlock(scope: !285, file: !1, line: 660, column: 7)
!292 = !DILocalVariable(name: "padlock_rng_mask", scope: !290, file: !1, line: 668, type: !267)
!293 = !DILocalVariable(name: "padlock_ace_mask", scope: !290, file: !1, line: 676, type: !267)
!294 = !DILocalVariable(name: "padlock_ace2_mask", scope: !290, file: !1, line: 684, type: !267)
!295 = !DILocalVariable(name: "padlock_phe_mask", scope: !290, file: !1, line: 692, type: !267)
!296 = !DILocalVariable(name: "padlock_pmm_mask", scope: !290, file: !1, line: 700, type: !267)
!297 = !DILocation(line: 0, scope: !166)
!298 = !DILocation(line: 43, column: 25, scope: !166)
!299 = !DILocation(line: 46, column: 19, scope: !166)
!300 = !DILocation(line: 46, column: 3, scope: !166)
!301 = !DILocalVariable(name: "eax", arg: 1, scope: !302, file: !303, line: 43, type: !251)
!302 = distinct !DISubprogram(name: "cpuidex", scope: !303, file: !303, line: 43, type: !304, scopeLine: 43, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !306)
!303 = !DIFile(filename: "cpuinfo/src/x86/cpuid.h", directory: "workspace", checksumkind: CSK_MD5, checksum: "f9e451aa7a48009ba003a034c14f0ac3")
!304 = !DISubroutineType(types: !305)
!305 = !{!247, !251, !251}
!306 = !{!301, !307, !308}
!307 = !DILocalVariable(name: "ecx", arg: 2, scope: !302, file: !303, line: 43, type: !251)
!308 = !DILocalVariable(name: "regs", scope: !302, file: !303, line: 54, type: !247)
!309 = !DILocation(line: 0, scope: !302, inlinedAt: !310)
!310 = distinct !DILocation(line: 46, column: 27, scope: !166)
!311 = !DILocation(line: 56, column: 5, scope: !302, inlinedAt: !310)
!312 = !{i64 2147921615, i64 2147921651, i64 2147921675}
!313 = !DILocation(line: 65, column: 4, scope: !302, inlinedAt: !310)
!314 = !DILocation(line: 0, scope: !302, inlinedAt: !315)
!315 = distinct !DILocation(line: 48, column: 27, scope: !166)
!316 = !DILocation(line: 56, column: 5, scope: !302, inlinedAt: !315)
!317 = !DILocation(line: 65, column: 4, scope: !302, inlinedAt: !315)
!318 = !DILocation(line: 48, column: 3, scope: !166)
!319 = !DILocation(line: 52, column: 23, scope: !166)
!320 = !DILocation(line: 52, column: 3, scope: !166)
!321 = !DILocalVariable(name: "eax", arg: 1, scope: !322, file: !303, line: 17, type: !251)
!322 = distinct !DISubprogram(name: "cpuid", scope: !303, file: !303, line: 17, type: !323, scopeLine: 17, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !325)
!323 = !DISubroutineType(types: !324)
!324 = !{!247, !251}
!325 = !{!321, !326}
!326 = !DILocalVariable(name: "regs", scope: !322, file: !303, line: 28, type: !247)
!327 = !DILocation(line: 0, scope: !322, inlinedAt: !328)
!328 = distinct !DILocation(line: 53, column: 4, scope: !166)
!329 = !DILocation(line: 30, column: 5, scope: !322, inlinedAt: !328)
!330 = !{i64 2147921400, i64 2147921436, i64 2147921460}
!331 = !DILocation(line: 62, column: 22, scope: !275)
!332 = !DILocation(line: 62, column: 38, scope: !275)
!333 = !DILocation(line: 62, column: 6, scope: !166)
!334 = !DILocation(line: 0, scope: !274)
!335 = !DILocation(line: 64, column: 22, scope: !278)
!336 = !DILocation(line: 64, column: 7, scope: !274)
!337 = !DILocation(line: 0, scope: !302, inlinedAt: !338)
!338 = distinct !DILocation(line: 65, column: 35, scope: !277)
!339 = !DILocation(line: 56, column: 5, scope: !302, inlinedAt: !338)
!340 = !DILocation(line: 65, column: 4, scope: !302, inlinedAt: !338)
!341 = !DILocation(line: 0, scope: !277)
!342 = !DILocation(line: 67, column: 3, scope: !277)
!343 = !DILocalVariable(name: "ext_ctrl_reg", arg: 1, scope: !344, file: !303, line: 70, type: !251)
!344 = distinct !DISubprogram(name: "xgetbv", scope: !303, file: !303, line: 70, type: !345, scopeLine: 70, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !347)
!345 = !DISubroutineType(cc: DW_CC_nocall, types: !346)
!346 = !{!155, !251}
!347 = !{!343, !348, !349}
!348 = !DILocalVariable(name: "lo", scope: !344, file: !303, line: 74, type: !251)
!349 = !DILocalVariable(name: "hi", scope: !344, file: !303, line: 74, type: !251)
!350 = !DILocation(line: 0, scope: !344, inlinedAt: !351)
!351 = distinct !DILocation(line: 69, column: 42, scope: !274)
!352 = !DILocation(line: 75, column: 3, scope: !344, inlinedAt: !351)
!353 = !{i64 371123}
!354 = !DILocation(line: 76, column: 34, scope: !344, inlinedAt: !351)
!355 = !DILocation(line: 77, column: 24, scope: !356)
!356 = distinct !DILexicalBlock(scope: !274, file: !1, line: 77, column: 7)
!357 = !DILocation(line: 77, column: 41, scope: !356)
!358 = !DILocation(line: 77, column: 7, scope: !274)
!359 = !DILocation(line: 100, column: 24, scope: !360)
!360 = distinct !DILexicalBlock(scope: !274, file: !1, line: 100, column: 7)
!361 = !DILocation(line: 100, column: 41, scope: !360)
!362 = !DILocation(line: 100, column: 7, scope: !274)
!363 = !DILocation(line: 103, column: 2, scope: !274)
!364 = !DILocation(line: 118, column: 6, scope: !166)
!365 = !DILocation(line: 118, column: 15, scope: !166)
!366 = !DILocation(line: 133, column: 31, scope: !166)
!367 = !DILocation(line: 133, column: 6, scope: !166)
!368 = !DILocation(line: 133, column: 10, scope: !166)
!369 = !DILocation(line: 139, column: 6, scope: !166)
!370 = !DILocation(line: 139, column: 13, scope: !166)
!371 = !DILocation(line: 145, column: 6, scope: !166)
!372 = !DILocation(line: 145, column: 14, scope: !166)
!373 = !DILocation(line: 151, column: 47, scope: !166)
!374 = !DILocation(line: 151, column: 6, scope: !166)
!375 = !DILocation(line: 151, column: 17, scope: !166)
!376 = !DILocation(line: 157, column: 6, scope: !166)
!377 = !DILocation(line: 157, column: 12, scope: !166)
!378 = !DILocation(line: 163, column: 6, scope: !166)
!379 = !DILocation(line: 163, column: 13, scope: !166)
!380 = !DILocation(line: 178, column: 8, scope: !381)
!381 = distinct !DILexicalBlock(scope: !166, file: !1, line: 170, column: 18)
!382 = !DILocation(line: 178, column: 15, scope: !381)
!383 = !DILocation(line: 186, column: 6, scope: !166)
!384 = !DILocation(line: 186, column: 12, scope: !166)
!385 = !DILocation(line: 215, column: 6, scope: !166)
!386 = !DILocation(line: 215, column: 18, scope: !166)
!387 = !DILocation(line: 221, column: 6, scope: !166)
!388 = !DILocation(line: 221, column: 23, scope: !166)
!389 = !DILocation(line: 239, column: 2, scope: !166)
!390 = !DILocation(line: 248, column: 41, scope: !391)
!391 = distinct !DILexicalBlock(scope: !166, file: !1, line: 239, column: 18)
!392 = !DILocation(line: 248, column: 86, scope: !391)
!393 = !DILocation(line: 248, column: 65, scope: !391)
!394 = !DILocation(line: 248, column: 20, scope: !391)
!395 = !DILocation(line: 249, column: 4, scope: !391)
!396 = !DILocation(line: 255, column: 20, scope: !391)
!397 = !DILocation(line: 256, column: 4, scope: !391)
!398 = !DILocation(line: 0, scope: !391)
!399 = !DILocation(line: 267, column: 2, scope: !166)
!400 = !DILocation(line: 0, scope: !401)
!401 = distinct !DILexicalBlock(scope: !166, file: !1, line: 267, column: 18)
!402 = !DILocation(line: 282, column: 6, scope: !166)
!403 = !DILocation(line: 282, column: 18, scope: !166)
!404 = !DILocation(line: 302, column: 6, scope: !166)
!405 = !DILocation(line: 302, column: 11, scope: !166)
!406 = !DILocation(line: 334, column: 6, scope: !166)
!407 = !DILocation(line: 334, column: 12, scope: !166)
!408 = !DILocation(line: 341, column: 6, scope: !166)
!409 = !DILocation(line: 341, column: 13, scope: !166)
!410 = !DILocation(line: 347, column: 6, scope: !166)
!411 = !DILocation(line: 347, column: 13, scope: !166)
!412 = !DILocation(line: 353, column: 6, scope: !166)
!413 = !DILocation(line: 353, column: 12, scope: !166)
!414 = !DILocation(line: 359, column: 6, scope: !166)
!415 = !DILocation(line: 359, column: 21, scope: !166)
!416 = !DILocation(line: 365, column: 21, scope: !166)
!417 = !DILocation(line: 365, column: 6, scope: !166)
!418 = !DILocation(line: 365, column: 10, scope: !166)
!419 = !DILocation(line: 413, column: 29, scope: !166)
!420 = !DILocation(line: 413, column: 6, scope: !166)
!421 = !DILocation(line: 413, column: 15, scope: !166)
!422 = !DILocation(line: 419, column: 29, scope: !166)
!423 = !DILocation(line: 419, column: 6, scope: !166)
!424 = !DILocation(line: 419, column: 15, scope: !166)
!425 = !DILocation(line: 425, column: 29, scope: !166)
!426 = !DILocation(line: 425, column: 6, scope: !166)
!427 = !DILocation(line: 431, column: 29, scope: !166)
!428 = !DILocation(line: 437, column: 29, scope: !166)
!429 = !DILocation(line: 443, column: 31, scope: !166)
!430 = !DILocation(line: 449, column: 31, scope: !166)
!431 = !DILocation(line: 455, column: 32, scope: !166)
!432 = !DILocation(line: 461, column: 33, scope: !166)
!433 = !DILocation(line: 425, column: 15, scope: !166)
!434 = !DILocation(line: 473, column: 31, scope: !166)
!435 = !DILocation(line: 473, column: 6, scope: !166)
!436 = !DILocation(line: 473, column: 17, scope: !166)
!437 = !DILocation(line: 479, column: 34, scope: !166)
!438 = !DILocation(line: 479, column: 6, scope: !166)
!439 = !DILocation(line: 479, column: 20, scope: !166)
!440 = !DILocation(line: 485, column: 34, scope: !166)
!441 = !DILocation(line: 485, column: 6, scope: !166)
!442 = !DILocation(line: 485, column: 20, scope: !166)
!443 = !DILocation(line: 491, column: 39, scope: !166)
!444 = !DILocation(line: 491, column: 6, scope: !166)
!445 = !DILocation(line: 491, column: 25, scope: !166)
!446 = !DILocation(line: 497, column: 31, scope: !166)
!447 = !DILocation(line: 497, column: 6, scope: !166)
!448 = !DILocation(line: 497, column: 17, scope: !166)
!449 = !DILocation(line: 503, column: 6, scope: !166)
!450 = !DILocation(line: 503, column: 10, scope: !166)
!451 = !DILocation(line: 509, column: 44, scope: !166)
!452 = !DILocation(line: 509, column: 13, scope: !166)
!453 = !DILocation(line: 509, column: 6, scope: !166)
!454 = !DILocation(line: 509, column: 10, scope: !166)
!455 = !DILocation(line: 515, column: 18, scope: !166)
!456 = !DILocation(line: 515, column: 22, scope: !166)
!457 = !DILocation(line: 515, column: 6, scope: !166)
!458 = !DILocation(line: 515, column: 12, scope: !166)
!459 = !DILocation(line: 521, column: 21, scope: !166)
!460 = !DILocation(line: 521, column: 6, scope: !166)
!461 = !DILocation(line: 521, column: 10, scope: !166)
!462 = !DILocation(line: 543, column: 6, scope: !166)
!463 = !DILocation(line: 543, column: 17, scope: !166)
!464 = !DILocation(line: 549, column: 11, scope: !166)
!465 = !DILocation(line: 555, column: 12, scope: !166)
!466 = !DILocation(line: 570, column: 17, scope: !166)
!467 = !DILocation(line: 576, column: 12, scope: !166)
!468 = !DILocation(line: 582, column: 13, scope: !166)
!469 = !DILocation(line: 588, column: 10, scope: !166)
!470 = !DILocation(line: 594, column: 10, scope: !166)
!471 = !DILocation(line: 606, column: 10, scope: !166)
!472 = !DILocation(line: 612, column: 10, scope: !166)
!473 = !DILocation(line: 618, column: 11, scope: !166)
!474 = !DILocation(line: 624, column: 16, scope: !166)
!475 = !DILocation(line: 630, column: 17, scope: !166)
!476 = !DILocation(line: 642, column: 6, scope: !166)
!477 = !DILocation(line: 642, column: 13, scope: !166)
!478 = !DILocation(line: 648, column: 6, scope: !166)
!479 = !DILocation(line: 648, column: 13, scope: !166)
!480 = !DILocation(line: 654, column: 6, scope: !166)
!481 = !DILocation(line: 654, column: 10, scope: !166)
!482 = !DILocation(line: 656, column: 13, scope: !286)
!483 = !DILocation(line: 656, column: 6, scope: !166)
!484 = !DILocation(line: 0, scope: !322, inlinedAt: !485)
!485 = distinct !DILocation(line: 657, column: 47, scope: !285)
!486 = !DILocation(line: 30, column: 5, scope: !322, inlinedAt: !485)
!487 = !DILocation(line: 0, scope: !285)
!488 = !DILocation(line: 660, column: 25, scope: !291)
!489 = !DILocation(line: 660, column: 7, scope: !285)
!490 = !DILocation(line: 0, scope: !322, inlinedAt: !491)
!491 = distinct !DILocation(line: 661, column: 43, scope: !290)
!492 = !DILocation(line: 30, column: 5, scope: !322, inlinedAt: !491)
!493 = !DILocation(line: 0, scope: !290)
!494 = !DILocation(line: 669, column: 32, scope: !290)
!495 = !DILocation(line: 669, column: 52, scope: !290)
!496 = !DILocation(line: 669, column: 8, scope: !290)
!497 = !DILocation(line: 669, column: 12, scope: !290)
!498 = !DILocation(line: 677, column: 8, scope: !290)
!499 = !DILocation(line: 685, column: 8, scope: !290)
!500 = !DILocation(line: 693, column: 8, scope: !290)
!501 = !DILocation(line: 701, column: 32, scope: !290)
!502 = !DILocation(line: 701, column: 52, scope: !290)
!503 = !DILocation(line: 677, column: 12, scope: !290)
!504 = !DILocation(line: 685, column: 13, scope: !290)
!505 = !DILocation(line: 693, column: 12, scope: !290)
!506 = !DILocation(line: 701, column: 8, scope: !290)
!507 = !DILocation(line: 701, column: 12, scope: !290)
!508 = !DILocation(line: 702, column: 3, scope: !290)
!509 = !DILocation(line: 709, column: 6, scope: !166)
!510 = !DILocation(line: 709, column: 10, scope: !166)
!511 = !DILocation(line: 715, column: 13, scope: !166)
!512 = !DILocation(line: 721, column: 6, scope: !166)
!513 = !DILocation(line: 721, column: 12, scope: !166)
!514 = !DILocation(line: 724, column: 1, scope: !166)
This file has been truncated, but you can view the full file.
; ModuleID = 'cpuinfo/src/x86/isa.c'
source_filename = "cpuinfo/src/x86/isa.c"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.cpuinfo_x86_isa = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
; Function Attrs: argmemonly nounwind optsize sanitize_memory
define hidden void @cpuinfo_x86_detect_isa(%struct.cpuinfo_x86_isa* noalias sret(%struct.cpuinfo_x86_isa) align 1 %agg.result, i64 %basic_info.coerce0, i64 %basic_info.coerce1, i64 %extended_info.coerce0, i64 %extended_info.coerce1, i32 noundef %max_base_index, i32 noundef %max_extended_index, i32 noundef %vendor, i32 noundef %uarch) local_unnamed_addr #0 !dbg !166 {
entry:
call void @llvm.dbg.value(metadata i64 %basic_info.coerce0, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%basic_info.sroa.1.8.extract.trunc = trunc i64 %basic_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %basic_info.sroa.1.8.extract.trunc, metadata !257, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%basic_info.sroa.18.8.extract.shift = lshr i64 %basic_info.coerce1, 32
call void @llvm.dbg.value(metadata i64 %basic_info.sroa.18.8.extract.shift, metadata !257, metadata !DIExpression(DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_stack_value, DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i64 %extended_info.coerce0, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%extended_info.sroa.1.8.extract.trunc = trunc i64 %extended_info.coerce1 to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.1.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)), !dbg !297
%extended_info.sroa.14.8.extract.shift = lshr i64 %extended_info.coerce1, 32
%extended_info.sroa.14.8.extract.trunc = trunc i64 %extended_info.sroa.14.8.extract.shift to i32
call void @llvm.dbg.value(metadata i32 %extended_info.sroa.14.8.extract.trunc, metadata !258, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_base_index, metadata !259, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %max_extended_index, metadata !260, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %vendor, metadata !261, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 %uarch, metadata !262, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.declare(metadata %struct.cpuinfo_x86_isa* %agg.result, metadata !263, metadata !DIExpression()), !dbg !298
%0 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 0, !dbg !298
tail call void @llvm.memset.p0i8.i64(i8* noundef nonnull align 1 dereferenceable(74) %0, i8 0, i64 74, i1 false), !dbg !298
%cmp = icmp ugt i32 %max_base_index, 6, !dbg !299
br i1 %cmp, label %cond.true2, label %cond.end9, !dbg !300
cond.true2: ; preds = %entry
call void @llvm.dbg.value(metadata i32 7, metadata !301, metadata !DIExpression()) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 0, metadata !307, metadata !DIExpression()) #4, !dbg !309
%1 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #5, !dbg !311, !srcloc !312
%asmresult3.i = extractvalue { i32, i32, i32, i32 } %1, 1, !dbg !311
%asmresult4.i = extractvalue { i32, i32, i32, i32 } %1, 2, !dbg !311
%asmresult5.i = extractvalue { i32, i32, i32, i32 } %1, 3, !dbg !311
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult3.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult4.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !309
call void @llvm.dbg.value(metadata i32 %asmresult5.i, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !309
%retval.sroa.2.0.insert.ext.i = zext i32 %asmresult3.i to i64, !dbg !313
%retval.sroa.2.0.insert.shift.i = shl nuw i64 %retval.sroa.2.0.insert.ext.i, 32, !dbg !313
%retval.sroa.5.8.insert.ext.i = zext i32 %asmresult5.i to i64, !dbg !313
%retval.sroa.5.8.insert.shift.i = shl nuw i64 %retval.sroa.5.8.insert.ext.i, 32, !dbg !313
%retval.sroa.3.8.insert.ext.i = zext i32 %asmresult4.i to i64, !dbg !313
%retval.sroa.3.8.insert.insert.i = or i64 %retval.sroa.5.8.insert.shift.i, %retval.sroa.3.8.insert.ext.i, !dbg !313
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !264, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 7, metadata !301, metadata !DIExpression()) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 1, metadata !307, metadata !DIExpression()) #4, !dbg !314
%2 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #5, !dbg !316, !srcloc !312
%asmresult.i858 = extractvalue { i32, i32, i32, i32 } %2, 0, !dbg !316
call void @llvm.dbg.value(metadata i32 %asmresult.i858, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !314
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !314
%retval.sroa.0.0.insert.ext.i864 = trunc i32 %asmresult.i858 to i8, !dbg !317
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i858), metadata !265, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.bo935 = lshr i8 %retval.sroa.0.0.insert.ext.i864, 5, !dbg !318
%phi.bo936 = and i8 %phi.bo935, 1, !dbg !318
br label %cond.end9, !dbg !318
cond.end9: ; preds = %entry, %cond.true2
%structured_feature_info0.sroa.25.0932 = phi i64 [ %retval.sroa.3.8.insert.insert.i, %cond.true2 ], [ 0, %entry ]
%structured_feature_info0.sroa.0.0930 = phi i64 [ %retval.sroa.2.0.insert.shift.i, %cond.true2 ], [ 0, %entry ]
%structured_feature_info1.sroa.0.0 = phi i8 [ %phi.bo936, %cond.true2 ], [ 0, %entry ]
call void @llvm.dbg.value(metadata i64 undef, metadata !265, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !266, metadata !DIExpression()), !dbg !297
%cmp10 = icmp ugt i32 %max_extended_index, -2147483641, !dbg !319
br i1 %cmp10, label %cond.true11, label %cond.end18, !dbg !320
cond.true11: ; preds = %cond.end9
call void @llvm.dbg.value(metadata i32 -2147483640, metadata !321, metadata !DIExpression()) #4, !dbg !327
%3 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483640) #5, !dbg !329, !srcloc !330
%asmresult2.i = extractvalue { i32, i32, i32, i32 } %3, 1, !dbg !329
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 %asmresult2.i, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !327
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !297
%phi.cast = trunc i32 %asmresult2.i to i8, !dbg !320
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult2.i, i32 undef), metadata !268, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !297
%phi.bo = and i8 %phi.cast, 1, !dbg !320
br label %cond.end18, !dbg !320
cond.end18: ; preds = %cond.end9, %cond.true11
%processor_capacity_info.sroa.0.0 = phi i8 [ %phi.bo, %cond.true11 ], [ 0, %cond.end9 ]
call void @llvm.dbg.value(metadata i64 undef, metadata !268, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 0, metadata !271, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i32 201326592, metadata !272, metadata !DIExpression()), !dbg !297
%and = and i32 %basic_info.sroa.1.8.extract.trunc, 201326592, !dbg !331
%cmp20 = icmp eq i32 %and, 201326592, !dbg !332
br i1 %cmp20, label %if.then, label %if.end54, !dbg !333
if.then: ; preds = %cond.end18
call void @llvm.dbg.value(metadata i64 0, metadata !273, metadata !DIExpression()), !dbg !334
%cmp21 = icmp ugt i32 %max_base_index, 12, !dbg !335
br i1 %cmp21, label %if.then22, label %if.end, !dbg !336
if.then22: ; preds = %if.then
call void @llvm.dbg.value(metadata i32 13, metadata !301, metadata !DIExpression()) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 0, metadata !307, metadata !DIExpression()) #4, !dbg !337
%4 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 13, i32 0) #5, !dbg !339, !srcloc !312
%asmresult.i885 = extractvalue { i32, i32, i32, i32 } %4, 0, !dbg !339
call void @llvm.dbg.value(metadata i32 %asmresult.i885, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !337
call void @llvm.dbg.value(metadata i32 undef, metadata !308, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !337
%retval.sroa.0.0.insert.ext.i891 = zext i32 %asmresult.i885 to i64, !dbg !340
call void @llvm.dbg.value(metadata !DIArgList(i32 undef, i64 %retval.sroa.0.0.insert.ext.i891), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !341
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 undef), metadata !276, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !341
call void @llvm.dbg.value(metadata i64 %retval.sroa.0.0.insert.ext.i891, metadata !273, metadata !DIExpression()), !dbg !334
br label %if.end, !dbg !342
if.end: ; preds = %if.then22, %if.then
%xcr0_valid_bits.0 = phi i64 [ %retval.sroa.0.0.insert.ext.i891, %if.then22 ], [ 0, %if.then ], !dbg !334
call void @llvm.dbg.value(metadata i64 %xcr0_valid_bits.0, metadata !273, metadata !DIExpression()), !dbg !334
call void @llvm.dbg.value(metadata i32 0, metadata !343, metadata !DIExpression()) #4, !dbg !350
%5 = tail call { i32, i32 } asm ".byte 0x0F, 0x01, 0xD0", "={ax},={dx},{cx},~{dirflag},~{fpsr},~{flags}"(i32 0) #5, !dbg !352, !srcloc !353
%asmresult.i899 = extractvalue { i32, i32 } %5, 0, !dbg !352
call void @llvm.dbg.value(metadata i32 %asmresult.i899, metadata !348, metadata !DIExpression()) #4, !dbg !350
call void @llvm.dbg.value(metadata i32 undef, metadata !349, metadata !DIExpression()) #4, !dbg !350
%conv2.i = zext i32 %asmresult.i899 to i64, !dbg !354
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i64 %conv2.i), metadata !279, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value)), !dbg !334
call void @llvm.dbg.value(metadata i64 6, metadata !281, metadata !DIExpression()), !dbg !334
%and28 = and i64 %xcr0_valid_bits.0, 6, !dbg !355
%cmp29 = icmp eq i64 %and28, 6, !dbg !357
%and32 = and i64 %conv2.i, 6, !dbg !358
%cmp33 = icmp eq i64 %and32, 6, !dbg !358
%avx_regs.0 = select i1 %cmp29, i1 %cmp33, i1 false, !dbg !358
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 230, metadata !282, metadata !DIExpression()), !dbg !334
%and36 = and i64 %xcr0_valid_bits.0, 230, !dbg !359
%cmp37 = icmp eq i64 %and36, 230, !dbg !361
%and40 = and i64 %conv2.i, 230, !dbg !362
%cmp41 = icmp eq i64 %and40, 230, !dbg !362
%avx512_regs.0 = select i1 %cmp37, i1 %cmp41, i1 false, !dbg !362
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i64 24, metadata !283, metadata !DIExpression()), !dbg !334
%and45 = and i64 %xcr0_valid_bits.0, 24, !dbg !363
%cmp46 = icmp eq i64 %and45, 24, !dbg !365
%and49 = and i64 %conv2.i, 24, !dbg !366
%cmp50 = icmp eq i64 %and49, 24, !dbg !366
%mpx_regs.0 = select i1 %cmp46, i1 %cmp50, i1 false, !dbg !366
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
br label %if.end54, !dbg !367
if.end54: ; preds = %if.end, %cond.end18
%mpx_regs.1 = phi i1 [ %mpx_regs.0, %if.end ], [ false, %cond.end18 ], !dbg !297
%avx512_regs.1 = phi i1 [ %avx512_regs.0, %if.end ], [ false, %cond.end18 ], !dbg !297
%avx_regs.1 = phi i1 [ %avx_regs.0, %if.end ], [ false, %cond.end18 ], !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !269, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !270, metadata !DIExpression()), !dbg !297
call void @llvm.dbg.value(metadata i8 undef, metadata !271, metadata !DIExpression()), !dbg !297
%sysenter = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 2, !dbg !368
%and56815 = lshr i64 %basic_info.coerce1, 43, !dbg !369
%6 = trunc i64 %and56815 to i8, !dbg !369
%7 = and i8 %6, 1, !dbg !369
store i8 %7, i8* %sysenter, align 1, !dbg !369
%or61820 = or i64 %extended_info.sroa.14.8.extract.shift, %basic_info.sroa.18.8.extract.shift, !dbg !370
%msr = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 3, !dbg !371
%8 = trunc i64 %or61820 to i8, !dbg !372
%9 = lshr i8 %8, 5, !dbg !372
%10 = and i8 %9, 1, !dbg !372
store i8 %10, i8* %msr, align 1, !dbg !372
%clzero = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 4, !dbg !373
store i8 %processor_capacity_info.sroa.0.0, i8* %clzero, align 1, !dbg !374
%clflush = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 5, !dbg !375
%and74817 = lshr i64 %basic_info.coerce1, 51, !dbg !376
%11 = trunc i64 %and74817 to i8, !dbg !376
%12 = and i8 %11, 1, !dbg !376
store i8 %12, i8* %clflush, align 1, !dbg !376
%structured_feature_info0.sroa.0.4.extract.shift = lshr exact i64 %structured_feature_info0.sroa.0.0930, 32, !dbg !377
%structured_feature_info0.sroa.0.4.extract.trunc = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i32, !dbg !377
%clflushopt = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 6, !dbg !378
%and80818 = lshr i64 %structured_feature_info0.sroa.0.0930, 55, !dbg !379
%13 = trunc i64 %and80818 to i8, !dbg !379
%14 = and i8 %13, 1, !dbg !379
store i8 %14, i8* %clflushopt, align 1, !dbg !379
%mwait = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 7, !dbg !380
%15 = trunc i64 %basic_info.coerce1 to i8, !dbg !381
%16 = lshr i8 %15, 3, !dbg !381
%17 = and i8 %16, 1, !dbg !381
store i8 %17, i8* %mwait, align 1, !dbg !381
%mwaitx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 8, !dbg !382
%and92 = lshr i32 %extended_info.sroa.1.8.extract.trunc, 29, !dbg !383
%18 = trunc i32 %and92 to i8, !dbg !383
%19 = and i8 %18, 1, !dbg !383
store i8 %19, i8* %mwaitx, align 1, !dbg !383
%fxsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 9, !dbg !384
%and100821 = lshr i64 %or61820, 24, !dbg !386
%20 = trunc i64 %and100821 to i8, !dbg !386
%21 = and i8 %20, 1, !dbg !386
store i8 %21, i8* %fxsave, align 1, !dbg !386
%xsave = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 10, !dbg !387
%and106 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 26, !dbg !388
%22 = trunc i32 %and106 to i8, !dbg !388
%23 = and i8 %22, 1, !dbg !388
store i8 %23, i8* %xsave, align 1, !dbg !388
%three_d_now = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 11, !dbg !389
%extended_info.coerce1.lobit = lshr i64 %extended_info.coerce1, 63, !dbg !390
%24 = trunc i64 %extended_info.coerce1.lobit to i8, !dbg !390
store i8 %24, i8* %three_d_now, align 1, !dbg !390
%three_d_now_plus = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 12, !dbg !391
%and118 = lshr i32 %extended_info.sroa.14.8.extract.trunc, 30, !dbg !392
%25 = trunc i32 %and118 to i8, !dbg !392
%26 = and i8 %25, 1, !dbg !392
store i8 %26, i8* %three_d_now_plus, align 1, !dbg !392
switch i32 %vendor, label %sw.default132 [
i32 16, label %sw.bb
i32 2, label %sw.bb
i32 1, label %sw.epilog162
], !dbg !393
sw.bb: ; preds = %if.end54, %if.end54
%and124 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !394
%and126 = and i32 %extended_info.sroa.14.8.extract.trunc, -536870912, !dbg !396
%or127 = or i32 %and126, %and124, !dbg !397
%tobool128 = icmp ne i32 %or127, 0, !dbg !398
br label %sw.epilog140, !dbg !399
sw.default132: ; preds = %if.end54
%tobool135 = icmp ugt i32 %extended_info.sroa.14.8.extract.trunc, 1073741823, !dbg !400
br label %sw.epilog140, !dbg !401
sw.epilog140: ; preds = %sw.default132, %sw.bb
%tobool135.sink = phi i1 [ %tobool135, %sw.default132 ], [ %tobool128, %sw.bb ]
%prefetch138 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 13, !dbg !402
%frombool139 = zext i1 %tobool135.sink to i8, !dbg !402
store i8 %frombool139, i8* %prefetch138, align 1, !dbg !402
%switch.selectcmp.case1 = icmp eq i32 %vendor, 2, !dbg !403
%switch.selectcmp.case2 = icmp eq i32 %vendor, 16, !dbg !403
%switch.selectcmp = or i1 %switch.selectcmp.case1, %switch.selectcmp.case2, !dbg !403
%27 = select i1 %switch.selectcmp, i32 -536870912, i32 -1073741824, !dbg !403
br label %sw.epilog162, !dbg !403
sw.epilog162: ; preds = %if.end54, %sw.epilog140
%.sink = phi i32 [ %27, %sw.epilog140 ], [ -1073741824, %if.end54 ]
%and153 = and i32 %extended_info.sroa.1.8.extract.trunc, 256, !dbg !404
%and155 = and i32 %.sink, %extended_info.sroa.14.8.extract.trunc, !dbg !404
%or156 = or i32 %and155, %and153, !dbg !404
%tobool157 = icmp ne i32 %or156, 0, !dbg !404
%prefetchw160 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 14, !dbg !404
%frombool161 = zext i1 %tobool157 to i8, !dbg !404
store i8 %frombool161, i8* %prefetchw160, align 1, !dbg !404
%prefetchwt1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 15, !dbg !406
%28 = trunc i64 %structured_feature_info0.sroa.25.0932 to i8, !dbg !407
%29 = and i8 %28, 1, !dbg !407
store i8 %29, i8* %prefetchwt1, align 1, !dbg !407
%sse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 16, !dbg !408
%30 = and i8 %15, 1, !dbg !409
store i8 %30, i8* %sse3, align 1, !dbg !409
%ssse3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 17, !dbg !410
%and176822 = lshr i64 %basic_info.coerce1, 9, !dbg !411
%31 = trunc i64 %and176822 to i8, !dbg !411
%32 = and i8 %31, 1, !dbg !411
store i8 %32, i8* %ssse3, align 1, !dbg !411
%sse4_1 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 18, !dbg !412
%and182823 = lshr i64 %basic_info.coerce1, 19, !dbg !413
%33 = trunc i64 %and182823 to i8, !dbg !413
%34 = and i8 %33, 1, !dbg !413
store i8 %34, i8* %sse4_1, align 1, !dbg !413
%sse4_2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 19, !dbg !414
%and188824 = lshr i64 %basic_info.coerce1, 20, !dbg !415
%35 = trunc i64 %and188824 to i8, !dbg !415
%36 = and i8 %35, 1, !dbg !415
store i8 %36, i8* %sse4_2, align 1, !dbg !415
%sse4a = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 20, !dbg !416
%37 = trunc i64 %extended_info.coerce1 to i8, !dbg !417
%38 = lshr i8 %37, 6, !dbg !417
%39 = and i8 %38, 1, !dbg !417
store i8 %39, i8* %sse4a, align 1, !dbg !417
%misaligned_sse = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 21, !dbg !418
%40 = lshr i8 %37, 7, !dbg !419
store i8 %40, i8* %misaligned_sse, align 1, !dbg !419
%and208 = and i32 %basic_info.sroa.1.8.extract.trunc, 268435456, !dbg !420
%tobool209 = icmp ne i32 %and208, 0, !dbg !420
%41 = select i1 %avx_regs.1, i1 %tobool209, i1 false, !dbg !420
%avx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 22, !dbg !421
%frombool212 = zext i1 %41 to i8, !dbg !422
store i8 %frombool212, i8* %avx, align 1, !dbg !422
%and217 = and i32 %basic_info.sroa.1.8.extract.trunc, 4096, !dbg !423
%tobool218 = icmp ne i32 %and217, 0, !dbg !423
%42 = select i1 %avx_regs.1, i1 %tobool218, i1 false, !dbg !423
%fma3 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 23, !dbg !424
%frombool222 = zext i1 %42 to i8, !dbg !425
store i8 %frombool222, i8* %fma3, align 1, !dbg !425
%and227 = and i32 %extended_info.sroa.1.8.extract.trunc, 65536, !dbg !426
%tobool228 = icmp ne i32 %and227, 0, !dbg !426
%43 = select i1 %avx_regs.1, i1 %tobool228, i1 false, !dbg !426
%fma4 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 24, !dbg !427
%frombool232 = zext i1 %43 to i8, !dbg !428
store i8 %frombool232, i8* %fma4, align 1, !dbg !428
%and237 = and i32 %extended_info.sroa.1.8.extract.trunc, 2048, !dbg !429
%tobool238 = icmp ne i32 %and237, 0, !dbg !429
%44 = select i1 %avx_regs.1, i1 %tobool238, i1 false, !dbg !429
%xop = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 25, !dbg !430
%frombool242 = zext i1 %44 to i8, !dbg !431
store i8 %frombool242, i8* %xop, align 1, !dbg !431
%and247 = and i32 %basic_info.sroa.1.8.extract.trunc, 536870912, !dbg !432
%tobool248 = icmp ne i32 %and247, 0, !dbg !432
%45 = select i1 %avx_regs.1, i1 %tobool248, i1 false, !dbg !432
%f16c = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 26, !dbg !433
%frombool252 = zext i1 %45 to i8, !dbg !434
store i8 %frombool252, i8* %f16c, align 1, !dbg !434
%and257 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 32, !dbg !435
%tobool258 = icmp ne i32 %and257, 0, !dbg !435
%46 = select i1 %avx_regs.1, i1 %tobool258, i1 false, !dbg !435
%avx2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 27, !dbg !436
%frombool262 = zext i1 %46 to i8, !dbg !437
store i8 %frombool262, i8* %avx2, align 1, !dbg !437
%and267 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 65536, !dbg !438
%tobool268 = icmp ne i32 %and267, 0, !dbg !438
%47 = select i1 %avx512_regs.1, i1 %tobool268, i1 false, !dbg !438
%avx512f = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 28, !dbg !439
%frombool272 = zext i1 %47 to i8, !dbg !440
store i8 %frombool272, i8* %avx512f, align 1, !dbg !440
%and277 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 67108864, !dbg !441
%tobool278 = icmp ne i32 %and277, 0, !dbg !441
%48 = select i1 %avx512_regs.1, i1 %tobool278, i1 false, !dbg !441
%avx512pf = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 29, !dbg !442
%frombool282 = zext i1 %48 to i8, !dbg !443
store i8 %frombool282, i8* %avx512pf, align 1, !dbg !443
%and287 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 134217728, !dbg !444
%tobool288 = icmp ne i32 %and287, 0, !dbg !444
%49 = select i1 %avx512_regs.1, i1 %tobool288, i1 false, !dbg !444
%avx512er = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 30, !dbg !445
%frombool292 = zext i1 %49 to i8, !dbg !446
store i8 %frombool292, i8* %avx512er, align 1, !dbg !446
%and297 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 268435456, !dbg !447
%tobool298 = icmp ne i32 %and297, 0, !dbg !447
%50 = select i1 %avx512_regs.1, i1 %tobool298, i1 false, !dbg !447
%avx512cd = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 31, !dbg !448
%frombool302 = zext i1 %50 to i8, !dbg !449
store i8 %frombool302, i8* %avx512cd, align 1, !dbg !449
%and307827 = lshr i64 %structured_feature_info0.sroa.0.0930, 49, !dbg !450
%51 = trunc i64 %and307827 to i8, !dbg !450
%52 = and i8 %51, 1, !dbg !450
%53 = select i1 %avx512_regs.1, i8 %52, i8 0, !dbg !450
%avx512dq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 32, !dbg !451
store i8 %53, i8* %avx512dq, align 1, !dbg !452
%and317 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 30, !dbg !453
%54 = trunc i32 %and317 to i8, !dbg !453
%55 = and i8 %54, 1, !dbg !453
%56 = select i1 %avx512_regs.1, i8 %55, i8 0, !dbg !453
%avx512bw = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 33, !dbg !454
store i8 %56, i8* %avx512bw, align 1, !dbg !455
%and327.lobit = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 31, !dbg !456
%57 = trunc i32 %and327.lobit to i8, !dbg !456
%58 = select i1 %avx512_regs.1, i8 %57, i8 0, !dbg !456
%avx512vl = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 34, !dbg !457
store i8 %58, i8* %avx512vl, align 1, !dbg !458
%and337828 = lshr i64 %structured_feature_info0.sroa.0.0930, 53, !dbg !459
%59 = trunc i64 %and337828 to i8, !dbg !459
%60 = and i8 %59, 1, !dbg !459
%61 = select i1 %avx512_regs.1, i8 %60, i8 0, !dbg !459
%avx512ifma = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 35, !dbg !460
store i8 %61, i8* %avx512ifma, align 1, !dbg !461
%62 = lshr i8 %28, 1, !dbg !462
%63 = and i8 %62, 1, !dbg !462
%64 = select i1 %avx512_regs.1, i8 %63, i8 0, !dbg !462
%avx512vbmi = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 36, !dbg !463
store i8 %64, i8* %avx512vbmi, align 1, !dbg !464
%65 = lshr i8 %28, 6, !dbg !465
%66 = and i8 %65, 1, !dbg !465
%67 = select i1 %avx512_regs.1, i8 %66, i8 0, !dbg !465
%avx512vbmi2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 37, !dbg !466
store i8 %67, i8* %avx512vbmi2, align 1, !dbg !467
%and367831 = lshr i64 %structured_feature_info0.sroa.25.0932, 12, !dbg !468
%68 = trunc i64 %and367831 to i8, !dbg !468
%69 = and i8 %68, 1, !dbg !468
%70 = select i1 %avx512_regs.1, i8 %69, i8 0, !dbg !468
%avx512bitalg = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 38, !dbg !469
store i8 %70, i8* %avx512bitalg, align 1, !dbg !470
%and377832 = lshr i64 %structured_feature_info0.sroa.25.0932, 14, !dbg !471
%71 = trunc i64 %and377832 to i8, !dbg !471
%72 = and i8 %71, 1, !dbg !471
%73 = select i1 %avx512_regs.1, i8 %72, i8 0, !dbg !471
%avx512vpopcntdq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 39, !dbg !472
store i8 %73, i8* %avx512vpopcntdq, align 1, !dbg !473
%and387833 = lshr i64 %structured_feature_info0.sroa.25.0932, 11, !dbg !474
%74 = trunc i64 %and387833 to i8, !dbg !474
%75 = and i8 %74, 1, !dbg !474
%76 = select i1 %avx512_regs.1, i8 %75, i8 0, !dbg !474
%avx512vnni = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 40, !dbg !475
store i8 %76, i8* %avx512vnni, align 1, !dbg !476
%sum.shift = lshr i64 %structured_feature_info0.sroa.25.0932, 34, !dbg !477
%and397834 = trunc i64 %sum.shift to i8, !dbg !477
%and397.lobit = and i8 %and397834, 1, !dbg !477
%77 = select i1 %avx512_regs.1, i8 %and397.lobit, i8 0, !dbg !477
%avx512_4vnniw = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 43, !dbg !478
store i8 %77, i8* %avx512_4vnniw, align 1, !dbg !479
%sum.shift835 = lshr i64 %structured_feature_info0.sroa.25.0932, 35, !dbg !480
%and407836 = trunc i64 %sum.shift835 to i8, !dbg !480
%and407.lobit = and i8 %and407836, 1, !dbg !480
%78 = select i1 %avx512_regs.1, i8 %and407.lobit, i8 0, !dbg !480
%avx512_4fmaps = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 44, !dbg !481
store i8 %78, i8* %avx512_4fmaps, align 1, !dbg !482
%sum.shift837 = lshr i64 %structured_feature_info0.sroa.25.0932, 40, !dbg !483
%and417838 = trunc i64 %sum.shift837 to i8, !dbg !483
%and417.lobit = and i8 %and417838, 1, !dbg !483
%79 = select i1 %avx512_regs.1, i8 %and417.lobit, i8 0, !dbg !483
%avx512vp2intersect = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 42, !dbg !484
store i8 %79, i8* %avx512vp2intersect, align 1, !dbg !485
%80 = select i1 %avx512_regs.1, i8 %structured_feature_info1.sroa.0.0, i8 0, !dbg !486
%avx512bf16 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 41, !dbg !487
store i8 %80, i8* %avx512bf16, align 1, !dbg !488
%hle = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 45, !dbg !489
%and434840 = lshr i64 %structured_feature_info0.sroa.0.0930, 36, !dbg !490
%81 = trunc i64 %and434840 to i8, !dbg !490
%82 = and i8 %81, 1, !dbg !490
store i8 %82, i8* %hle, align 1, !dbg !490
%and440 = and i32 %structured_feature_info0.sroa.0.4.extract.trunc, 2048, !dbg !491
%tobool441 = icmp ne i32 %and440, 0, !dbg !492
%rtm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 46, !dbg !493
%and440.lobit = lshr exact i32 %and440, 11, !dbg !494
%83 = trunc i32 %and440.lobit to i8, !dbg !494
store i8 %83, i8* %rtm, align 1, !dbg !494
%tobool446 = icmp ne i8 %82, 0, !dbg !495
%84 = select i1 %tobool446, i1 true, i1 %tobool441, !dbg !496
%xtest = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 47, !dbg !497
%frombool451 = zext i1 %84 to i8, !dbg !498
store i8 %frombool451, i8* %xtest, align 1, !dbg !498
%and456841 = lshr i64 %structured_feature_info0.sroa.0.0930, 46, !dbg !499
%85 = trunc i64 %and456841 to i8, !dbg !499
%86 = and i8 %85, 1, !dbg !499
%87 = select i1 %mpx_regs.1, i8 %86, i8 0, !dbg !499
%mpx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 48, !dbg !500
store i8 %87, i8* %mpx, align 1, !dbg !501
%cmpxchg16b = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 49, !dbg !502
%and463842 = lshr i64 %basic_info.coerce1, 13, !dbg !503
%88 = trunc i64 %and463842 to i8, !dbg !503
%89 = and i8 %88, 1, !dbg !503
store i8 %89, i8* %cmpxchg16b, align 1, !dbg !503
%clwb = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 50, !dbg !504
%and469843 = lshr i64 %structured_feature_info0.sroa.0.0930, 56, !dbg !505
%90 = trunc i64 %and469843 to i8, !dbg !505
%91 = and i8 %90, 1, !dbg !505
store i8 %91, i8* %clwb, align 1, !dbg !505
%movbe = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 51, !dbg !506
%and475844 = lshr i64 %basic_info.coerce1, 22, !dbg !507
%92 = trunc i64 %and475844 to i8, !dbg !507
%93 = and i8 %92, 1, !dbg !507
store i8 %93, i8* %movbe, align 1, !dbg !507
%lahf_sahf = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 52, !dbg !508
%94 = and i8 %37, 1, !dbg !509
store i8 %94, i8* %lahf_sahf, align 1, !dbg !509
%fs_gs_base = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 53, !dbg !510
%95 = trunc i64 %structured_feature_info0.sroa.0.4.extract.shift to i8, !dbg !511
%96 = and i8 %95, 1, !dbg !511
store i8 %96, i8* %fs_gs_base, align 1, !dbg !511
%lzcnt = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 54, !dbg !512
%97 = lshr i8 %37, 5, !dbg !513
%98 = and i8 %97, 1, !dbg !513
store i8 %98, i8* %lzcnt, align 1, !dbg !513
%popcnt = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 55, !dbg !514
%and499846 = lshr i64 %basic_info.coerce1, 23, !dbg !515
%99 = trunc i64 %and499846 to i8, !dbg !515
%100 = and i8 %99, 1, !dbg !515
store i8 %100, i8* %popcnt, align 1, !dbg !515
%tbm = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 56, !dbg !516
%and505847 = lshr i64 %extended_info.coerce1, 21, !dbg !517
%101 = trunc i64 %and505847 to i8, !dbg !517
%102 = and i8 %101, 1, !dbg !517
store i8 %102, i8* %tbm, align 1, !dbg !517
%bmi = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 57, !dbg !518
%and511848 = lshr i64 %structured_feature_info0.sroa.0.0930, 35, !dbg !519
%103 = trunc i64 %and511848 to i8, !dbg !519
%104 = and i8 %103, 1, !dbg !519
store i8 %104, i8* %bmi, align 1, !dbg !519
%bmi2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 58, !dbg !520
%and517849 = lshr i64 %structured_feature_info0.sroa.0.0930, 40, !dbg !521
%105 = trunc i64 %and517849 to i8, !dbg !521
%106 = and i8 %105, 1, !dbg !521
store i8 %106, i8* %bmi2, align 1, !dbg !521
%adx = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 59, !dbg !522
%and523850 = lshr i64 %structured_feature_info0.sroa.0.0930, 51, !dbg !523
%107 = trunc i64 %and523850 to i8, !dbg !523
%108 = and i8 %107, 1, !dbg !523
store i8 %108, i8* %adx, align 1, !dbg !523
%aes = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 60, !dbg !524
%and529 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 25, !dbg !525
%109 = trunc i32 %and529 to i8, !dbg !525
%110 = and i8 %109, 1, !dbg !525
store i8 %110, i8* %aes, align 1, !dbg !525
%vaes = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 61, !dbg !526
%and535851 = lshr i64 %structured_feature_info0.sroa.25.0932, 9, !dbg !527
%111 = trunc i64 %and535851 to i8, !dbg !527
%112 = and i8 %111, 1, !dbg !527
store i8 %112, i8* %vaes, align 1, !dbg !527
%pclmulqdq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 62, !dbg !528
%113 = lshr i8 %15, 1, !dbg !529
%114 = and i8 %113, 1, !dbg !529
store i8 %114, i8* %pclmulqdq, align 1, !dbg !529
%vpclmulqdq = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 63, !dbg !530
%and547853 = lshr i64 %structured_feature_info0.sroa.25.0932, 10, !dbg !531
%115 = trunc i64 %and547853 to i8, !dbg !531
%116 = and i8 %115, 1, !dbg !531
store i8 %116, i8* %vpclmulqdq, align 1, !dbg !531
%gfni = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 64, !dbg !532
%and553854 = lshr i64 %structured_feature_info0.sroa.25.0932, 8, !dbg !533
%117 = trunc i64 %and553854 to i8, !dbg !533
%118 = and i8 %117, 1, !dbg !533
store i8 %118, i8* %gfni, align 1, !dbg !533
%rdrand = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 65, !dbg !534
%and559 = lshr i32 %basic_info.sroa.1.8.extract.trunc, 30, !dbg !535
%119 = trunc i32 %and559 to i8, !dbg !535
%120 = and i8 %119, 1, !dbg !535
store i8 %120, i8* %rdrand, align 1, !dbg !535
%rdseed = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 66, !dbg !536
%and565855 = lshr i64 %structured_feature_info0.sroa.0.0930, 50, !dbg !537
%121 = trunc i64 %and565855 to i8, !dbg !537
%122 = and i8 %121, 1, !dbg !537
store i8 %122, i8* %rdseed, align 1, !dbg !537
%sha = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 67, !dbg !538
%and571 = lshr i32 %structured_feature_info0.sroa.0.4.extract.trunc, 29, !dbg !539
%123 = trunc i32 %and571 to i8, !dbg !539
%124 = and i8 %123, 1, !dbg !539
store i8 %124, i8* %sha, align 1, !dbg !539
%cmp576 = icmp eq i32 %vendor, 11, !dbg !540
br i1 %cmp576, label %if.then578, label %if.end611, !dbg !541
if.then578: ; preds = %sw.epilog162
call void @llvm.dbg.value(metadata i32 -1073741824, metadata !321, metadata !DIExpression()) #4, !dbg !542
%125 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741824) #5, !dbg !544, !srcloc !330
%asmresult.i900 = extractvalue { i32, i32, i32, i32 } %125, 0, !dbg !544
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !542
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !542
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !542
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !542
call void @llvm.dbg.value(metadata i64 undef, metadata !284, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !545
call void @llvm.dbg.value(metadata !DIArgList(i64 0, i32 %asmresult.i900), metadata !284, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 0, 64)), !dbg !545
call void @llvm.dbg.value(metadata i32 %asmresult.i900, metadata !287, metadata !DIExpression()), !dbg !545
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !288, metadata !DIExpression()), !dbg !545
%cmp581 = icmp ugt i32 %asmresult.i900, -1073741824, !dbg !546
br i1 %cmp581, label %if.then583, label %if.end611, !dbg !547
if.then583: ; preds = %if.then578
call void @llvm.dbg.value(metadata i32 -1073741823, metadata !321, metadata !DIExpression()) #4, !dbg !548
%126 = tail call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -1073741823) #5, !dbg !550, !srcloc !330
%asmresult4.i917 = extractvalue { i32, i32, i32, i32 } %126, 3, !dbg !550
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)) #4, !dbg !548
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)) #4, !dbg !548
call void @llvm.dbg.value(metadata i32 undef, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 32)) #4, !dbg !548
call void @llvm.dbg.value(metadata i32 %asmresult4.i917, metadata !326, metadata !DIExpression(DW_OP_LLVM_fragment, 96, 32)) #4, !dbg !548
call void @llvm.dbg.value(metadata i64 undef, metadata !289, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !551
call void @llvm.dbg.value(metadata !DIArgList(i32 %asmresult4.i917, i32 undef), metadata !289, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_constu, 32, DW_OP_shl, DW_OP_LLVM_arg, 1, DW_OP_LLVM_convert, 32, DW_ATE_unsigned, DW_OP_LLVM_convert, 64, DW_ATE_unsigned, DW_OP_or, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !551
call void @llvm.dbg.value(metadata i32 12, metadata !292, metadata !DIExpression()), !dbg !551
%and586 = and i32 %asmresult4.i917, 12, !dbg !552
%cmp587 = icmp eq i32 %and586, 12, !dbg !553
%rng = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 68, !dbg !554
%frombool589 = zext i1 %cmp587 to i8, !dbg !555
store i8 %frombool589, i8* %rng, align 1, !dbg !555
call void @llvm.dbg.value(metadata i32 192, metadata !293, metadata !DIExpression()), !dbg !551
%and591 = and i32 %asmresult4.i917, 192, !dbg !556
%cmp592 = icmp eq i32 %and591, 192, !dbg !557
%ace = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 69, !dbg !558
%frombool594 = zext i1 %cmp592 to i8, !dbg !559
store i8 %frombool594, i8* %ace, align 1, !dbg !559
call void @llvm.dbg.value(metadata i32 768, metadata !294, metadata !DIExpression()), !dbg !551
%and596 = and i32 %asmresult4.i917, 768, !dbg !560
%cmp597 = icmp eq i32 %and596, 768, !dbg !561
%ace2 = getelementptr inbounds %struct.cpuinfo_x86_isa, %struct.cpuinfo_x86_isa* %agg.result, i64 0, i32 70, !dbg !562
%frombool599 = zext i1 %cmp597 to i8, !dbg !563
store i8 %frombool599, i8* %ace2, align 1, !dbg !563
call void @llvm.dbg.value(metadata i32 3072, metadata !295, metadata !DIExpression()), !
@MaskRay
Copy link
Author

MaskRay commented Jun 23, 2022

The compile command line looks like clang -Os -fsanitize=memory -fsanitize-memory-param-retval -fsanitize-memory-use-after-dtor -march=x86-64-v3 ... isa.c where isa.c is https://github.com/pytorch/cpuinfo/blob/master/src/x86/isa.c#L118

I added -emit-llvm -print-changed -emit-llvm -print-module-scope and extracted the IR before and after SLPVectorizer.

  • -march=x86-64-v2 passes

asm-bad.ll and asm-good.ll are produced with llc -O2 asm-bad.ll and llc -O2 asm-good.ll. They should be similar to clang -Os -S output.

isa is a local variable used as the return value. Its address is stored in RDI.

The bad codegen (with the SLPVectorizer change) has these lines. There is a copy from RDI to RBX.
When writing to isa, RBX is 0 (i.e. &isa is 0), so a null pointer dereference follows.

 252│ 118             isa.sysenter = !!(basic_info.edx & UINT32_C(0x00000800));
 253│    0x0000555555591da9 <+333>:   test   %r15,%r15
 254│    0x0000555555591dac <+336>:   jne    0x55555559273f <cpuinfo_x86_detect_isa+2787>
 255│    0x0000555555591db2 <+342>:   mov    -0x38(%rbp),%r15
 256│    0x0000555555591db6 <+346>:   mov    %r15,%r12
 257│    0x0000555555591db9 <+349>:   shr    $0x20,%r12
 258│    0x0000555555591dbd <+353>:   mov    -0x30(%rbp),%r9
 259│    0x0000555555591dc1 <+357>:   shr    $0x20,%r9
 260│    0x0000555555591dc5 <+361>:   mov    %r14,%rax
 261│    0x0000555555591dc8 <+364>:   shr    $0x20,%rax
 262│    0x0000555555591dcc <+368>:   mov    %r13,%rdi
 263│    0x0000555555591dcf <+371>:   shr    $0x20,%rdi
 264│    0x0000555555591dd3 <+375>:   lea    0x2(%rbx),%rcx
 265│    0x0000555555591dd7 <+379>:   mov    %r14,%rsi
 266│    0x0000555555591dda <+382>:   shr    $0x2b,%rsi
 267│    0x0000555555591dde <+386>:   and    $0x1,%sil
 268│    0x0000555555591de2 <+390>:   movabs $0x500000000000,%r8
 269│    0x0000555555591dec <+400>:   xor    %r8,%rcx
 270│    0x0000555555591def <+403>:   mov    %sil,(%rcx)
 271│    0x0000555555591df2 <+406>:   mov    %r13,%rcx
 272│    0x0000555555591df5 <+409>:   shr    $0x2b,%rcx
 273│    0x0000555555591df9 <+413>:   and    $0x1,%cl
 274│    0x0000555555591dfc <+416>:   mov    %cl,0x2(%rbx)
 275│
 276│ 119
 277│ 120     #if CPUINFO_ARCH_X86
 278│ 121             /*
 279│ 122              * SYSCALL/SYSRET instructions:
 280│ 123              * - Intel, AMD: edx[bit 11] in extended info.
 281│ 124              */
 282│ 125             isa.syscall = !!(extended_info.edx & UINT32_C(0x00000800));
 283│ 126     #endif
 284│ 127
 285│ 128             /*
 286│ 129              * RDMSR/WRMSR instructions:
 287│ 130              * - Intel, AMD: edx[bit 5] in basic info.
** Dump of assembler code for function cpuinfo_x86_detect_isa: (555555591c5c - 555555592741) **                                                                                                                                                                                  
(gdb)
0x0000555555591dd3      118             isa.sysenter = !!(basic_info.edx & UINT32_C(0x00000800));
(gdb) i r rbx
rbx            0x0                 0
(gdb) i r rbx
rbx            0x0                 0
(gdb) i r rbx
rbx            0x0                 0
(gdb) p &isa
$2 = (struct cpuinfo_x86_isa *) 0x0
(gdb) 

Good codegen (isa is a local variable).

 253│ 118             isa.sysenter = !!(basic_info.edx & UINT32_C(0x00000800));
 254│    0x0000555555591e0b <+335>:   test   %rax,%rax
 255│    0x0000555555591e0e <+338>:   jne    0x5555555927c5 <cpuinfo_x86_detect_isa+2825>
 256│    0x0000555555591e14 <+344>:   mov    -0x38(%rbp),%r8
 257│    0x0000555555591e18 <+348>:   mov    %r8,%rbx
 258│    0x0000555555591e1b <+351>:   shr    $0x20,%rbx
 259│    0x0000555555591e1f <+355>:   mov    -0x40(%rbp),%r12
 260│    0x0000555555591e23 <+359>:   shr    $0x20,%r12
 261│    0x0000555555591e27 <+363>:   mov    %r14,%rax
 262│    0x0000555555591e2a <+366>:   shr    $0x20,%rax
 263│    0x0000555555591e2e <+370>:   mov    %r15,%rdi
 264│    0x0000555555591e31 <+373>:   shr    $0x20,%rdi
 265│    0x0000555555591e35 <+377>:   lea    0x2(%r13),%rcx
 266│    0x0000555555591e39 <+381>:   mov    %r14,%rsi
 267│    0x0000555555591e3c <+384>:   shr    $0x2b,%rsi
 268│    0x0000555555591e40 <+388>:   and    $0x1,%sil
 269│    0x0000555555591e44 <+392>:   movabs $0x500000000000,%r11
 270│    0x0000555555591e4e <+402>:   xor    %r11,%rcx
 271│    0x0000555555591e51 <+405>:   mov    %sil,(%rcx)
 272│    0x0000555555591e54 <+408>:   mov    %r15,%rcx
 273│    0x0000555555591e57 <+411>:   shr    $0x2b,%rcx
 274│    0x0000555555591e5b <+415>:   and    $0x1,%cl
 275│    0x0000555555591e5e <+418>:   mov    %cl,0x2(%r13)
 276│
 277│ 119
 278│ 120     #if CPUINFO_ARCH_X86
 279│ 121             /*
 280│ 122              * SYSCALL/SYSRET instructions:
 281│ 123              * - Intel, AMD: edx[bit 11] in extended info.
 282│ 124              */
 283│ 125             isa.syscall = !!(extended_info.edx & UINT32_C(0x00000800));
 284│ 126     #endif
 285│ 127
 286│ 128             /*
** Dump of assembler code for function cpuinfo_x86_detect_isa: (555555591cbc - 5555555927c7) **                                                                                                                                                                                  
0x0000555555591e39      118             isa.sysenter = !!(basic_info.edx & UINT32_C(0x00000800));
(gdb) i r r13
r13            0x7fffffffc7a0      140737488340896
(gdb) i r r13
r13            0x7fffffffc7a0      140737488340896
(gdb) p &isa
$4 = (struct cpuinfo_x86_isa *) 0x7fffffffc7a0
(gdb) 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment