| // |
| // Generated by LLVM NVPTX Back-End |
| // |
| |
| .version 6.1 |
| .target sm_35 |
| .address_size 64 |
| |
| // .globl cudaMalloc |
| .global .align 1 .b8 blockIdx[1]; |
| .global .align 1 .b8 blockDim[1]; |
| .global .align 1 .b8 threadIdx[1]; |
| |
| .visible .func (.param .b32 func_retval0) cudaMalloc( |
| .param .b64 cudaMalloc_param_0, |
| .param .b64 cudaMalloc_param_1 |
| ) |
| { |
| .local .align 8 .b8 __local_depot0[16]; |
| .reg .b64 %SP; |
| .reg .b64 %SPL; |
| .reg .b32 %r<2>; |
| .reg .b64 %rd<3>; |
| |
| mov.u64 %SPL, __local_depot0; |
| cvta.local.u64 %SP, %SPL; |
| ld.param.u64 %rd2, [cudaMalloc_param_1]; |
| ld.param.u64 %rd1, [cudaMalloc_param_0]; |
| st.u64 [%SP+0], %rd1; |
| st.u64 [%SP+8], %rd2; |
| mov.u32 %r1, 30; |
| st.param.b32 [func_retval0+0], %r1; |
| ret; |
| } |
| |
| // .globl cudaFuncGetAttributes |
| .visible .func (.param .b32 func_retval0) cudaFuncGetAttributes( |
| .param .b64 cudaFuncGetAttributes_param_0, |
| .param .b64 cudaFuncGetAttributes_param_1 |
| ) |
| { |
| .local .align 8 .b8 __local_depot1[16]; |
| .reg .b64 %SP; |
| .reg .b64 %SPL; |
| .reg .b32 %r<2>; |
| .reg .b64 %rd<3>; |
| |
| mov.u64 %SPL, __local_depot1; |
| cvta.local.u64 %SP, %SPL; |
| ld.param.u64 %rd2, [cudaFuncGetAttributes_param_1]; |
| ld.param.u64 %rd1, [cudaFuncGetAttributes_param_0]; |
| st.u64 [%SP+0], %rd1; |
| st.u64 [%SP+8], %rd2; |
| mov.u32 %r1, 30; |
| st.param.b32 [func_retval0+0], %r1; |
| ret; |
| } |
| |
| // .globl cudaDeviceGetAttribute |
| .visible .func (.param .b32 func_retval0) cudaDeviceGetAttribute( |
| .param .b64 cudaDeviceGetAttribute_param_0, |
| .param .b32 cudaDeviceGetAttribute_param_1, |
| .param .b32 cudaDeviceGetAttribute_param_2 |
| ) |
| { |
| .local .align 8 .b8 __local_depot2[16]; |
| .reg .b64 %SP; |
| .reg .b64 %SPL; |
| .reg .b32 %r<4>; |
| .reg .b64 %rd<2>; |
| |
| mov.u64 %SPL, __local_depot2; |
| cvta.local.u64 %SP, %SPL; |
| ld.param.u32 %r2, [cudaDeviceGetAttribute_param_2]; |
| ld.param.u32 %r1, [cudaDeviceGetAttribute_param_1]; |
| ld.param.u64 %rd1, [cudaDeviceGetAttribute_param_0]; |
| st.u64 [%SP+0], %rd1; |
| st.u32 [%SP+8], %r1; |
| st.u32 [%SP+12], %r2; |
| mov.u32 %r3, 30; |
| st.param.b32 [func_retval0+0], %r3; |
| ret; |
| } |
| |
| // .globl cudaGetDevice |
| .visible .func (.param .b32 func_retval0) cudaGetDevice( |
| .param .b64 cudaGetDevice_param_0 |
| ) |
| { |
| .local .align 8 .b8 __local_depot3[8]; |
| .reg .b64 %SP; |
| .reg .b64 %SPL; |
| .reg .b32 %r<2>; |
| .reg .b64 %rd<2>; |
| |
| mov.u64 %SPL, __local_depot3; |
| cvta.local.u64 %SP, %SPL; |
| ld.param.u64 %rd1, [cudaGetDevice_param_0]; |
| st.u64 [%SP+0], %rd1; |
| mov.u32 %r1, 30; |
| st.param.b32 [func_retval0+0], %r1; |
| ret; |
| } |
| |
| // .globl cudaOccupancyMaxActiveBlocksPerMultiprocessor |
| .visible .func (.param .b32 func_retval0) cudaOccupancyMaxActiveBlocksPerMultiprocessor( |
| .param .b64 cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_0, |
| .param .b64 cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_1, |
| .param .b32 cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_2, |
| .param .b64 cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_3 |
| ) |
| { |
| .local .align 8 .b8 __local_depot4[32]; |
| .reg .b64 %SP; |
| .reg .b64 %SPL; |
| .reg .b32 %r<3>; |
| .reg .b64 %rd<4>; |
| |
| mov.u64 %SPL, __local_depot4; |
| cvta.local.u64 %SP, %SPL; |
| ld.param.u64 %rd3, [cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_3]; |
| ld.param.u32 %r1, [cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_2]; |
| ld.param.u64 %rd2, [cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_1]; |
| ld.param.u64 %rd1, [cudaOccupancyMaxActiveBlocksPerMultiprocessor_param_0]; |
| st.u64 [%SP+0], %rd1; |
| st.u64 [%SP+8], %rd2; |
| st.u32 [%SP+16], %r1; |
| st.u64 [%SP+24], %rd3; |
| mov.u32 %r2, 30; |
| st.param.b32 [func_retval0+0], %r2; |
| ret; |
| } |
| |
| // .globl cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags |
| .visible .func (.param .b32 func_retval0) cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags( |
| .param .b64 cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_0, |
| .param .b64 cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_1, |
| .param .b32 cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_2, |
| .param .b64 cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_3, |
| .param .b32 cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_4 |
| ) |
| { |
| .local .align 8 .b8 __local_depot5[40]; |
| .reg .b64 %SP; |
| .reg .b64 %SPL; |
| .reg .b32 %r<4>; |
| .reg .b64 %rd<4>; |
| |
| mov.u64 %SPL, __local_depot5; |
| cvta.local.u64 %SP, %SPL; |
| ld.param.u32 %r2, [cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_4]; |
| ld.param.u64 %rd3, [cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_3]; |
| ld.param.u32 %r1, [cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_2]; |
| ld.param.u64 %rd2, [cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_1]; |
| ld.param.u64 %rd1, [cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags_param_0]; |
| st.u64 [%SP+0], %rd1; |
| st.u64 [%SP+8], %rd2; |
| st.u32 [%SP+16], %r1; |
| st.u64 [%SP+24], %rd3; |
| st.u32 [%SP+32], %r2; |
| mov.u32 %r3, 30; |
| st.param.b32 [func_retval0+0], %r3; |
| ret; |
| } |
| |
| // .globl _Z6vecAddPfS_S_i |
| .visible .entry _Z6vecAddPfS_S_i( |
| .param .u64 _Z6vecAddPfS_S_i_param_0, |
| .param .u64 _Z6vecAddPfS_S_i_param_1, |
| .param .u64 _Z6vecAddPfS_S_i_param_2, |
| .param .u32 _Z6vecAddPfS_S_i_param_3 |
| ) |
| { |
| .local .align 8 .b8 __local_depot6[32]; |
| .reg .b64 %SP; |
| .reg .b64 %SPL; |
| .reg .pred %p<2>; |
| .reg .f32 %f<4>; |
| .reg .b32 %r<9>; |
| .reg .b64 %rd<18>; |
| |
| mov.u64 %SPL, __local_depot6; |
| cvta.local.u64 %SP, %SPL; |
| ld.param.u32 %r1, [_Z6vecAddPfS_S_i_param_3]; |
| ld.param.u64 %rd3, [_Z6vecAddPfS_S_i_param_2]; |
| ld.param.u64 %rd2, [_Z6vecAddPfS_S_i_param_1]; |
| ld.param.u64 %rd1, [_Z6vecAddPfS_S_i_param_0]; |
| cvta.to.global.u64 %rd4, %rd3; |
| cvta.global.u64 %rd5, %rd4; |
| cvta.to.global.u64 %rd6, %rd2; |
| cvta.global.u64 %rd7, %rd6; |
| cvta.to.global.u64 %rd8, %rd1; |
| cvta.global.u64 %rd9, %rd8; |
| st.u64 [%SP+0], %rd9; |
| st.u64 [%SP+8], %rd7; |
| st.u64 [%SP+16], %rd5; |
| st.u32 [%SP+24], %r1; |
| mov.u32 %r2, %ctaid.x; |
| mov.u32 %r3, %ntid.x; |
| mul.lo.s32 %r4, %r2, %r3; |
| mov.u32 %r5, %tid.x; |
| add.s32 %r6, %r4, %r5; |
| st.u32 [%SP+28], %r6; |
| ld.u32 %r7, [%SP+28]; |
| ld.u32 %r8, [%SP+24]; |
| setp.ge.s32 %p1, %r7, %r8; |
| @%p1 bra LBB6_2; |
| bra.uni LBB6_1; |
| LBB6_1: |
| ld.u64 %rd10, [%SP+0]; |
| ld.s32 %rd11, [%SP+28]; |
| shl.b64 %rd12, %rd11, 2; |
| add.s64 %rd13, %rd10, %rd12; |
| ld.f32 %f1, [%rd13]; |
| ld.u64 %rd14, [%SP+8]; |
| add.s64 %rd15, %rd14, %rd12; |
| ld.f32 %f2, [%rd15]; |
| add.rn.f32 %f3, %f1, %f2; |
| ld.u64 %rd16, [%SP+16]; |
| add.s64 %rd17, %rd16, %rd12; |
| st.f32 [%rd17], %f3; |
| bra.uni LBB6_2; |
| LBB6_2: |
| ret; |
| } |