CuPBoP/examples/vecadd/host.s

479 lines
31 KiB
ArmAsm

.text
.file "vecadd.cu"
.globl _Z21__device_stub__vecAddPdS_S_i_host # -- Begin function _Z21__device_stub__vecAddPdS_S_i_host
.p2align 4, 0x90
.type _Z21__device_stub__vecAddPdS_S_i_host,@function
_Z21__device_stub__vecAddPdS_S_i_host: # @_Z21__device_stub__vecAddPdS_S_i_host
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $88, %rsp
.cfi_offset %rbx, -56
.cfi_offset %r12, -48
.cfi_offset %r13, -40
.cfi_offset %r14, -32
.cfi_offset %r15, -24
movl %ecx, -44(%rbp) # 4-byte Spill
movq %rdx, -120(%rbp) # 8-byte Spill
movq %rsi, -112(%rbp) # 8-byte Spill
movq %rdi, -104(%rbp) # 8-byte Spill
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, %r14
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, %r15
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, %r12
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, %rbx
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, -96(%rbp) # 8-byte Spill
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, -88(%rbp) # 8-byte Spill
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, -80(%rbp) # 8-byte Spill
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, -56(%rbp) # 8-byte Spill
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, -64(%rbp) # 8-byte Spill
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, -72(%rbp) # 8-byte Spill
movq -104(%rbp), %rax # 8-byte Reload
movq %rax, (%r14)
movq -112(%rbp), %rax # 8-byte Reload
movq %rax, (%r15)
movq -120(%rbp), %rax # 8-byte Reload
movq %rax, (%r12)
movl -44(%rbp), %eax # 4-byte Reload
movl %eax, (%rbx)
movl $256, %edi # imm = 0x100
callq malloc@PLT
movq %rax, %r13
movq %r14, (%rax)
movq %r15, 8(%rax)
movq %r12, 16(%rax)
movq %rbx, 24(%rax)
movq -96(%rbp), %rbx # 8-byte Reload
movq %rbx, %rdi
movq -88(%rbp), %r14 # 8-byte Reload
movq %r14, %rsi
movq -80(%rbp), %r15 # 8-byte Reload
movq %r15, %rdx
movq -56(%rbp), %r12 # 8-byte Reload
movq %r12, %rcx
callq __cudaPopCallConfiguration@PLT
movq (%r15), %r10
movq (%r12), %rax
movq (%rbx), %rcx
movq -64(%rbp), %rdx # 8-byte Reload
movq %rcx, (%rdx)
movl 8(%rbx), %ecx
movl %ecx, 8(%rdx)
movq (%rdx), %rsi
movl 8(%rdx), %edx
movl 8(%r14), %r8d
movq -72(%rbp), %rdi # 8-byte Reload
movl %r8d, 8(%rdi)
movq (%r14), %rcx
movq %rcx, (%rdi)
leaq vecAddPdS_S_i_wrapper(%rip), %rdi
movq %r13, %r9
pushq %rax
pushq %r10
callq cudaLaunchKernel@PLT
addq $16, %rsp
callq cudaDeviceSynchronize@PLT
addq $88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end0:
.size _Z21__device_stub__vecAddPdS_S_i_host, .Lfunc_end0-_Z21__device_stub__vecAddPdS_S_i_host
.cfi_endproc
# -- End function
.section .rodata.cst4,"aM",@progbits,4
.p2align 2 # -- Begin function main
.LCPI1_0:
.long 0x44800000 # float 1024
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
.LCPI1_1:
.quad 0xbff0000000000000 # double -1
.LCPI1_2:
.quad 0x3eb0c6f7a0b5ed8d # double 9.9999999999999995E-7
.text
.globl main
.p2align 4, 0x90
.type main,@function
main: # @main
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
subq $176, %rsp
movl $0, -124(%rbp)
movl %edi, -120(%rbp)
movq %rsi, -168(%rbp)
movl $100000, -8(%rbp) # imm = 0x186A0
movq $800000, -16(%rbp) # imm = 0xC3500
movl $800000, %edi # imm = 0xC3500
callq malloc@PLT
movq %rax, -80(%rbp)
movq -16(%rbp), %rdi
callq malloc@PLT
movq %rax, -72(%rbp)
movq -16(%rbp), %rdi
callq malloc@PLT
movq %rax, -64(%rbp)
movq -16(%rbp), %rsi
leaq -56(%rbp), %rdi
callq _ZL10cudaMallocIdE9cudaErrorPPT_m
movq -16(%rbp), %rsi
leaq -48(%rbp), %rdi
callq _ZL10cudaMallocIdE9cudaErrorPPT_m
movq -16(%rbp), %rsi
leaq -40(%rbp), %rdi
callq _ZL10cudaMallocIdE9cudaErrorPPT_m
movl $0, -4(%rbp)
.p2align 4, 0x90
.LBB1_1: # =>This Inner Loop Header: Depth=1
movl -4(%rbp), %eax
cmpl -8(%rbp), %eax
jge .LBB1_3
# %bb.2: # in Loop: Header=BB1_1 Depth=1
movl -4(%rbp), %edi
callq _ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
movsd %xmm0, -32(%rbp) # 8-byte Spill
movl -4(%rbp), %edi
callq _ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
mulsd -32(%rbp), %xmm0 # 8-byte Folded Reload
movq -80(%rbp), %rax
movslq -4(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -4(%rbp), %edi
callq _ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
movsd %xmm0, -32(%rbp) # 8-byte Spill
movl -4(%rbp), %edi
callq _ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
mulsd -32(%rbp), %xmm0 # 8-byte Folded Reload
movq -72(%rbp), %rax
movslq -4(%rbp), %rcx
movsd %xmm0, (%rax,%rcx,8)
addl $1, -4(%rbp)
jmp .LBB1_1
.LBB1_3:
movq -56(%rbp), %rdi
movq -80(%rbp), %rsi
movq -16(%rbp), %rdx
movl $1, %ecx
callq cudaMemcpy@PLT
movq -48(%rbp), %rdi
movq -72(%rbp), %rsi
movq -16(%rbp), %rdx
movl $1, %ecx
callq cudaMemcpy@PLT
xorps %xmm0, %xmm0
cvtsi2ssl -8(%rbp), %xmm0
movl $1024, -84(%rbp) # imm = 0x400
divss .LCPI1_0(%rip), %xmm0
callq _ZSt4ceilf
cvttss2si %xmm0, %esi
movl %esi, -116(%rbp)
leaq -112(%rbp), %rdi
movl $1, %edx
movl $1, %ecx
callq _ZN4dim3C2Ejjj
movl -84(%rbp), %esi
leaq -96(%rbp), %rdi
movl $1, %edx
movl $1, %ecx
callq _ZN4dim3C2Ejjj
movq -112(%rbp), %rdi
movq %rdi, -160(%rbp)
movl -104(%rbp), %esi
movl %esi, -152(%rbp)
movq -96(%rbp), %rdx
movq %rdx, -144(%rbp)
movl -88(%rbp), %ecx
movl %ecx, -136(%rbp)
xorl %r8d, %r8d
xorl %r9d, %r9d
callq __cudaPushCallConfiguration@PLT
testl %eax, %eax
jne .LBB1_5
# %bb.4:
movq -56(%rbp), %rdi
movq -48(%rbp), %rsi
movq -40(%rbp), %rdx
movl -8(%rbp), %ecx
callq _Z21__device_stub__vecAddPdS_S_i_host
.LBB1_5:
movq -64(%rbp), %rdi
movq -40(%rbp), %rsi
movq -16(%rbp), %rdx
movl $2, %ecx
callq cudaMemcpy@PLT
movq $0, -24(%rbp)
movl $0, -4(%rbp)
.p2align 4, 0x90
.LBB1_6: # =>This Inner Loop Header: Depth=1
movl -4(%rbp), %eax
cmpl -8(%rbp), %eax
jge .LBB1_8
# %bb.7: # in Loop: Header=BB1_6 Depth=1
movq -64(%rbp), %rax
movslq -4(%rbp), %rcx
movsd -24(%rbp), %xmm0 # xmm0 = mem[0],zero
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, -24(%rbp)
leal 1(%rcx), %eax
movl %eax, -4(%rbp)
jmp .LBB1_6
.LBB1_8:
cvtsi2sdl -8(%rbp), %xmm1
movsd -24(%rbp), %xmm0 # xmm0 = mem[0],zero
divsd %xmm1, %xmm0
movsd %xmm0, -24(%rbp)
addsd .LCPI1_1(%rip), %xmm0
callq _ZSt3absd
movsd .LCPI1_2(%rip), %xmm1 # xmm1 = mem[0],zero
ucomisd %xmm0, %xmm1
jbe .LBB1_10
# %bb.9:
leaq .L.str(%rip), %rdi
jmp .LBB1_11
.LBB1_10:
leaq .L.str.1(%rip), %rdi
.LBB1_11:
xorl %eax, %eax
callq printf@PLT
movq -56(%rbp), %rdi
callq cudaFree@PLT
movq -48(%rbp), %rdi
callq cudaFree@PLT
movq -40(%rbp), %rdi
callq cudaFree@PLT
movq -80(%rbp), %rdi
callq free@PLT
movq -72(%rbp), %rdi
callq free@PLT
movq -64(%rbp), %rdi
callq free@PLT
xorl %eax, %eax
addq $176, %rsp
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end1:
.size main, .Lfunc_end1-main
.cfi_endproc
# -- End function
.p2align 4, 0x90 # -- Begin function _ZL10cudaMallocIdE9cudaErrorPPT_m
.type _ZL10cudaMallocIdE9cudaErrorPPT_m,@function
_ZL10cudaMallocIdE9cudaErrorPPT_m: # @_ZL10cudaMallocIdE9cudaErrorPPT_m
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq %rdi, -16(%rbp)
movq %rsi, -8(%rbp)
callq cudaMalloc@PLT
addq $16, %rsp
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end2:
.size _ZL10cudaMallocIdE9cudaErrorPPT_m, .Lfunc_end2-_ZL10cudaMallocIdE9cudaErrorPPT_m
.cfi_endproc
# -- End function
.section .text._ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,"axG",@progbits,_ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,comdat
.weak _ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_ # -- Begin function _ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.p2align 4, 0x90
.type _ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,@function
_ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_: # @_ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
subq $16, %rsp
movl %edi, -4(%rbp)
cvtsi2sd %edi, %xmm0
callq sin@PLT
addq $16, %rsp
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end3:
.size _ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_, .Lfunc_end3-_ZSt3sinIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.cfi_endproc
# -- End function
.section .text._ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,"axG",@progbits,_ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,comdat
.weak _ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_ # -- Begin function _ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.p2align 4, 0x90
.type _ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,@function
_ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_: # @_ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
subq $16, %rsp
movl %edi, -4(%rbp)
cvtsi2sd %edi, %xmm0
callq cos@PLT
addq $16, %rsp
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end4:
.size _ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_, .Lfunc_end4-_ZSt3cosIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.cfi_endproc
# -- End function
.section .text._ZSt4ceilf,"axG",@progbits,_ZSt4ceilf,comdat
.weak _ZSt4ceilf # -- Begin function _ZSt4ceilf
.p2align 4, 0x90
.type _ZSt4ceilf,@function
_ZSt4ceilf: # @_ZSt4ceilf
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
movss %xmm0, -4(%rbp)
popq %rbp
.cfi_def_cfa %rsp, 8
jmp ceilf@PLT # TAILCALL
.Lfunc_end5:
.size _ZSt4ceilf, .Lfunc_end5-_ZSt4ceilf
.cfi_endproc
# -- End function
.section .text._ZN4dim3C2Ejjj,"axG",@progbits,_ZN4dim3C2Ejjj,comdat
.weak _ZN4dim3C2Ejjj # -- Begin function _ZN4dim3C2Ejjj
.p2align 4, 0x90
.type _ZN4dim3C2Ejjj,@function
_ZN4dim3C2Ejjj: # @_ZN4dim3C2Ejjj
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
movq %rdi, -24(%rbp)
movl %esi, -12(%rbp)
movl %edx, -8(%rbp)
movl %ecx, -4(%rbp)
movl %esi, (%rdi)
movl -8(%rbp), %eax
movl %eax, 4(%rdi)
movl -4(%rbp), %eax
movl %eax, 8(%rdi)
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end6:
.size _ZN4dim3C2Ejjj, .Lfunc_end6-_ZN4dim3C2Ejjj
.cfi_endproc
# -- End function
.section .rodata.cst16,"aM",@progbits,16
.p2align 4 # -- Begin function _ZSt3absd
.LCPI7_0:
.quad 0x7fffffffffffffff # double NaN
.quad 0x7fffffffffffffff # double NaN
.section .text._ZSt3absd,"axG",@progbits,_ZSt3absd,comdat
.weak _ZSt3absd
.p2align 4, 0x90
.type _ZSt3absd,@function
_ZSt3absd: # @_ZSt3absd
.cfi_startproc
# %bb.0:
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset %rbp, -16
movq %rsp, %rbp
.cfi_def_cfa_register %rbp
movsd %xmm0, -8(%rbp)
andps .LCPI7_0(%rip), %xmm0
popq %rbp
.cfi_def_cfa %rsp, 8
retq
.Lfunc_end7:
.size _ZSt3absd, .Lfunc_end7-_ZSt3absd
.cfi_endproc
# -- End function
.type .L.str,@object # @.str
.section .rodata.str1.1,"aMS",@progbits,1
.L.str:
.asciz "PASS\n"
.size .L.str, 6
.type .L.str.1,@object # @.str.1
.L.str.1:
.asciz "FAIL\n"
.size .L.str.1, 6
.type .L__unnamed_1,@object # @0
.L__unnamed_1:
.asciz "_Z6vecAddPdS_S_i"
.size .L__unnamed_1, 17
.type .L__unnamed_2,@object # @1
.section .nv_fatbin,"a",@progbits
.p2align 3
.L__unnamed_2:
.asciz "P\355U\272\001\000\020\000\330\024\000\000\000\000\000\000\002\000\001\001@\000\000\000@\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\001\0002\000\000\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\177ELF\002\001\0013\007\000\000\000\000\000\000\000\002\000\276\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\300\016\000\000\000\000\000\0002\0052\000@\000\000\000\000\000@\000\n\000\001\000\000.shstrtab\000.strtab\000.symtab\000.symtab_shndx\000.nv.info\000.text._Z6vecAddPdS_S_i\000.nv.info._Z6vecAddPdS_S_i\000.nv.shared._Z6vecAddPdS_S_i\000.nv.global\000.nv.constant0._Z6vecAddPdS_S_i\000.nv.rel.action\000\000.shstrtab\000.strtab\000.symtab\000.symtab_shndx\000.nv.info\000_Z6vecAddPdS_S_i\000.text._Z6vecAddPdS_S_i\000.nv.info._Z6vecAddPdS_S_i\000.nv.shared._Z6vecAddPdS_S_i\000.nv.global\000blockIdx\000blockDim\000threadIdx\000.nv.constant0._Z6vecAddPdS_S_i\000_param\000.nv.rel.action\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\000\000\000\003\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\000\000\000\003\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\001\000\t\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\244\000\000\000\001\000\t\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\255\000\000\000\001\000\t\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\267\000\000\000\003\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\335\000\000\000\003\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000\000\022\020\b\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\004/\b\000\b\000\000\000\r\000\000\000\004#\b\000\b\000\000\000\000\000\000\000\004\022\b\000\b\000\000\000 \000\000\000\004\021\b\000\b\000\000\000 \000\000\000\0047\004\000u\000\000\000\0010\000\000\001*\000\000\004\n\b\000\006\000\000\000@\001\034\000\003\031\034\000\004\027\f\000\000\000\000\000\003\000\030\000\000\360\021\000\004\027\f\000\000\000\000\000\002\000\020\000\000\360!\000\004\027\f\000\000\000\000\000\001\000\b\000\000\360!\000\004\027\f\000\000\000\000\000\000\000\000\000\000\360!\000\003\033\377\000\004\035\004\000\350\003\000\000\004\034\004\000\270\b\000\000\004\036\004\000 \000\000\000\000\000\000\000K\000\000\000\000\000\000\000\000\002\002\b\020\n/\"\000\000\000\b\000\000\000\000\000\000\b\b\000\000\000\000\000\000\020\b\000\000\000\000\000\000\030\b\000\000\000\000\000\000 \b\000\000\000\000\000\000(\b\000\000\000\000\000\0000\b\000\000\000\000\000\0008\b\000\000\000\000\001\000\000\b\000\000\000\000\001\000\b\b\000\000\000\000\001\000\020\b\000\000\000\000\001\000\030\b\000\000\000\000\001\000 \b\000\000\000\000\001\000(\b\000\000\000\000\001\0000\b\000\000\000\000\001\0008\b\000\000\000\000\002\000\000\b\000\000\000\000\002\000\b\b\000\000\000\000\002\000\020\b\000\000\000\000\002\000\030\b\000\000\000\000\002\000 \b\000\000\000\000\002\000(\b\000\000\000\000\002\0000\b\000\000\000\000\002\0008\b\000\000\000\000\000\000\000\024,\000\000\000\t\000\000\f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\357\037\340\375\003<d\000\001\000\207\000\200\007\230L\001\001\007\376\377\377\017\034\000\000w\003\000\000\310\360\357\037\340\375\003\274\177\000\007\001\007\000\200\003l[\017\000\200\000\000\000@\342\300\000\020\000\000\000\240\343\357\037\340!\003\274\177\000\000\001\367\017\000\000\020\\\000\n\007\000\000\000\340\\\002\000\007\000\200\007\230\\\357\037\340\375\003\274\177\000\003\000\367\017\200\007\230\\\000\000'\000\200\007\230\\\004\0007\000\200\007\230\\\357\037\340\375\003\274\177\000\003\000\007\000\200\007\230\\\004\000G\000\200\007\230\\\002\000\027\000\200\007\230L\357\037\340\375\003\274\177\000\000\000\367\017\200\007\230\\\002\003'\000\000\002G\\\000\004\007\000\000\002G\\\357\037\340!\003\274\177\000\003\360\207\025\000\000\000\001\003\003\007\000\000\000\224\357\003\0007\000\200\007\230\\\357\037\340!\003\274\177\000\004\360\007\025\000\000\000\001\004\004\007\000\000\000\225\357\n\000G\000\200\007\230\\\357\037\340\375\003\274\177\000\013\000W\000\200\007\230\\\n\000\247\000\200\007\230\\\013\000\267\000\200\007\230\\\357\037\340!\003\274\177\000\004\360\207\024\000\000\000\001\004\004\007\000\000\000\225\357\006\000G\000\200\007\230\\\357\037\340\375\003\274\177\000\007\000W\000\200\007\230\\\006\000g\000\200\007\230\\\007\000w\000\200\007\230\\\357\037\340!\003\274\177\000\004\360\007\024\000\000\000\001\004\004\007\000\000\000\225\357\b\000G\000\200\007\230\\\357\037\340\375\003\274\177\000\t\000W\000\200\007\230\\\b\000\207\000\200\007\230\\\t\000\227\000\200\007\230\\\357\037\340\375\003\274\177\000\004\000\247\000\200\007\230\\\005\000\267\000\200\007\230\\\004\000G\000\200\007\230\\\357\037\340\375\003\274\177\000\005\000W\000\200\007\230\\\004\000G\000\200\007\230\\\005\000W\000\200\007\230\\\357\037\340\375\003\274\177\000\006\000g\000\200\007\230\\\007\000w\000\200\007\230\\\006\000g\000\200\007\230\\\357\037\340\375\003\274\177\000\007\000w\000\200\007\230\\\006\000g\000\200\007\230\\\007\000w\000\200\007\230\\\357\037\340\375\003\274\177\000\b\000\207\000\200\007\230\\\t\000\227\000\200\007\230\\\b\000\207\000\200\007\230\\\357\037\340\375\003\274\177\000\t\000\227\000\200\007\230\\\b\000\207\000\200\007\230\\\t\000\227\000\200\007\230\\\357\037\340\375\003\274\177\000\013\002\367\017\000\200\020\\\f\000\367\017\000\b\020\\\013\000\267\000\200\007\230\\\357\037\340\375\003\274\177\000\f\000\307\000\200\007\230\\\n\013\367\017\000\200\327[\013\013\367\017@\006\330[\357\037\340\375\003\274g\000\n\000\247\000\200\007\230\\\013\000\267\000\200\007\230\\\b\n\007\000\000\000\260\240\357\037\340\375\003\274\177\000\t\002\207\000\000\000\020\034\n\000\367\017\000\b\020\\\t\000\227\000\200\007\230\\\357\037\340\375\003\274\177\000\n\000\247\000\200\007\230\\\b\t\367\017\000\200\327[\t\t\367\017@\005\330[\357\037\340\375\003\274g\000\b\000\207\000\200\007\230\\\t\000\227\000\200\007\230\\\006\b\007\000\000\000\260\240\357\037\340\375\003\274\177\000\007\002\007\001\000\000\020\034\b\000\367\017\000\b\020\\\007\000w\000\200\007\230\\\357\037\340\375\003\274\177\000\b\000\207\000\200\007\230\\\006\007\367\017\000\200\327[\007\007\367\017@\004\330[\357\037\340\375\003\274g\000\006\000g\000\200\007\230\\\007\000w\000\200\007\230\\\004\006\007\000\000\000\260\240\357\037\340\375\003\274\177\000\005\002\207\001\000\000\020\034\006\000\367\017\000\b\020\\\005\000W\000\200\007\230\\\357\037\340\375\003\274\177\000\006\000g\000\200\007\230\\\004\005\367\017\000\200\327[\005\005\367\017@\003\330[\357\037\340\375\003\274g\000\004\000G\000\200\007\230\\\005\000W\000\200\007\230\\\003\004\007\000\000\000\220\240\017\031\340\375\003\274\177\000\003\000W\002\000\000\310\360\003\0007\000\200\007\230\\\004\000'\000\200\007\230L\017\031\340!\003\274\177\000\003\003G\000\000\0038\\\004\000\027\002\000\000\310\360\004\000G\000\200\007\230\\\357\037\340\375\003\274\177\000\003\003G\000\000\000\020\\\005\002\307\001\000\000\020\034\006\000\367\017\000\b\020\\\357\037\340\375\003\274\177\000\005\000W\000\200\007\230\\\006\000g\000\200\007\230\\\004\005\367\017\000\200\327[\357\037\340\375\003\274\177\000\005\005\367\017@\003\330[\004\000G\000\200\007\230\\\005\000W\000\200\007\230\\\357\031\340\375\003\274\177\000\003\004\007\000\000\000\220\240\005\002\307\001\000\000\020\034\003\000\367\017\000\b\020\\\357\037\340\375\003\274\177\000\005\000W\000\200\007\230\\\003\0007\000\200\007\230\\\004\005\367\017\000\200\327[\357\037\340\375\003\274\177\000\005\005\367\017\300\001\330[\004\000G\000\200\007\230\\\005\000W\000\200\007\230\\\017\031\340\375\003\274\177\000\003\004\007\000\000\000\220\200\005\002\207\001\000\000\020\034\006\000\367\017\000\b\020\\\357\037\340\375\003\274\177\000\005\000W\000\200\007\230\\\006\000g\000\200\007\230\\\004\005\367\017\000\200\327[\357\037\340\375\003\274\177\000\005\005\367\017@\003\330[\004\000G\000\200\007\230\\\005\000W\000\200\007\230\\\017\031\340\375\003\274\177\000\004\004\007\000\000\000\220\200\007\003G\000\200\003m[\002\000'\000\200\007\230\\\357\037\340\375\003\274\177\000\000\000\007\000\200\007\230\\\017\000\0004\000\000@\342\017\000\007\000\000\000@\342\357\037\340\375\003\274\177\000\005\002\367\017\000\200\020\\\003\000\367\017\000\b\020\\\005\000W\000\200\007\230\\\357\037\340\375\003\274\177\000\003\0007\000\200\007\230\\\004\005\367\017\000\200\327[\005\005\367\017\300\001\330[\357\037\340\375\003<d\000\004\000G\000\200\007\230\\\005\000W\000\200\007\230\\\004\004\007\000\000\000\260\200\357\037\340\375\003\274\177\000\007\000G\000\200\007\230\\\b\000W\000\200\007\230\\\005\002\307\001\000\000\020\034\357\037\340\375\003\274\177\000\003\000\367\017\000\b\020\\\005\000W\000\200\007\230\\\003\0007\000\200\007\230\\\357\037\340\375\003\274\177\000\004\005\367\017\000\200\327[\005\005\367\017\300\001\330[\004\000G\000\200\007\230\\\357\037\340!\003<d\000\005\000W\000\200\007\230\\\004\004\007\000\000\000\220\200\004:G\000\000\000\340\\\357\037\340\375\003\274\177\000\003\004\367\001\000\000)8\004\000G\000\200\007\230\\\003\0007\000\200\007\230\\\357\037\340\375\003\274\177\000\003\0047\000\300\001\3706\006\0047\000\000\000H8\005\007g\000\000\200\020\\\357\037\340\375\003\274\177\000\007\b7\000\000\b\020\\\005\000W\000\200\007\230\\\007\000w\000\200\007\230\\\357\037\340\375\003\274\177\000\004\005\367\017\000\200\327[\005\005\367\017\300\003\330[\004\000G\000\200\007\230\\\357\037\340!\003\274\177\000\005\000W\000\200\007\230\\\004\004\007\000\000\000\260\200\t\002\207\000\000\000\020\034\357\037\340\375\003\274\177\000\007\000\367\017\000\b\020\\\t\000\227\000\200\007\230\\\007\000w\000\200\007\230\\\357\037\340\375\003\274\177\000\b\t\367\017\000\200\327[\t\t\367\017\300\003\330[\b\000\207\000\200\007\230\\\357\037\340!\003\274\177\000\t\000\227\000\200\007\230\\\b\b\007\000\000\000\260\200\007\000\207\000\200\007\230\\\357\037\340\375\003\274\177\000\b\000\227\000\200\007\230\\\t\007g\000\000\200\020\\\007\b7\000\000\b\020\\\357\037\340\375\003\274\177\000\t\000\227\000\200\007\230\\\007\000w\000\200\007\230\\\b\t\367\017\000\200\327[\357\037\340\375\003\274\177\000\t\t\367\017\300\003\330[\b\000\207\000\200\007\230\\\t\000\227\000\200\007\230\\\017\031\340!\003\274\177\000\b\b\007\000\000\000\260\200\004\004\207\000\000\000p\\\t\002\007\001\000\000\020\034\357\037\340\375\003\274\177\000\000\000\367\017\000\b\020\\\t\000\227\000\200\007\230\\\000\000\007\000\200\007\230\\\357\037\340\375\003\274\177\000\b\t\367\017\000\200\327[\t\t\367\017@\000\330[\b\000\207\000\200\007\230\\\357\037\340!\003\274\177\000\t\000\227\000\200\007\230\\\b\b\007\000\000\000\260\200\000\000\207\000\200\007\230\\\357\037\340\375\003\274\177\000\b\000\227\000\200\007\230\\\006\000g\000\000\200\020\\\000\b7\000\000\b\020\\\357\037\340\375\003\274\177\000\003\000g\000\200\007\230\\\000\000\007\000\200\007\230\\\002\003\367\017\000\200\327[\357\037\340\375\003\274\177\000\003\003\367\017@\000\330[\002\000'\000\200\007\230\\\003\0007\000\200\007\230\\\357\031\340\375\003\274\177\000\004\002\007\000\000\000\260\240\017\000\007\000\000\000@\342\017\000\007\000\000\000\000\343\377\007\000\374\000\200\037\000\017\000\007\377\377\017@\342\000\017\007\000\000\000\260P\000\017\007\000\000\000\260P\340\007\000\374\000\200\037\000\000\017\007\000\000\000\260P\000\017\007\000\000\000\260P\000\017\007\000\000\000\260P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\270\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\370\000\000\000\000\000\000\000\354\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\350\001\000\000\000\000\000\000\330\000\000\000\000\000\000\000\002\000\000\000\b\000\000\000\b\000\000\000\000\000\000\000\030\000\000\000\000\000\000\000)\000\000\000\000\000\000p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\300\002\000\000\000\000\000\0000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\000\000\000\000\000\000p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\360\002\000\000\000\000\000\000|\000\000\000\000\000\000\000\003\000\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\251\000\000\000\013\000\000p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\003\000\000\000\000\000\000\340\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\212\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\004\000\000\000\000\000\000\\\001\000\000\000\000\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000\000\001\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\300\005\000\000\000\000\000\000\000\t\000\000\000\000\000\000\003\000\000\000\b\000\000\r \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\b\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\300\016\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\001H\000\000\000\020\003\000\000\000\000\000\000\r\003\000\000@\000\000\000\005\000\007\0002\000\000\000\000\000\000\000\000\000\000\000\021 \000\000\000\000\000\000\000\000\000\000\000\000\000\000+\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\360 \n\n\n\n.version 7.5\n.target sm_50\n.address_size 64.\000\377\021global .align 1 .b8 blockIdx[1];\"\000\b?Dim\"\000\007dthreadE\000\375\037\n.visible .entry _Z6vecAddPdS_S_i(\n.param .u64\036\000\021_\034\000?_0,&\000\021\0371&\000\022\0272&\000/32&\000\005\2463\n)\n{\n.loc\340\000\0218\340\000!__\025\000\240_depot0[32\t\001\313reg .b64 %SP\017\000\024L\020\000\245pred %p<2>\"\000\21132 %r<9>3\000Urd<18\023\000\020f\023\000\323fd<4>;\n\nmov.uW\000\033,\212\000b;\ncvta\262\000\004%\000\023,\201\000\"ld\363\000\001\362\000o%r1, [\370\000\005\030].\000\002\217\000\0373/\000\007\0372/\000\000\0372/\000\007\0371/\000\000\017\215\000\b#0]\325\000#tok\002\0045\000 4,\006\000\0233\037\000\n\034\000\0215\034\000\0374;\000\005\0216\037\000\0372;\000\002\0217\034\000\0376;\000\005\0218\037\000\0371;\000\002\0219\034\000Q8;\nst\023\000q[%SP+0]\026\000\0329\026\000\0228\026\000\0327\026\000\"16\027\000\0225\027\000\"32\027\000!24\027\000\"1;\375\001\001\300\001\2702, %ctaid.x\027\000c3, %nt\026\000qul.lo.s\031\000#4,5\000(r30\000\000)\001\003/\0003add,\000$6,1\000\f\211\000\002\267\000\0216\302\001\002A\000%7,\033\000\007\026\000%8,\272\000\222;\nsetp.ge]\0002p1,6\000\362\016%r8;\n@%p1 bra LBB0_2;\nbra.uni\020\00021;\n\b\000\021:Z\000\002e\001410,Y\001\001q\000\002\263\0008d11\211\0004shlI\003412, \000\0233\345\000\003\031\000$3,P\000\000\007\000\0212N\000\003k\003\001M\000\000#\000(];{\000$4,\276\001\nJ\000$5,\037\000\rJ\000\0232J\000\02353\000$rn\032\000\000\177\000\001j\000\000&\000\tg\000%6,\017\002\nh\000$7, \000\003h\000!stN\000\001b\000!7]K\000\0333E\001\0232E\001\3002:\nret;\n\n}\n\000\000\000\000"
.size .L__unnamed_2, 5353
.type __cuda_fatbin_wrapper,@object # @__cuda_fatbin_wrapper
.section .nvFatBinSegment,"aw",@progbits
.p2align 3
__cuda_fatbin_wrapper:
.long 1180844977 # 0x466243b1
.long 1 # 0x1
.quad .L__unnamed_2
.quad 0
.size __cuda_fatbin_wrapper, 24
.type __cuda_gpubin_handle,@object # @__cuda_gpubin_handle
.local __cuda_gpubin_handle
.comm __cuda_gpubin_handle,8,8
.ident "Ubuntu clang version 14.0.0-1ubuntu1.1"
.section ".note.GNU-stack","",@progbits