Files
lammps/lib/gpu/coul_long_gpu_kernel.ptx

1032 lines
30 KiB
Plaintext

.version 2.3
.target sm_20
.address_size 64
// compiled with /usr/local/cuda/open64/lib//be
// nvopencc 4.0 built on 2011-05-12
//-----------------------------------------------------------
// Compiling /tmp/tmpxft_0000bf4b_00000000-9_coul_long_gpu_kernel.cpp3.i (/home/sjplimp/ccBI#.qJTqsI)
//-----------------------------------------------------------
//-----------------------------------------------------------
// Options:
//-----------------------------------------------------------
// Target:ptx, ISA:sm_20, Endian:little, Pointer Size:64
// -O3 (Optimization level)
// -g0 (Debug level)
// -m2 (Report advisories)
//-----------------------------------------------------------
.file 1 "<command-line>"
.file 2 "/tmp/tmpxft_0000bf4b_00000000-8_coul_long_gpu_kernel.cudafe2.gpu"
.file 3 "/usr/lib/gcc/x86_64-redhat-linux/4.4.5/include/stddef.h"
.file 4 "/usr/local/cuda/include/crt/device_runtime.h"
.file 5 "/usr/local/cuda/include/host_defines.h"
.file 6 "/usr/local/cuda/include/builtin_types.h"
.file 7 "/usr/local/cuda/include/device_types.h"
.file 8 "/usr/local/cuda/include/driver_types.h"
.file 9 "/usr/local/cuda/include/surface_types.h"
.file 10 "/usr/local/cuda/include/texture_types.h"
.file 11 "/usr/local/cuda/include/vector_types.h"
.file 12 "/usr/local/cuda/include/device_launch_parameters.h"
.file 13 "/usr/local/cuda/include/crt/storage_class.h"
.file 14 "/usr/include/bits/types.h"
.file 15 "/usr/include/time.h"
.file 16 "coul_long_gpu_kernel.cu"
.file 17 "/usr/local/cuda/include/common_functions.h"
.file 18 "/usr/local/cuda/include/math_functions.h"
.file 19 "/usr/local/cuda/include/math_constants.h"
.file 20 "/usr/local/cuda/include/device_functions.h"
.file 21 "/usr/local/cuda/include/sm_11_atomic_functions.h"
.file 22 "/usr/local/cuda/include/sm_12_atomic_functions.h"
.file 23 "/usr/local/cuda/include/sm_13_double_functions.h"
.file 24 "/usr/local/cuda/include/sm_20_atomic_functions.h"
.file 25 "/usr/local/cuda/include/sm_20_intrinsics.h"
.file 26 "/usr/local/cuda/include/surface_functions.h"
.file 27 "/usr/local/cuda/include/texture_fetch_functions.h"
.file 28 "/usr/local/cuda/include/math_functions_dbl_ptx3.h"
.global .texref pos_tex;
.global .texref q_tex;
.entry kernel_pair (
.param .u64 __cudaparm_kernel_pair_x_,
.param .u64 __cudaparm_kernel_pair_lj1,
.param .u64 __cudaparm_kernel_pair_lj3,
.param .s32 __cudaparm_kernel_pair_lj_types,
.param .u64 __cudaparm_kernel_pair_sp_cl_in,
.param .u64 __cudaparm_kernel_pair_dev_nbor,
.param .u64 __cudaparm_kernel_pair_dev_packed,
.param .u64 __cudaparm_kernel_pair_ans,
.param .u64 __cudaparm_kernel_pair_engv,
.param .s32 __cudaparm_kernel_pair_eflag,
.param .s32 __cudaparm_kernel_pair_vflag,
.param .s32 __cudaparm_kernel_pair_inum,
.param .s32 __cudaparm_kernel_pair_nbor_pitch,
.param .u64 __cudaparm_kernel_pair_q_,
.param .f32 __cudaparm_kernel_pair_cut_coulsq,
.param .f32 __cudaparm_kernel_pair_qqrd2e,
.param .f32 __cudaparm_kernel_pair_g_ewald,
.param .s32 __cudaparm_kernel_pair_t_per_atom)
{
.reg .u32 %r<81>;
.reg .u64 %rd<57>;
.reg .f32 %f<132>;
.reg .pred %p<19>;
.shared .align 16 .b8 __cuda___cuda_local_var_32498_33_non_const_sp_cl112[16];
.shared .align 4 .b8 __cuda___cuda_local_var_32585_35_non_const_red_acc128[3072];
// __cuda_local_var_32505_10_non_const_f = 48
// __cuda_local_var_32509_9_non_const_virial = 16
.loc 16 108 0
$LDWbegin_kernel_pair:
.loc 16 115 0
ld.param.u64 %rd1, [__cudaparm_kernel_pair_sp_cl_in];
ldu.global.f32 %f1, [%rd1+0];
.loc 16 116 0
ld.global.f32 %f2, [%rd1+4];
.loc 16 117 0
ld.global.f32 %f3, [%rd1+8];
.loc 16 118 0
ld.global.f32 %f4, [%rd1+12];
st.shared.v4.f32 [__cuda___cuda_local_var_32498_33_non_const_sp_cl112+0], {%f1,%f2,%f3,%f4};
.loc 16 127 0
mov.f32 %f5, 0f00000000; // 0
mov.f32 %f6, %f5;
mov.f32 %f7, 0f00000000; // 0
mov.f32 %f8, %f7;
mov.f32 %f9, 0f00000000; // 0
mov.f32 %f10, %f9;
mov.f32 %f11, 0f00000000; // 0
mov.f32 %f12, %f11;
mov.f32 %f13, 0f00000000; // 0
mov.f32 %f14, %f13;
mov.f32 %f15, 0f00000000; // 0
mov.f32 %f16, %f15;
ld.param.s32 %r1, [__cudaparm_kernel_pair_t_per_atom];
cvt.s32.u32 %r2, %tid.x;
div.s32 %r3, %r2, %r1;
cvt.s32.u32 %r4, %ntid.x;
div.s32 %r5, %r4, %r1;
rem.s32 %r6, %r2, %r1;
cvt.s32.u32 %r7, %ctaid.x;
mul.lo.s32 %r8, %r7, %r5;
add.s32 %r9, %r3, %r8;
ld.param.s32 %r10, [__cudaparm_kernel_pair_inum];
setp.lt.s32 %p1, %r9, %r10;
@!%p1 bra $Lt_0_19202;
.loc 16 131 0
cvt.s64.s32 %rd2, %r9;
mul.wide.s32 %rd3, %r9, 4;
ld.param.u64 %rd4, [__cudaparm_kernel_pair_dev_nbor];
add.u64 %rd5, %rd3, %rd4;
ld.global.s32 %r11, [%rd5+0];
.loc 16 133 0
ld.param.s32 %r12, [__cudaparm_kernel_pair_nbor_pitch];
cvt.s64.s32 %rd6, %r12;
mul.wide.s32 %rd7, %r12, 4;
add.u64 %rd8, %rd7, %rd5;
ld.global.s32 %r13, [%rd8+0];
add.u64 %rd9, %rd7, %rd8;
ld.param.u64 %rd10, [__cudaparm_kernel_pair_dev_packed];
setp.ne.u64 %p2, %rd10, %rd4;
@%p2 bra $Lt_0_19714;
.loc 16 139 0
cvt.s32.s64 %r14, %rd6;
mul.lo.s32 %r15, %r14, %r13;
cvt.s64.s32 %rd11, %r15;
mul.wide.s32 %rd12, %r15, 4;
add.u64 %rd13, %rd9, %rd12;
.loc 16 140 0
mul.lo.s32 %r16, %r6, %r14;
cvt.s64.s32 %rd14, %r16;
mul.wide.s32 %rd15, %r16, 4;
add.u64 %rd16, %rd9, %rd15;
.loc 16 141 0
mul.lo.s32 %r17, %r14, %r1;
bra.uni $Lt_0_19458;
$Lt_0_19714:
.loc 16 143 0
ld.global.s32 %r18, [%rd9+0];
cvt.s64.s32 %rd17, %r18;
mul.wide.s32 %rd18, %r18, 4;
add.u64 %rd19, %rd10, %rd18;
.loc 16 144 0
cvt.s64.s32 %rd20, %r13;
mul.wide.s32 %rd21, %r13, 4;
add.u64 %rd13, %rd19, %rd21;
.loc 16 145 0
mov.s32 %r17, %r1;
.loc 16 146 0
cvt.s64.s32 %rd22, %r6;
mul.wide.s32 %rd23, %r6, 4;
add.u64 %rd16, %rd19, %rd23;
$Lt_0_19458:
.loc 16 149 0
mov.u32 %r19, %r11;
mov.s32 %r20, 0;
mov.u32 %r21, %r20;
mov.s32 %r22, 0;
mov.u32 %r23, %r22;
mov.s32 %r24, 0;
mov.u32 %r25, %r24;
tex.1d.v4.f32.s32 {%f17,%f18,%f19,%f20},[pos_tex,{%r19,%r21,%r23,%r25}];
mov.f32 %f21, %f17;
mov.f32 %f22, %f18;
mov.f32 %f23, %f19;
.loc 16 150 0
mov.u32 %r26, %r11;
mov.s32 %r27, 0;
mov.u32 %r28, %r27;
mov.s32 %r29, 0;
mov.u32 %r30, %r29;
mov.s32 %r31, 0;
mov.u32 %r32, %r31;
tex.1d.v4.f32.s32 {%f24,%f25,%f26,%f27},[q_tex,{%r26,%r28,%r30,%r32}];
mov.f32 %f28, %f24;
setp.ge.u64 %p3, %rd16, %rd13;
@%p3 bra $Lt_0_27650;
cvt.s64.s32 %rd24, %r17;
ld.param.f32 %f29, [__cudaparm_kernel_pair_cut_coulsq];
mov.f32 %f30, 0f00000000; // 0
mov.f32 %f31, 0f00000000; // 0
mov.f32 %f32, 0f00000000; // 0
mov.f32 %f33, 0f00000000; // 0
mov.u64 %rd25, __cuda___cuda_local_var_32498_33_non_const_sp_cl112;
$Lt_0_20482:
//<loop> Loop body line 150, nesting depth: 1, estimated iterations: unknown
.loc 16 153 0
ld.global.s32 %r33, [%rd16+0];
.loc 16 156 0
mov.f32 %f34, 0f3f800000; // 1
shr.s32 %r34, %r33, 30;
and.b32 %r35, %r34, 3;
cvt.s64.s32 %rd26, %r35;
mul.wide.s32 %rd27, %r35, 4;
add.u64 %rd28, %rd25, %rd27;
ld.shared.f32 %f35, [%rd28+0];
sub.ftz.f32 %f36, %f34, %f35;
.loc 16 159 0
and.b32 %r36, %r33, 1073741823;
mov.u32 %r37, %r36;
mov.s32 %r38, 0;
mov.u32 %r39, %r38;
mov.s32 %r40, 0;
mov.u32 %r41, %r40;
mov.s32 %r42, 0;
mov.u32 %r43, %r42;
tex.1d.v4.f32.s32 {%f37,%f38,%f39,%f40},[pos_tex,{%r37,%r39,%r41,%r43}];
mov.f32 %f41, %f37;
mov.f32 %f42, %f38;
mov.f32 %f43, %f39;
sub.ftz.f32 %f44, %f22, %f42;
sub.ftz.f32 %f45, %f21, %f41;
sub.ftz.f32 %f46, %f23, %f43;
mul.ftz.f32 %f47, %f44, %f44;
fma.rn.ftz.f32 %f48, %f45, %f45, %f47;
fma.rn.ftz.f32 %f49, %f46, %f46, %f48;
setp.lt.ftz.f32 %p4, %f49, %f29;
@!%p4 bra $Lt_0_21250;
.loc 16 175 0
sqrt.approx.ftz.f32 %f50, %f49;
ld.param.f32 %f51, [__cudaparm_kernel_pair_g_ewald];
mul.ftz.f32 %f52, %f51, %f50;
mul.ftz.f32 %f53, %f52, %f52;
mov.f32 %f54, 0f3f800000; // 1
mov.f32 %f55, 0f3ea7ba05; // 0.327591
fma.rn.ftz.f32 %f56, %f55, %f52, %f54;
neg.ftz.f32 %f57, %f53;
rcp.approx.ftz.f32 %f58, %f56;
mov.f32 %f59, 0f3fb8aa3b; // 1.4427
mul.ftz.f32 %f60, %f57, %f59;
ex2.approx.ftz.f32 %f61, %f60;
mov.f32 %f62, 0f3e827906; // 0.25483
mov.f32 %f63, 0fbe91a98e; // -0.284497
mov.f32 %f64, 0f3fb5f0e3; // 1.42141
mov.f32 %f65, 0fbfba00e3; // -1.45315
mov.f32 %f66, 0f3f87dc22; // 1.06141
fma.rn.ftz.f32 %f67, %f66, %f58, %f65;
fma.rn.ftz.f32 %f68, %f58, %f67, %f64;
fma.rn.ftz.f32 %f69, %f58, %f68, %f63;
fma.rn.ftz.f32 %f70, %f58, %f69, %f62;
mul.ftz.f32 %f71, %f58, %f70;
mul.ftz.f32 %f72, %f61, %f71;
.loc 16 176 0
mov.u32 %r44, %r36;
mov.s32 %r45, 0;
mov.u32 %r46, %r45;
mov.s32 %r47, 0;
mov.u32 %r48, %r47;
mov.s32 %r49, 0;
mov.u32 %r50, %r49;
tex.1d.v4.f32.s32 {%f73,%f74,%f75,%f76},[q_tex,{%r44,%r46,%r48,%r50}];
mov.f32 %f77, %f73;
.loc 16 177 0
ld.param.f32 %f78, [__cudaparm_kernel_pair_qqrd2e];
mul.ftz.f32 %f79, %f78, %f28;
mul.ftz.f32 %f80, %f79, %f77;
div.approx.ftz.f32 %f81, %f80, %f50;
mov.f32 %f82, 0f3f906ebb; // 1.12838
mul.ftz.f32 %f83, %f52, %f82;
fma.rn.ftz.f32 %f84, %f61, %f83, %f72;
sub.ftz.f32 %f85, %f84, %f36;
mul.ftz.f32 %f86, %f81, %f85;
rcp.approx.ftz.f32 %f87, %f49;
mul.ftz.f32 %f88, %f86, %f87;
.loc 16 179 0
fma.rn.ftz.f32 %f32, %f45, %f88, %f32;
.loc 16 180 0
fma.rn.ftz.f32 %f31, %f44, %f88, %f31;
.loc 16 181 0
fma.rn.ftz.f32 %f30, %f46, %f88, %f30;
.loc 16 168 0
sub.ftz.f32 %f89, %f72, %f36;
fma.rn.ftz.f32 %f90, %f81, %f89, %f33;
ld.param.s32 %r51, [__cudaparm_kernel_pair_eflag];
mov.s32 %r52, 0;
setp.gt.s32 %p5, %r51, %r52;
selp.f32 %f33, %f90, %f33, %p5;
ld.param.s32 %r53, [__cudaparm_kernel_pair_vflag];
mov.u32 %r54, 0;
setp.le.s32 %p6, %r53, %r54;
@%p6 bra $Lt_0_21250;
.loc 16 187 0
mov.f32 %f91, %f6;
mul.ftz.f32 %f92, %f45, %f45;
fma.rn.ftz.f32 %f93, %f88, %f92, %f91;
mov.f32 %f6, %f93;
.loc 16 188 0
mov.f32 %f94, %f8;
fma.rn.ftz.f32 %f95, %f88, %f47, %f94;
mov.f32 %f8, %f95;
.loc 16 189 0
mov.f32 %f96, %f10;
mul.ftz.f32 %f97, %f46, %f46;
fma.rn.ftz.f32 %f98, %f88, %f97, %f96;
mov.f32 %f10, %f98;
.loc 16 190 0
mov.f32 %f99, %f12;
mul.ftz.f32 %f100, %f44, %f45;
fma.rn.ftz.f32 %f101, %f88, %f100, %f99;
mov.f32 %f12, %f101;
.loc 16 191 0
mov.f32 %f102, %f14;
mul.ftz.f32 %f103, %f45, %f46;
fma.rn.ftz.f32 %f104, %f88, %f103, %f102;
mov.f32 %f14, %f104;
.loc 16 192 0
mul.ftz.f32 %f105, %f44, %f46;
fma.rn.ftz.f32 %f15, %f88, %f105, %f15;
mov.f32 %f16, %f15;
$Lt_0_21250:
$Lt_0_20738:
.loc 16 152 0
mul.lo.u64 %rd29, %rd24, 4;
add.u64 %rd16, %rd16, %rd29;
setp.lt.u64 %p7, %rd16, %rd13;
@%p7 bra $Lt_0_20482;
bra.uni $Lt_0_18946;
$Lt_0_27650:
mov.f32 %f30, 0f00000000; // 0
mov.f32 %f31, 0f00000000; // 0
mov.f32 %f32, 0f00000000; // 0
mov.f32 %f33, 0f00000000; // 0
bra.uni $Lt_0_18946;
$Lt_0_19202:
mov.f32 %f30, 0f00000000; // 0
mov.f32 %f31, 0f00000000; // 0
mov.f32 %f32, 0f00000000; // 0
mov.f32 %f33, 0f00000000; // 0
$Lt_0_18946:
mov.u32 %r55, 1;
setp.le.s32 %p8, %r1, %r55;
@%p8 bra $Lt_0_24066;
.loc 16 203 0
mov.u64 %rd30, __cuda___cuda_local_var_32585_35_non_const_red_acc128;
cvt.s64.s32 %rd31, %r2;
mul.wide.s32 %rd32, %r2, 4;
add.u64 %rd33, %rd30, %rd32;
mov.f32 %f106, %f32;
st.shared.f32 [%rd33+0], %f106;
.loc 16 204 0
mov.f32 %f107, %f31;
st.shared.f32 [%rd33+512], %f107;
.loc 16 205 0
mov.f32 %f108, %f30;
st.shared.f32 [%rd33+1024], %f108;
.loc 16 206 0
mov.f32 %f109, %f33;
st.shared.f32 [%rd33+1536], %f109;
.loc 16 208 0
shr.s32 %r56, %r1, 31;
mov.s32 %r57, 1;
and.b32 %r58, %r56, %r57;
add.s32 %r59, %r58, %r1;
shr.s32 %r60, %r59, 1;
mov.s32 %r61, %r60;
mov.u32 %r62, 0;
setp.ne.u32 %p9, %r60, %r62;
@!%p9 bra $Lt_0_22530;
$Lt_0_23042:
setp.ge.u32 %p10, %r6, %r61;
@%p10 bra $Lt_0_23298;
.loc 16 211 0
add.u32 %r63, %r2, %r61;
cvt.u64.u32 %rd34, %r63;
mul.wide.u32 %rd35, %r63, 4;
add.u64 %rd36, %rd30, %rd35;
ld.shared.f32 %f110, [%rd36+0];
add.ftz.f32 %f106, %f110, %f106;
st.shared.f32 [%rd33+0], %f106;
ld.shared.f32 %f111, [%rd36+512];
add.ftz.f32 %f107, %f111, %f107;
st.shared.f32 [%rd33+512], %f107;
ld.shared.f32 %f112, [%rd36+1024];
add.ftz.f32 %f108, %f112, %f108;
st.shared.f32 [%rd33+1024], %f108;
ld.shared.f32 %f113, [%rd36+1536];
add.ftz.f32 %f109, %f113, %f109;
st.shared.f32 [%rd33+1536], %f109;
$Lt_0_23298:
.loc 16 208 0
shr.u32 %r61, %r61, 1;
mov.u32 %r64, 0;
setp.ne.u32 %p11, %r61, %r64;
@%p11 bra $Lt_0_23042;
$Lt_0_22530:
.loc 16 215 0
mov.f32 %f32, %f106;
.loc 16 216 0
mov.f32 %f31, %f107;
.loc 16 217 0
mov.f32 %f30, %f108;
.loc 16 218 0
mov.f32 %f33, %f109;
ld.param.s32 %r65, [__cudaparm_kernel_pair_vflag];
mov.u32 %r66, 0;
setp.le.s32 %p12, %r65, %r66;
@%p12 bra $Lt_0_24066;
.loc 16 222 0
mov.f32 %f106, %f6;
st.shared.f32 [%rd33+0], %f106;
mov.f32 %f107, %f8;
st.shared.f32 [%rd33+512], %f107;
mov.f32 %f108, %f10;
st.shared.f32 [%rd33+1024], %f108;
mov.f32 %f109, %f12;
st.shared.f32 [%rd33+1536], %f109;
mov.f32 %f114, %f14;
st.shared.f32 [%rd33+2048], %f114;
mov.f32 %f115, %f16;
st.shared.f32 [%rd33+2560], %f115;
.loc 16 224 0
mov.s32 %r67, %r60;
@!%p9 bra $Lt_0_24578;
$Lt_0_25090:
setp.ge.u32 %p13, %r6, %r67;
@%p13 bra $Lt_0_25346;
.loc 16 227 0
add.u32 %r68, %r2, %r67;
cvt.u64.u32 %rd37, %r68;
mul.wide.u32 %rd38, %r68, 4;
add.u64 %rd39, %rd30, %rd38;
ld.shared.f32 %f116, [%rd39+0];
add.ftz.f32 %f106, %f116, %f106;
st.shared.f32 [%rd33+0], %f106;
ld.shared.f32 %f117, [%rd39+512];
add.ftz.f32 %f107, %f117, %f107;
st.shared.f32 [%rd33+512], %f107;
ld.shared.f32 %f118, [%rd39+1024];
add.ftz.f32 %f108, %f118, %f108;
st.shared.f32 [%rd33+1024], %f108;
ld.shared.f32 %f119, [%rd39+1536];
add.ftz.f32 %f109, %f119, %f109;
st.shared.f32 [%rd33+1536], %f109;
ld.shared.f32 %f120, [%rd39+2048];
add.ftz.f32 %f114, %f120, %f114;
st.shared.f32 [%rd33+2048], %f114;
ld.shared.f32 %f121, [%rd39+2560];
add.ftz.f32 %f115, %f121, %f115;
st.shared.f32 [%rd33+2560], %f115;
$Lt_0_25346:
.loc 16 224 0
shr.u32 %r67, %r67, 1;
mov.u32 %r69, 0;
setp.ne.u32 %p14, %r67, %r69;
@%p14 bra $Lt_0_25090;
$Lt_0_24578:
.loc 16 232 0
mov.f32 %f6, %f106;
mov.f32 %f8, %f107;
mov.f32 %f10, %f108;
mov.f32 %f12, %f109;
mov.f32 %f14, %f114;
mov.f32 %f16, %f115;
$Lt_0_24066:
$Lt_0_22018:
selp.s32 %r70, 1, 0, %p1;
mov.s32 %r71, 0;
set.eq.u32.s32 %r72, %r6, %r71;
neg.s32 %r73, %r72;
and.b32 %r74, %r70, %r73;
mov.u32 %r75, 0;
setp.eq.s32 %p15, %r74, %r75;
@%p15 bra $Lt_0_26114;
.loc 16 238 0
cvt.s64.s32 %rd40, %r9;
ld.param.u64 %rd41, [__cudaparm_kernel_pair_engv];
mul.wide.s32 %rd42, %r9, 4;
add.u64 %rd43, %rd41, %rd42;
ld.param.s32 %r76, [__cudaparm_kernel_pair_eflag];
mov.u32 %r77, 0;
setp.le.s32 %p16, %r76, %r77;
@%p16 bra $Lt_0_26626;
.loc 16 240 0
mov.f32 %f122, 0f00000000; // 0
st.global.f32 [%rd43+0], %f122;
.loc 16 241 0
cvt.s64.s32 %rd44, %r10;
mul.wide.s32 %rd45, %r10, 4;
add.u64 %rd46, %rd45, %rd43;
.loc 16 242 0
st.global.f32 [%rd46+0], %f33;
.loc 16 243 0
add.u64 %rd43, %rd45, %rd46;
$Lt_0_26626:
ld.param.s32 %r78, [__cudaparm_kernel_pair_vflag];
mov.u32 %r79, 0;
setp.le.s32 %p17, %r78, %r79;
@%p17 bra $Lt_0_27138;
.loc 16 247 0
mov.f32 %f123, %f6;
st.global.f32 [%rd43+0], %f123;
.loc 16 248 0
cvt.s64.s32 %rd47, %r10;
mul.wide.s32 %rd48, %r10, 4;
add.u64 %rd49, %rd48, %rd43;
.loc 16 247 0
mov.f32 %f124, %f8;
st.global.f32 [%rd49+0], %f124;
.loc 16 248 0
add.u64 %rd50, %rd48, %rd49;
.loc 16 247 0
mov.f32 %f125, %f10;
st.global.f32 [%rd50+0], %f125;
.loc 16 248 0
add.u64 %rd51, %rd48, %rd50;
.loc 16 247 0
mov.f32 %f126, %f12;
st.global.f32 [%rd51+0], %f126;
.loc 16 248 0
add.u64 %rd43, %rd48, %rd51;
.loc 16 247 0
mov.f32 %f127, %f14;
st.global.f32 [%rd43+0], %f127;
mov.f32 %f128, %f16;
add.u64 %rd52, %rd48, %rd43;
st.global.f32 [%rd52+0], %f128;
$Lt_0_27138:
.loc 16 251 0
ld.param.u64 %rd53, [__cudaparm_kernel_pair_ans];
mul.lo.u64 %rd54, %rd40, 16;
add.u64 %rd55, %rd53, %rd54;
mov.f32 %f129, %f130;
st.global.v4.f32 [%rd55+0], {%f32,%f31,%f30,%f129};
$Lt_0_26114:
.loc 16 253 0
exit;
$LDWend_kernel_pair:
} // kernel_pair
.entry kernel_pair_fast (
.param .u64 __cudaparm_kernel_pair_fast_x_,
.param .u64 __cudaparm_kernel_pair_fast_lj1_in,
.param .u64 __cudaparm_kernel_pair_fast_lj3_in,
.param .u64 __cudaparm_kernel_pair_fast_sp_cl_in,
.param .u64 __cudaparm_kernel_pair_fast_dev_nbor,
.param .u64 __cudaparm_kernel_pair_fast_dev_packed,
.param .u64 __cudaparm_kernel_pair_fast_ans,
.param .u64 __cudaparm_kernel_pair_fast_engv,
.param .s32 __cudaparm_kernel_pair_fast_eflag,
.param .s32 __cudaparm_kernel_pair_fast_vflag,
.param .s32 __cudaparm_kernel_pair_fast_inum,
.param .s32 __cudaparm_kernel_pair_fast_nbor_pitch,
.param .u64 __cudaparm_kernel_pair_fast_q_,
.param .f32 __cudaparm_kernel_pair_fast_cut_coulsq,
.param .f32 __cudaparm_kernel_pair_fast_qqrd2e,
.param .f32 __cudaparm_kernel_pair_fast_g_ewald,
.param .s32 __cudaparm_kernel_pair_fast_t_per_atom)
{
.reg .u32 %r<82>;
.reg .u64 %rd<61>;
.reg .f32 %f<129>;
.reg .pred %p<20>;
.shared .align 4 .b8 __cuda___cuda_local_var_32653_33_non_const_sp_cl3304[16];
.shared .align 4 .b8 __cuda___cuda_local_var_32740_35_non_const_red_acc3320[3072];
// __cuda_local_var_32658_10_non_const_f = 48
// __cuda_local_var_32662_9_non_const_virial = 16
.loc 16 263 0
$LDWbegin_kernel_pair_fast:
cvt.s32.u32 %r1, %tid.x;
mov.u32 %r2, 3;
setp.gt.s32 %p1, %r1, %r2;
@%p1 bra $Lt_1_19714;
.loc 16 271 0
mov.u64 %rd1, __cuda___cuda_local_var_32653_33_non_const_sp_cl3304;
cvt.s64.s32 %rd2, %r1;
mul.wide.s32 %rd3, %r1, 4;
ld.param.u64 %rd4, [__cudaparm_kernel_pair_fast_sp_cl_in];
add.u64 %rd5, %rd4, %rd3;
ld.global.f32 %f1, [%rd5+0];
add.u64 %rd6, %rd3, %rd1;
st.shared.f32 [%rd6+0], %f1;
$Lt_1_19714:
mov.u64 %rd1, __cuda___cuda_local_var_32653_33_non_const_sp_cl3304;
.loc 16 280 0
mov.f32 %f2, 0f00000000; // 0
mov.f32 %f3, %f2;
mov.f32 %f4, 0f00000000; // 0
mov.f32 %f5, %f4;
mov.f32 %f6, 0f00000000; // 0
mov.f32 %f7, %f6;
mov.f32 %f8, 0f00000000; // 0
mov.f32 %f9, %f8;
mov.f32 %f10, 0f00000000; // 0
mov.f32 %f11, %f10;
mov.f32 %f12, 0f00000000; // 0
mov.f32 %f13, %f12;
.loc 16 282 0
bar.sync 0;
ld.param.s32 %r3, [__cudaparm_kernel_pair_fast_t_per_atom];
div.s32 %r4, %r1, %r3;
cvt.s32.u32 %r5, %ntid.x;
div.s32 %r6, %r5, %r3;
rem.s32 %r7, %r1, %r3;
cvt.s32.u32 %r8, %ctaid.x;
mul.lo.s32 %r9, %r8, %r6;
add.s32 %r10, %r4, %r9;
ld.param.s32 %r11, [__cudaparm_kernel_pair_fast_inum];
setp.lt.s32 %p2, %r10, %r11;
@!%p2 bra $Lt_1_20482;
.loc 16 286 0
cvt.s64.s32 %rd7, %r10;
mul.wide.s32 %rd8, %r10, 4;
ld.param.u64 %rd9, [__cudaparm_kernel_pair_fast_dev_nbor];
add.u64 %rd10, %rd8, %rd9;
ld.global.s32 %r12, [%rd10+0];
.loc 16 288 0
ld.param.s32 %r13, [__cudaparm_kernel_pair_fast_nbor_pitch];
cvt.s64.s32 %rd11, %r13;
mul.wide.s32 %rd12, %r13, 4;
add.u64 %rd13, %rd12, %rd10;
ld.global.s32 %r14, [%rd13+0];
add.u64 %rd14, %rd12, %rd13;
ld.param.u64 %rd15, [__cudaparm_kernel_pair_fast_dev_packed];
setp.ne.u64 %p3, %rd15, %rd9;
@%p3 bra $Lt_1_20994;
.loc 16 294 0
cvt.s32.s64 %r15, %rd11;
mul.lo.s32 %r16, %r15, %r14;
cvt.s64.s32 %rd16, %r16;
mul.wide.s32 %rd17, %r16, 4;
add.u64 %rd18, %rd14, %rd17;
.loc 16 295 0
mul.lo.s32 %r17, %r7, %r15;
cvt.s64.s32 %rd19, %r17;
mul.wide.s32 %rd20, %r17, 4;
add.u64 %rd21, %rd14, %rd20;
.loc 16 296 0
mul.lo.s32 %r18, %r15, %r3;
bra.uni $Lt_1_20738;
$Lt_1_20994:
.loc 16 298 0
ld.global.s32 %r19, [%rd14+0];
cvt.s64.s32 %rd22, %r19;
mul.wide.s32 %rd23, %r19, 4;
add.u64 %rd24, %rd15, %rd23;
.loc 16 299 0
cvt.s64.s32 %rd25, %r14;
mul.wide.s32 %rd26, %r14, 4;
add.u64 %rd18, %rd24, %rd26;
.loc 16 300 0
mov.s32 %r18, %r3;
.loc 16 301 0
cvt.s64.s32 %rd27, %r7;
mul.wide.s32 %rd28, %r7, 4;
add.u64 %rd21, %rd24, %rd28;
$Lt_1_20738:
.loc 16 304 0
mov.u32 %r20, %r12;
mov.s32 %r21, 0;
mov.u32 %r22, %r21;
mov.s32 %r23, 0;
mov.u32 %r24, %r23;
mov.s32 %r25, 0;
mov.u32 %r26, %r25;
tex.1d.v4.f32.s32 {%f14,%f15,%f16,%f17},[pos_tex,{%r20,%r22,%r24,%r26}];
mov.f32 %f18, %f14;
mov.f32 %f19, %f15;
mov.f32 %f20, %f16;
.loc 16 305 0
mov.u32 %r27, %r12;
mov.s32 %r28, 0;
mov.u32 %r29, %r28;
mov.s32 %r30, 0;
mov.u32 %r31, %r30;
mov.s32 %r32, 0;
mov.u32 %r33, %r32;
tex.1d.v4.f32.s32 {%f21,%f22,%f23,%f24},[q_tex,{%r27,%r29,%r31,%r33}];
mov.f32 %f25, %f21;
setp.ge.u64 %p4, %rd21, %rd18;
@%p4 bra $Lt_1_28930;
cvt.s64.s32 %rd29, %r18;
ld.param.f32 %f26, [__cudaparm_kernel_pair_fast_cut_coulsq];
mov.f32 %f27, 0f00000000; // 0
mov.f32 %f28, 0f00000000; // 0
mov.f32 %f29, 0f00000000; // 0
mov.f32 %f30, 0f00000000; // 0
$Lt_1_21762:
//<loop> Loop body line 305, nesting depth: 1, estimated iterations: unknown
.loc 16 308 0
ld.global.s32 %r34, [%rd21+0];
.loc 16 311 0
mov.f32 %f31, 0f3f800000; // 1
shr.s32 %r35, %r34, 30;
and.b32 %r36, %r35, 3;
cvt.s64.s32 %rd30, %r36;
mul.wide.s32 %rd31, %r36, 4;
add.u64 %rd32, %rd1, %rd31;
ld.shared.f32 %f32, [%rd32+0];
sub.ftz.f32 %f33, %f31, %f32;
.loc 16 314 0
and.b32 %r37, %r34, 1073741823;
mov.u32 %r38, %r37;
mov.s32 %r39, 0;
mov.u32 %r40, %r39;
mov.s32 %r41, 0;
mov.u32 %r42, %r41;
mov.s32 %r43, 0;
mov.u32 %r44, %r43;
tex.1d.v4.f32.s32 {%f34,%f35,%f36,%f37},[pos_tex,{%r38,%r40,%r42,%r44}];
mov.f32 %f38, %f34;
mov.f32 %f39, %f35;
mov.f32 %f40, %f36;
sub.ftz.f32 %f41, %f19, %f39;
sub.ftz.f32 %f42, %f18, %f38;
sub.ftz.f32 %f43, %f20, %f40;
mul.ftz.f32 %f44, %f41, %f41;
fma.rn.ftz.f32 %f45, %f42, %f42, %f44;
fma.rn.ftz.f32 %f46, %f43, %f43, %f45;
setp.lt.ftz.f32 %p5, %f46, %f26;
@!%p5 bra $Lt_1_22530;
.loc 16 330 0
sqrt.approx.ftz.f32 %f47, %f46;
ld.param.f32 %f48, [__cudaparm_kernel_pair_fast_g_ewald];
mul.ftz.f32 %f49, %f48, %f47;
mul.ftz.f32 %f50, %f49, %f49;
mov.f32 %f51, 0f3f800000; // 1
mov.f32 %f52, 0f3ea7ba05; // 0.327591
fma.rn.ftz.f32 %f53, %f52, %f49, %f51;
neg.ftz.f32 %f54, %f50;
rcp.approx.ftz.f32 %f55, %f53;
mov.f32 %f56, 0f3fb8aa3b; // 1.4427
mul.ftz.f32 %f57, %f54, %f56;
ex2.approx.ftz.f32 %f58, %f57;
mov.f32 %f59, 0f3e827906; // 0.25483
mov.f32 %f60, 0fbe91a98e; // -0.284497
mov.f32 %f61, 0f3fb5f0e3; // 1.42141
mov.f32 %f62, 0fbfba00e3; // -1.45315
mov.f32 %f63, 0f3f87dc22; // 1.06141
fma.rn.ftz.f32 %f64, %f63, %f55, %f62;
fma.rn.ftz.f32 %f65, %f55, %f64, %f61;
fma.rn.ftz.f32 %f66, %f55, %f65, %f60;
fma.rn.ftz.f32 %f67, %f55, %f66, %f59;
mul.ftz.f32 %f68, %f55, %f67;
mul.ftz.f32 %f69, %f58, %f68;
.loc 16 331 0
mov.u32 %r45, %r37;
mov.s32 %r46, 0;
mov.u32 %r47, %r46;
mov.s32 %r48, 0;
mov.u32 %r49, %r48;
mov.s32 %r50, 0;
mov.u32 %r51, %r50;
tex.1d.v4.f32.s32 {%f70,%f71,%f72,%f73},[q_tex,{%r45,%r47,%r49,%r51}];
mov.f32 %f74, %f70;
.loc 16 332 0
ld.param.f32 %f75, [__cudaparm_kernel_pair_fast_qqrd2e];
mul.ftz.f32 %f76, %f75, %f25;
mul.ftz.f32 %f77, %f76, %f74;
div.approx.ftz.f32 %f78, %f77, %f47;
mov.f32 %f79, 0f3f906ebb; // 1.12838
mul.ftz.f32 %f80, %f49, %f79;
fma.rn.ftz.f32 %f81, %f58, %f80, %f69;
sub.ftz.f32 %f82, %f81, %f33;
mul.ftz.f32 %f83, %f78, %f82;
rcp.approx.ftz.f32 %f84, %f46;
mul.ftz.f32 %f85, %f83, %f84;
.loc 16 334 0
fma.rn.ftz.f32 %f29, %f42, %f85, %f29;
.loc 16 335 0
fma.rn.ftz.f32 %f28, %f41, %f85, %f28;
.loc 16 336 0
fma.rn.ftz.f32 %f27, %f43, %f85, %f27;
.loc 16 323 0
sub.ftz.f32 %f86, %f69, %f33;
fma.rn.ftz.f32 %f87, %f78, %f86, %f30;
ld.param.s32 %r52, [__cudaparm_kernel_pair_fast_eflag];
mov.s32 %r53, 0;
setp.gt.s32 %p6, %r52, %r53;
selp.f32 %f30, %f87, %f30, %p6;
ld.param.s32 %r54, [__cudaparm_kernel_pair_fast_vflag];
mov.u32 %r55, 0;
setp.le.s32 %p7, %r54, %r55;
@%p7 bra $Lt_1_22530;
.loc 16 342 0
mov.f32 %f88, %f3;
mul.ftz.f32 %f89, %f42, %f42;
fma.rn.ftz.f32 %f90, %f85, %f89, %f88;
mov.f32 %f3, %f90;
.loc 16 343 0
mov.f32 %f91, %f5;
fma.rn.ftz.f32 %f92, %f85, %f44, %f91;
mov.f32 %f5, %f92;
.loc 16 344 0
mov.f32 %f93, %f7;
mul.ftz.f32 %f94, %f43, %f43;
fma.rn.ftz.f32 %f95, %f85, %f94, %f93;
mov.f32 %f7, %f95;
.loc 16 345 0
mov.f32 %f96, %f9;
mul.ftz.f32 %f97, %f41, %f42;
fma.rn.ftz.f32 %f98, %f85, %f97, %f96;
mov.f32 %f9, %f98;
.loc 16 346 0
mov.f32 %f99, %f11;
mul.ftz.f32 %f100, %f42, %f43;
fma.rn.ftz.f32 %f101, %f85, %f100, %f99;
mov.f32 %f11, %f101;
.loc 16 347 0
mul.ftz.f32 %f102, %f41, %f43;
fma.rn.ftz.f32 %f12, %f85, %f102, %f12;
mov.f32 %f13, %f12;
$Lt_1_22530:
$Lt_1_22018:
.loc 16 307 0
mul.lo.u64 %rd33, %rd29, 4;
add.u64 %rd21, %rd21, %rd33;
setp.lt.u64 %p8, %rd21, %rd18;
@%p8 bra $Lt_1_21762;
bra.uni $Lt_1_20226;
$Lt_1_28930:
mov.f32 %f27, 0f00000000; // 0
mov.f32 %f28, 0f00000000; // 0
mov.f32 %f29, 0f00000000; // 0
mov.f32 %f30, 0f00000000; // 0
bra.uni $Lt_1_20226;
$Lt_1_20482:
mov.f32 %f27, 0f00000000; // 0
mov.f32 %f28, 0f00000000; // 0
mov.f32 %f29, 0f00000000; // 0
mov.f32 %f30, 0f00000000; // 0
$Lt_1_20226:
mov.u32 %r56, 1;
setp.le.s32 %p9, %r3, %r56;
@%p9 bra $Lt_1_25346;
.loc 16 358 0
mov.u64 %rd34, __cuda___cuda_local_var_32740_35_non_const_red_acc3320;
cvt.s64.s32 %rd35, %r1;
mul.wide.s32 %rd36, %r1, 4;
add.u64 %rd37, %rd34, %rd36;
mov.f32 %f103, %f29;
st.shared.f32 [%rd37+0], %f103;
.loc 16 359 0
mov.f32 %f104, %f28;
st.shared.f32 [%rd37+512], %f104;
.loc 16 360 0
mov.f32 %f105, %f27;
st.shared.f32 [%rd37+1024], %f105;
.loc 16 361 0
mov.f32 %f106, %f30;
st.shared.f32 [%rd37+1536], %f106;
.loc 16 363 0
shr.s32 %r57, %r3, 31;
mov.s32 %r58, 1;
and.b32 %r59, %r57, %r58;
add.s32 %r60, %r59, %r3;
shr.s32 %r61, %r60, 1;
mov.s32 %r62, %r61;
mov.u32 %r63, 0;
setp.ne.u32 %p10, %r61, %r63;
@!%p10 bra $Lt_1_23810;
$Lt_1_24322:
setp.ge.u32 %p11, %r7, %r62;
@%p11 bra $Lt_1_24578;
.loc 16 366 0
add.u32 %r64, %r1, %r62;
cvt.u64.u32 %rd38, %r64;
mul.wide.u32 %rd39, %r64, 4;
add.u64 %rd40, %rd34, %rd39;
ld.shared.f32 %f107, [%rd40+0];
add.ftz.f32 %f103, %f107, %f103;
st.shared.f32 [%rd37+0], %f103;
ld.shared.f32 %f108, [%rd40+512];
add.ftz.f32 %f104, %f108, %f104;
st.shared.f32 [%rd37+512], %f104;
ld.shared.f32 %f109, [%rd40+1024];
add.ftz.f32 %f105, %f109, %f105;
st.shared.f32 [%rd37+1024], %f105;
ld.shared.f32 %f110, [%rd40+1536];
add.ftz.f32 %f106, %f110, %f106;
st.shared.f32 [%rd37+1536], %f106;
$Lt_1_24578:
.loc 16 363 0
shr.u32 %r62, %r62, 1;
mov.u32 %r65, 0;
setp.ne.u32 %p12, %r62, %r65;
@%p12 bra $Lt_1_24322;
$Lt_1_23810:
.loc 16 370 0
mov.f32 %f29, %f103;
.loc 16 371 0
mov.f32 %f28, %f104;
.loc 16 372 0
mov.f32 %f27, %f105;
.loc 16 373 0
mov.f32 %f30, %f106;
ld.param.s32 %r66, [__cudaparm_kernel_pair_fast_vflag];
mov.u32 %r67, 0;
setp.le.s32 %p13, %r66, %r67;
@%p13 bra $Lt_1_25346;
.loc 16 377 0
mov.f32 %f103, %f3;
st.shared.f32 [%rd37+0], %f103;
mov.f32 %f104, %f5;
st.shared.f32 [%rd37+512], %f104;
mov.f32 %f105, %f7;
st.shared.f32 [%rd37+1024], %f105;
mov.f32 %f106, %f9;
st.shared.f32 [%rd37+1536], %f106;
mov.f32 %f111, %f11;
st.shared.f32 [%rd37+2048], %f111;
mov.f32 %f112, %f13;
st.shared.f32 [%rd37+2560], %f112;
.loc 16 379 0
mov.s32 %r68, %r61;
@!%p10 bra $Lt_1_25858;
$Lt_1_26370:
setp.ge.u32 %p14, %r7, %r68;
@%p14 bra $Lt_1_26626;
.loc 16 382 0
add.u32 %r69, %r1, %r68;
cvt.u64.u32 %rd41, %r69;
mul.wide.u32 %rd42, %r69, 4;
add.u64 %rd43, %rd34, %rd42;
ld.shared.f32 %f113, [%rd43+0];
add.ftz.f32 %f103, %f113, %f103;
st.shared.f32 [%rd37+0], %f103;
ld.shared.f32 %f114, [%rd43+512];
add.ftz.f32 %f104, %f114, %f104;
st.shared.f32 [%rd37+512], %f104;
ld.shared.f32 %f115, [%rd43+1024];
add.ftz.f32 %f105, %f115, %f105;
st.shared.f32 [%rd37+1024], %f105;
ld.shared.f32 %f116, [%rd43+1536];
add.ftz.f32 %f106, %f116, %f106;
st.shared.f32 [%rd37+1536], %f106;
ld.shared.f32 %f117, [%rd43+2048];
add.ftz.f32 %f111, %f117, %f111;
st.shared.f32 [%rd37+2048], %f111;
ld.shared.f32 %f118, [%rd43+2560];
add.ftz.f32 %f112, %f118, %f112;
st.shared.f32 [%rd37+2560], %f112;
$Lt_1_26626:
.loc 16 379 0
shr.u32 %r68, %r68, 1;
mov.u32 %r70, 0;
setp.ne.u32 %p15, %r68, %r70;
@%p15 bra $Lt_1_26370;
$Lt_1_25858:
.loc 16 387 0
mov.f32 %f3, %f103;
mov.f32 %f5, %f104;
mov.f32 %f7, %f105;
mov.f32 %f9, %f106;
mov.f32 %f11, %f111;
mov.f32 %f13, %f112;
$Lt_1_25346:
$Lt_1_23298:
selp.s32 %r71, 1, 0, %p2;
mov.s32 %r72, 0;
set.eq.u32.s32 %r73, %r7, %r72;
neg.s32 %r74, %r73;
and.b32 %r75, %r71, %r74;
mov.u32 %r76, 0;
setp.eq.s32 %p16, %r75, %r76;
@%p16 bra $Lt_1_27394;
.loc 16 393 0
cvt.s64.s32 %rd44, %r10;
ld.param.u64 %rd45, [__cudaparm_kernel_pair_fast_engv];
mul.wide.s32 %rd46, %r10, 4;
add.u64 %rd47, %rd45, %rd46;
ld.param.s32 %r77, [__cudaparm_kernel_pair_fast_eflag];
mov.u32 %r78, 0;
setp.le.s32 %p17, %r77, %r78;
@%p17 bra $Lt_1_27906;
.loc 16 395 0
mov.f32 %f119, 0f00000000; // 0
st.global.f32 [%rd47+0], %f119;
.loc 16 396 0
cvt.s64.s32 %rd48, %r11;
mul.wide.s32 %rd49, %r11, 4;
add.u64 %rd50, %rd49, %rd47;
.loc 16 397 0
st.global.f32 [%rd50+0], %f30;
.loc 16 398 0
add.u64 %rd47, %rd49, %rd50;
$Lt_1_27906:
ld.param.s32 %r79, [__cudaparm_kernel_pair_fast_vflag];
mov.u32 %r80, 0;
setp.le.s32 %p18, %r79, %r80;
@%p18 bra $Lt_1_28418;
.loc 16 402 0
mov.f32 %f120, %f3;
st.global.f32 [%rd47+0], %f120;
.loc 16 403 0
cvt.s64.s32 %rd51, %r11;
mul.wide.s32 %rd52, %r11, 4;
add.u64 %rd53, %rd52, %rd47;
.loc 16 402 0
mov.f32 %f121, %f5;
st.global.f32 [%rd53+0], %f121;
.loc 16 403 0
add.u64 %rd54, %rd52, %rd53;
.loc 16 402 0
mov.f32 %f122, %f7;
st.global.f32 [%rd54+0], %f122;
.loc 16 403 0
add.u64 %rd55, %rd52, %rd54;
.loc 16 402 0
mov.f32 %f123, %f9;
st.global.f32 [%rd55+0], %f123;
.loc 16 403 0
add.u64 %rd47, %rd52, %rd55;
.loc 16 402 0
mov.f32 %f124, %f11;
st.global.f32 [%rd47+0], %f124;
mov.f32 %f125, %f13;
add.u64 %rd56, %rd52, %rd47;
st.global.f32 [%rd56+0], %f125;
$Lt_1_28418:
.loc 16 406 0
ld.param.u64 %rd57, [__cudaparm_kernel_pair_fast_ans];
mul.lo.u64 %rd58, %rd44, 16;
add.u64 %rd59, %rd57, %rd58;
mov.f32 %f126, %f127;
st.global.v4.f32 [%rd59+0], {%f29,%f28,%f27,%f126};
$Lt_1_27394:
.loc 16 408 0
exit;
$LDWend_kernel_pair_fast:
} // kernel_pair_fast