Frank_LBM/CelerisLab/kernels/kernel.ptx
2024-09-23 22:36:33 +08:00

1420 lines
40 KiB
Plaintext

//
// Generated by NVIDIA NVVM Compiler
//
// Compiler Build ID: CL-32688072
// Cuda compilation tools, release 12.1, V12.1.105
// Based on NVVM 7.0.1
//
.version 8.1
.target sm_52
.address_size 64
// .globl OneStep
.const .align 4 .b8 e[72] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 1, 0, 0, 0, 1, 0, 0, 0, 255, 255, 255, 255, 1, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 1, 0, 0, 0, 255, 255, 255, 255};
.const .align 4 .b8 opp[36] = {0, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0};
.const .align 4 .b8 w[36] = {57, 142, 227, 62, 57, 142, 227, 61, 57, 142, 227, 61, 57, 142, 227, 61, 57, 142, 227, 61, 57, 142, 227, 60, 57, 142, 227, 60, 57, 142, 227, 60, 57, 142, 227, 60};
// _ZZ7OneStepE7f_share has been demoted
// _ZZ7OneStepE9obs_share has been demoted
// _ZZ12InitTubeFlowE7f_share has been demoted
// _ZZ12InitTubeFlowE10flag_share has been demoted
.visible .entry OneStep(
.param .u64 OneStep_param_0,
.param .u64 OneStep_param_1,
.param .u64 OneStep_param_2,
.param .u64 OneStep_param_3,
.param .u64 OneStep_param_4,
.param .u64 OneStep_param_5,
.param .u64 OneStep_param_6
)
{
.reg .pred %p<98>;
.reg .b16 %rs<12>;
.reg .f32 %f<393>;
.reg .b32 %r<259>;
.reg .f64 %fd<116>;
.reg .b64 %rd<108>;
// demoted variable
.shared .align 4 .b8 _ZZ7OneStepE7f_share[4608];
// demoted variable
.shared .align 4 .b8 _ZZ7OneStepE9obs_share[56];
ld.param.u64 %rd27, [OneStep_param_0];
ld.param.u64 %rd28, [OneStep_param_1];
ld.param.u64 %rd29, [OneStep_param_2];
ld.param.u64 %rd30, [OneStep_param_3];
ld.param.u64 %rd25, [OneStep_param_4];
ld.param.u64 %rd26, [OneStep_param_5];
ld.param.u64 %rd31, [OneStep_param_6];
cvta.to.global.u64 %rd32, %rd28;
cvta.to.global.u64 %rd1, %rd29;
mov.u32 %r59, %ctaid.x;
shl.b32 %r1, %r59, 7;
mov.u32 %r256, %tid.x;
add.s32 %r3, %r1, %r256;
mov.u32 %r4, %ctaid.y;
mul.lo.s32 %r5, %r4, 1536;
add.s32 %r60, %r3, %r5;
cvt.s64.s32 %rd2, %r60;
cvta.to.global.u64 %rd33, %rd30;
mul.wide.s32 %rd34, %r60, 4;
add.s64 %rd35, %rd33, %rd34;
ld.global.s32 %rd3, [%rd35];
add.s64 %rd36, %rd32, %rd34;
ld.global.f32 %f39, [%rd36];
shl.b32 %r61, %r256, 2;
mov.u32 %r62, _ZZ7OneStepE7f_share;
add.s32 %r6, %r62, %r61;
st.shared.f32 [%r6], %f39;
ld.global.f32 %f40, [%rd36+3932160];
st.shared.f32 [%r6+512], %f40;
ld.global.f32 %f41, [%rd36+7864320];
st.shared.f32 [%r6+1024], %f41;
ld.global.f32 %f42, [%rd36+11796480];
st.shared.f32 [%r6+1536], %f42;
ld.global.f32 %f43, [%rd36+15728640];
st.shared.f32 [%r6+2048], %f43;
ld.global.f32 %f44, [%rd36+19660800];
st.shared.f32 [%r6+2560], %f44;
ld.global.f32 %f45, [%rd36+23592960];
st.shared.f32 [%r6+3072], %f45;
ld.global.f32 %f46, [%rd36+27525120];
st.shared.f32 [%r6+3584], %f46;
ld.global.f32 %f47, [%rd36+31457280];
st.shared.f32 [%r6+4096], %f47;
cvta.to.global.u64 %rd4, %rd31;
cvta.to.global.u64 %rd5, %rd27;
setp.gt.s32 %p1, %r256, 13;
@%p1 bra $L__BB0_7;
max.s32 %r63, %r256, -114;
add.s32 %r64, %r63, 127;
sub.s32 %r7, %r64, %r256;
shr.u32 %r65, %r7, 7;
add.s32 %r66, %r65, 1;
and.b32 %r247, %r66, 3;
setp.eq.s32 %p2, %r247, 0;
mov.u32 %r248, %r256;
@%p2 bra $L__BB0_4;
mov.u32 %r68, _ZZ7OneStepE9obs_share;
add.s32 %r245, %r68, %r61;
mov.u32 %r248, %r256;
$L__BB0_3:
.pragma "nounroll";
mov.u32 %r69, 0;
st.shared.u32 [%r245], %r69;
add.s32 %r248, %r248, 128;
add.s32 %r245, %r245, 512;
add.s32 %r247, %r247, -1;
setp.ne.s32 %p3, %r247, 0;
@%p3 bra $L__BB0_3;
$L__BB0_4:
setp.lt.u32 %p4, %r7, 384;
@%p4 bra $L__BB0_7;
add.s32 %r250, %r248, -512;
shl.b32 %r70, %r248, 2;
mov.u32 %r71, _ZZ7OneStepE9obs_share;
add.s32 %r72, %r71, %r70;
add.s32 %r249, %r72, 1024;
$L__BB0_6:
mov.u32 %r73, 0;
st.shared.u32 [%r249+-1024], %r73;
st.shared.u32 [%r249+-512], %r73;
st.shared.u32 [%r249], %r73;
st.shared.u32 [%r249+512], %r73;
add.s32 %r249, %r249, 2048;
add.s32 %r250, %r250, 512;
setp.lt.s32 %p5, %r250, -498;
@%p5 bra $L__BB0_6;
$L__BB0_7:
bar.sync 0;
ld.shared.f32 %f392, [%r6+512];
ld.shared.f32 %f391, [%r6+1024];
ld.shared.f32 %f390, [%r6+1536];
ld.shared.f32 %f389, [%r6+2048];
ld.shared.f32 %f388, [%r6+2560];
ld.shared.f32 %f387, [%r6+3072];
ld.shared.f32 %f386, [%r6+3584];
ld.shared.f32 %f385, [%r6+4096];
add.s64 %rd6, %rd5, %rd2;
ld.global.u8 %rs1, [%rd6];
and.b16 %rs5, %rs1, 1;
setp.eq.b16 %p6, %rs5, 1;
mov.pred %p7, 0;
xor.pred %p8, %p6, %p7;
not.pred %p9, %p8;
@%p9 bra $L__BB0_9;
bra.uni $L__BB0_8;
$L__BB0_9:
and.b16 %rs6, %rs1, 2;
setp.eq.s16 %p10, %rs6, 0;
@%p10 bra $L__BB0_15;
setp.eq.s32 %p11, %r3, 0;
@%p11 bra $L__BB0_13;
setp.ne.s32 %p12, %r3, 1535;
@%p12 bra $L__BB0_14;
cvt.rn.f32.s32 %f176, %r4;
cvt.f64.f32 %fd67, %f176;
add.f64 %fd68, %fd67, 0dC073F80000000000;
div.rn.f64 %fd69, %fd68, 0d4083F00000000000;
cvt.rn.f32.f64 %f177, %fd69;
mul.f32 %f178, %f177, 0fC0800000;
fma.rn.f32 %f179, %f178, %f177, 0f3F800000;
cvt.f64.f32 %fd70, %f179;
mul.f64 %fd71, %fd70, 0d3F8EB851EB851EB8;
cvt.rn.f32.f64 %f180, %fd71;
mul.f32 %f181, %f180, 0fC0000000;
mul.f32 %f182, %f181, %f180;
fma.rn.f32 %f183, %f180, 0f40000000, %f182;
add.f32 %f184, %f183, 0f00000000;
cvt.f64.f32 %fd72, %f184;
mov.f64 %fd73, 0d0000000000000000;
sub.f64 %fd74, %fd73, %fd72;
div.rn.f64 %fd75, %fd74, 0d4018000000000000;
cvt.rn.f32.f64 %f185, %fd75;
mul.f32 %f186, %f180, %f180;
mul.f32 %f187, %f180, 0f40400000;
mul.f32 %f188, %f187, 0f00000000;
sub.f32 %f189, %f186, %f188;
sub.f32 %f190, %f189, %f180;
add.f32 %f191, %f190, 0f00000000;
cvt.f64.f32 %fd76, %f191;
add.f64 %fd77, %fd76, 0d0000000000000000;
div.rn.f64 %fd78, %fd77, 0d4028000000000000;
cvt.rn.f32.f64 %f192, %fd78;
add.f32 %f193, %f186, %f188;
sub.f32 %f194, %f193, %f180;
add.f32 %f195, %f194, 0f00000000;
cvt.f64.f32 %fd79, %f195;
add.f64 %fd80, %fd79, 0d0000000000000000;
div.rn.f64 %fd81, %fd80, 0d4028000000000000;
cvt.rn.f32.f64 %f196, %fd81;
ld.shared.f32 %f197, [%r6+2556];
ld.shared.f32 %f198, [%r6+508];
add.f32 %f199, %f198, %f197;
ld.shared.f32 %f200, [%r6+4092];
add.f32 %f201, %f199, %f200;
ld.shared.f32 %f202, [%r6+1532];
sub.f32 %f203, %f201, %f202;
ld.shared.f32 %f204, [%r6+3068];
sub.f32 %f205, %f203, %f204;
ld.shared.f32 %f206, [%r6+3580];
sub.f32 %f207, %f205, %f206;
ld.shared.f32 %f208, [%r6+1020];
add.f32 %f209, %f208, %f197;
add.f32 %f210, %f209, %f204;
ld.shared.f32 %f211, [%r6+2044];
sub.f32 %f212, %f210, %f211;
sub.f32 %f213, %f212, %f206;
sub.f32 %f214, %f213, %f200;
mul.f32 %f215, %f207, 0fC0000000;
mul.f32 %f216, %f207, %f215;
fma.rn.f32 %f217, %f207, 0f40000000, %f216;
fma.rn.f32 %f218, %f214, %f214, %f217;
cvt.f64.f32 %fd82, %f218;
sub.f64 %fd83, %fd73, %fd82;
div.rn.f64 %fd84, %fd83, 0d4018000000000000;
cvt.rn.f32.f64 %f219, %fd84;
mul.f32 %f220, %f207, %f207;
mul.f32 %f221, %f207, 0f40400000;
mul.f32 %f222, %f221, %f214;
sub.f32 %f223, %f220, %f222;
sub.f32 %f224, %f223, %f207;
fma.rn.f32 %f225, %f214, %f214, %f224;
add.f32 %f226, %f214, %f225;
cvt.f64.f32 %fd85, %f226;
add.f64 %fd86, %fd85, 0d0000000000000000;
div.rn.f64 %fd87, %fd86, 0d4028000000000000;
cvt.rn.f32.f64 %f227, %fd87;
add.f32 %f228, %f220, %f222;
sub.f32 %f229, %f228, %f207;
fma.rn.f32 %f230, %f214, %f214, %f229;
sub.f32 %f231, %f230, %f214;
cvt.f64.f32 %fd88, %f231;
add.f64 %fd89, %fd88, 0d0000000000000000;
div.rn.f64 %fd90, %fd89, 0d4028000000000000;
cvt.rn.f32.f64 %f232, %fd90;
sub.f32 %f233, %f202, %f219;
add.f32 %f390, %f233, %f185;
sub.f32 %f234, %f204, %f227;
add.f32 %f387, %f234, %f192;
sub.f32 %f235, %f206, %f232;
add.f32 %f386, %f235, %f196;
bra.uni $L__BB0_14;
$L__BB0_8:
ld.shared.f32 %f48, [%r6];
add.f32 %f49, %f392, %f388;
add.f32 %f50, %f49, %f385;
sub.f32 %f51, %f50, %f390;
sub.f32 %f52, %f51, %f387;
sub.f32 %f53, %f52, %f386;
add.f32 %f54, %f391, %f388;
add.f32 %f55, %f54, %f387;
sub.f32 %f56, %f55, %f389;
sub.f32 %f57, %f56, %f386;
sub.f32 %f58, %f57, %f385;
add.f32 %f59, %f48, %f392;
add.f32 %f60, %f59, %f391;
add.f32 %f61, %f60, %f390;
add.f32 %f62, %f61, %f389;
add.f32 %f63, %f62, %f388;
add.f32 %f64, %f63, %f387;
add.f32 %f65, %f64, %f386;
add.f32 %f66, %f65, %f385;
div.rn.f32 %f67, %f66, 0f40400000;
mul.f32 %f68, %f48, 0fC0800000;
sub.f32 %f69, %f68, %f392;
sub.f32 %f70, %f69, %f391;
sub.f32 %f71, %f70, %f390;
sub.f32 %f72, %f71, %f389;
fma.rn.f32 %f73, %f388, 0f40000000, %f72;
fma.rn.f32 %f74, %f387, 0f40000000, %f73;
fma.rn.f32 %f75, %f386, 0f40000000, %f74;
fma.rn.f32 %f76, %f385, 0f40000000, %f75;
add.f32 %f77, %f392, %f392;
mul.f32 %f78, %f48, 0f40800000;
sub.f32 %f79, %f78, %f77;
add.f32 %f80, %f391, %f391;
sub.f32 %f81, %f79, %f80;
add.f32 %f82, %f390, %f390;
sub.f32 %f83, %f81, %f82;
add.f32 %f84, %f389, %f389;
sub.f32 %f85, %f83, %f84;
add.f32 %f86, %f388, %f85;
add.f32 %f87, %f387, %f86;
add.f32 %f88, %f386, %f87;
add.f32 %f89, %f385, %f88;
sub.f32 %f90, %f392, %f390;
add.f32 %f91, %f90, %f388;
sub.f32 %f92, %f91, %f387;
sub.f32 %f93, %f92, %f386;
add.f32 %f94, %f93, %f385;
sub.f32 %f95, %f82, %f77;
add.f32 %f96, %f388, %f95;
sub.f32 %f97, %f96, %f387;
sub.f32 %f98, %f97, %f386;
add.f32 %f99, %f385, %f98;
sub.f32 %f100, %f391, %f389;
add.f32 %f101, %f100, %f388;
add.f32 %f102, %f101, %f387;
sub.f32 %f103, %f102, %f386;
sub.f32 %f104, %f103, %f385;
sub.f32 %f105, %f84, %f80;
add.f32 %f106, %f388, %f105;
add.f32 %f107, %f387, %f106;
sub.f32 %f108, %f107, %f386;
sub.f32 %f109, %f108, %f385;
sub.f32 %f110, %f392, %f391;
add.f32 %f111, %f110, %f390;
sub.f32 %f112, %f111, %f389;
sub.f32 %f113, %f388, %f387;
add.f32 %f114, %f113, %f386;
sub.f32 %f115, %f114, %f385;
mul.f32 %f116, %f67, 0f40400000;
sub.f32 %f117, %f116, %f66;
mul.f32 %f118, %f67, 0fC0C00000;
cvt.f64.f32 %fd1, %f118;
mul.f32 %f119, %f53, %f53;
mul.f32 %f120, %f58, %f58;
add.f32 %f121, %f119, %f120;
cvt.f64.f32 %fd2, %f121;
mul.f64 %fd3, %fd2, 0d4008000000000000;
add.f64 %fd4, %fd3, %fd1;
cvt.f64.f32 %fd5, %f76;
sub.f64 %fd6, %fd4, %fd5;
mul.f64 %fd7, %fd6, 0d3FF3333333333333;
cvt.rn.f32.f64 %f122, %fd7;
cvt.f64.f32 %fd8, %f116;
sub.f64 %fd9, %fd8, %fd3;
cvt.f64.f32 %fd10, %f89;
sub.f64 %fd11, %fd9, %fd10;
mul.f64 %fd12, %fd11, 0d3FF3333333333333;
cvt.rn.f32.f64 %f123, %fd12;
sub.f32 %f124, %f53, %f94;
cvt.f64.f32 %fd13, %f53;
neg.f64 %fd14, %fd13;
cvt.f64.f32 %fd15, %f99;
sub.f64 %fd16, %fd14, %fd15;
mul.f64 %fd17, %fd16, 0d3FF3333333333333;
cvt.rn.f32.f64 %f125, %fd17;
sub.f32 %f126, %f58, %f104;
cvt.f64.f32 %fd18, %f58;
neg.f64 %fd19, %fd18;
cvt.f64.f32 %fd20, %f109;
sub.f64 %fd21, %fd19, %fd20;
mul.f64 %fd22, %fd21, 0d3FF3333333333333;
cvt.rn.f32.f64 %f127, %fd22;
sub.f32 %f128, %f119, %f120;
cvt.f64.f32 %fd23, %f128;
cvt.f64.f32 %fd24, %f112;
sub.f64 %fd25, %fd23, %fd24;
mul.f64 %fd26, %fd25, 0d3FFEE35600000000;
cvt.rn.f32.f64 %f129, %fd26;
mul.f64 %fd27, %fd13, %fd18;
cvt.f64.f32 %fd28, %f115;
sub.f64 %fd29, %fd27, %fd28;
mul.f64 %fd30, %fd29, 0d3FFEE35600000000;
cvt.rn.f32.f64 %f130, %fd30;
sub.f32 %f131, %f117, %f122;
add.f32 %f132, %f131, %f123;
cvt.f64.f32 %fd31, %f132;
div.rn.f64 %fd32, %fd31, 0d4022000000000000;
cvt.f64.f32 %fd33, %f48;
add.f64 %fd34, %fd32, %fd33;
cvt.rn.f32.f64 %f133, %fd34;
mul.f32 %f134, %f117, 0f40800000;
sub.f32 %f135, %f134, %f122;
add.f32 %f136, %f123, %f123;
sub.f32 %f137, %f135, %f136;
mul.f32 %f138, %f124, 0f40C00000;
add.f32 %f139, %f137, %f138;
mul.f32 %f140, %f125, 0f40C00000;
sub.f32 %f141, %f139, %f140;
mul.f32 %f142, %f129, 0f41100000;
add.f32 %f143, %f141, %f142;
cvt.f64.f32 %fd35, %f143;
div.rn.f64 %fd36, %fd35, 0d4042000000000000;
cvt.f64.f32 %fd37, %f392;
add.f64 %fd38, %fd36, %fd37;
cvt.rn.f32.f64 %f392, %fd38;
mul.f32 %f144, %f126, 0f40C00000;
add.f32 %f145, %f137, %f144;
mul.f32 %f146, %f127, 0f40C00000;
sub.f32 %f147, %f145, %f146;
sub.f32 %f148, %f147, %f142;
cvt.f64.f32 %fd39, %f148;
div.rn.f64 %fd40, %fd39, 0d4042000000000000;
cvt.f64.f32 %fd41, %f391;
add.f64 %fd42, %fd40, %fd41;
cvt.rn.f32.f64 %f391, %fd42;
sub.f32 %f149, %f137, %f138;
add.f32 %f150, %f149, %f140;
add.f32 %f151, %f150, %f142;
cvt.f64.f32 %fd43, %f151;
div.rn.f64 %fd44, %fd43, 0d4042000000000000;
cvt.f64.f32 %fd45, %f390;
add.f64 %fd46, %fd44, %fd45;
cvt.rn.f32.f64 %f390, %fd46;
sub.f32 %f152, %f137, %f144;
add.f32 %f153, %f152, %f146;
sub.f32 %f154, %f153, %f142;
cvt.f64.f32 %fd47, %f154;
div.rn.f64 %fd48, %fd47, 0d4042000000000000;
cvt.f64.f32 %fd49, %f389;
add.f64 %fd50, %fd48, %fd49;
cvt.rn.f32.f64 %f389, %fd50;
fma.rn.f32 %f155, %f122, 0f40000000, %f134;
add.f32 %f156, %f155, %f123;
add.f32 %f157, %f156, %f138;
mul.f32 %f158, %f125, 0f40400000;
add.f32 %f159, %f157, %f158;
add.f32 %f160, %f159, %f144;
mul.f32 %f161, %f127, 0f40400000;
add.f32 %f162, %f160, %f161;
mul.f32 %f163, %f130, 0f41100000;
add.f32 %f164, %f162, %f163;
cvt.f64.f32 %fd51, %f164;
div.rn.f64 %fd52, %fd51, 0d4042000000000000;
cvt.f64.f32 %fd53, %f388;
add.f64 %fd54, %fd52, %fd53;
cvt.rn.f32.f64 %f388, %fd54;
sub.f32 %f165, %f156, %f138;
sub.f32 %f166, %f165, %f158;
add.f32 %f167, %f166, %f144;
add.f32 %f168, %f167, %f161;
sub.f32 %f169, %f168, %f163;
cvt.f64.f32 %fd55, %f169;
div.rn.f64 %fd56, %fd55, 0d4042000000000000;
cvt.f64.f32 %fd57, %f387;
add.f64 %fd58, %fd56, %fd57;
cvt.rn.f32.f64 %f387, %fd58;
sub.f32 %f170, %f166, %f144;
sub.f32 %f171, %f170, %f161;
add.f32 %f172, %f171, %f163;
cvt.f64.f32 %fd59, %f172;
div.rn.f64 %fd60, %fd59, 0d4042000000000000;
cvt.f64.f32 %fd61, %f386;
add.f64 %fd62, %fd60, %fd61;
cvt.rn.f32.f64 %f386, %fd62;
sub.f32 %f173, %f159, %f144;
sub.f32 %f174, %f173, %f161;
sub.f32 %f175, %f174, %f163;
cvt.f64.f32 %fd63, %f175;
div.rn.f64 %fd64, %fd63, 0d4042000000000000;
cvt.f64.f32 %fd65, %f385;
add.f64 %fd66, %fd64, %fd65;
cvt.rn.f32.f64 %f385, %fd66;
st.shared.f32 [%r6], %f133;
st.shared.f32 [%r6+512], %f392;
st.shared.f32 [%r6+1024], %f391;
st.shared.f32 [%r6+1536], %f390;
st.shared.f32 [%r6+2048], %f389;
st.shared.f32 [%r6+2560], %f388;
st.shared.f32 [%r6+3072], %f387;
st.shared.f32 [%r6+3584], %f386;
st.shared.f32 [%r6+4096], %f385;
bra.uni $L__BB0_15;
$L__BB0_13:
ld.shared.f32 %f236, [%r6+516];
ld.shared.f32 %f237, [%r6+4];
add.f32 %f238, %f237, %f236;
ld.shared.f32 %f239, [%r6+1028];
add.f32 %f240, %f238, %f239;
ld.shared.f32 %f241, [%r6+1540];
add.f32 %f242, %f240, %f241;
ld.shared.f32 %f243, [%r6+2052];
add.f32 %f244, %f242, %f243;
ld.shared.f32 %f245, [%r6+2564];
add.f32 %f246, %f244, %f245;
ld.shared.f32 %f247, [%r6+3076];
add.f32 %f248, %f246, %f247;
ld.shared.f32 %f249, [%r6+3588];
add.f32 %f250, %f248, %f249;
ld.shared.f32 %f251, [%r6+4100];
add.f32 %f252, %f250, %f251;
div.rn.f32 %f253, %f252, 0f40400000;
cvt.rn.f32.s32 %f254, %r4;
cvt.f64.f32 %fd91, %f254;
add.f64 %fd92, %fd91, 0dC073F80000000000;
div.rn.f64 %fd93, %fd92, 0d4083F00000000000;
cvt.rn.f32.f64 %f255, %fd93;
mul.f32 %f256, %f255, 0fC0800000;
fma.rn.f32 %f257, %f256, %f255, 0f3F800000;
cvt.f64.f32 %fd94, %f257;
mul.f64 %fd95, %fd94, 0d3F8EB851EB851EB8;
cvt.rn.f32.f64 %f258, %fd95;
add.f32 %f259, %f253, %f253;
cvt.f64.f32 %fd96, %f259;
add.f32 %f260, %f258, %f258;
fma.rn.f32 %f261, %f260, %f258, %f260;
cvt.f64.f32 %fd97, %f261;
add.f64 %fd98, %fd97, %fd96;
div.rn.f64 %fd99, %fd98, 0d4018000000000000;
cvt.rn.f32.f64 %f262, %fd99;
cvt.f64.f32 %fd100, %f253;
mul.f32 %f263, %f258, %f258;
mul.f32 %f264, %f258, 0f40400000;
mul.f32 %f265, %f264, 0f00000000;
add.f32 %f266, %f263, %f265;
add.f32 %f267, %f266, %f258;
add.f32 %f268, %f267, 0f00000000;
cvt.f64.f32 %fd101, %f268;
add.f64 %fd102, %fd101, %fd100;
div.rn.f64 %fd103, %fd102, 0d4028000000000000;
cvt.rn.f32.f64 %f269, %fd103;
sub.f32 %f270, %f263, %f265;
add.f32 %f271, %f270, %f258;
add.f32 %f272, %f271, 0f00000000;
cvt.f64.f32 %fd104, %f272;
add.f64 %fd105, %fd104, %fd100;
div.rn.f64 %fd106, %fd105, 0d4028000000000000;
cvt.rn.f32.f64 %f273, %fd106;
add.f32 %f274, %f236, %f245;
add.f32 %f275, %f274, %f251;
sub.f32 %f276, %f275, %f241;
sub.f32 %f277, %f276, %f247;
sub.f32 %f278, %f277, %f249;
add.f32 %f279, %f239, %f245;
add.f32 %f280, %f279, %f247;
sub.f32 %f281, %f280, %f243;
sub.f32 %f282, %f281, %f249;
sub.f32 %f283, %f282, %f251;
add.f32 %f284, %f278, %f278;
fma.rn.f32 %f285, %f278, %f284, %f284;
mul.f32 %f286, %f283, %f283;
sub.f32 %f287, %f285, %f286;
cvt.f64.f32 %fd107, %f287;
add.f64 %fd108, %fd96, %fd107;
div.rn.f64 %fd109, %fd108, 0d4018000000000000;
cvt.rn.f32.f64 %f288, %fd109;
mul.f32 %f289, %f278, %f278;
mul.f32 %f290, %f278, 0f40400000;
mul.f32 %f291, %f290, %f283;
add.f32 %f292, %f289, %f291;
add.f32 %f293, %f278, %f292;
add.f32 %f294, %f286, %f293;
add.f32 %f295, %f283, %f294;
cvt.f64.f32 %fd110, %f295;
add.f64 %fd111, %fd100, %fd110;
div.rn.f64 %fd112, %fd111, 0d4028000000000000;
cvt.rn.f32.f64 %f296, %fd112;
sub.f32 %f297, %f289, %f291;
add.f32 %f298, %f278, %f297;
add.f32 %f299, %f286, %f298;
sub.f32 %f300, %f299, %f283;
cvt.f64.f32 %fd113, %f300;
add.f64 %fd114, %fd100, %fd113;
div.rn.f64 %fd115, %fd114, 0d4028000000000000;
cvt.rn.f32.f64 %f301, %fd115;
sub.f32 %f302, %f236, %f288;
add.f32 %f392, %f302, %f262;
sub.f32 %f303, %f245, %f296;
add.f32 %f388, %f303, %f269;
sub.f32 %f304, %f251, %f301;
add.f32 %f385, %f304, %f273;
$L__BB0_14:
st.shared.f32 [%r6+512], %f392;
st.shared.f32 [%r6+1536], %f390;
st.shared.f32 [%r6+2560], %f388;
st.shared.f32 [%r6+3072], %f387;
st.shared.f32 [%r6+3584], %f386;
st.shared.f32 [%r6+4096], %f385;
$L__BB0_15:
bar.sync 0;
add.s32 %r23, %r3, 983040;
setp.eq.s32 %p13, %r4, 0;
@%p13 bra $L__BB0_52;
setp.eq.s32 %p14, %r4, 639;
@%p14 bra $L__BB0_52;
setp.eq.s32 %p15, %r4, 638;
ld.const.u32 %r74, [e+4];
add.s32 %r24, %r74, %r4;
setp.eq.s32 %p16, %r24, 0;
setp.eq.s32 %p17, %r4, 1;
and.pred %p18, %p17, %p16;
setp.eq.s32 %p19, %r24, 639;
and.pred %p20, %p15, %p19;
or.pred %p21, %p18, %p20;
@%p21 bra $L__BB0_19;
bra.uni $L__BB0_18;
$L__BB0_19:
cvt.u32.u64 %r85, %rd2;
ld.shared.f32 %f306, [%r6];
ld.const.u32 %r86, [opp];
mad.lo.s32 %r87, %r86, 983040, %r85;
mul.wide.s32 %rd39, %r87, 4;
add.s64 %rd40, %rd1, %rd39;
st.global.f32 [%rd40], %f306;
bra.uni $L__BB0_20;
$L__BB0_18:
ld.const.u32 %r75, [e];
add.s32 %r76, %r23, %r75;
mad.lo.s32 %r77, %r24, 1536, %r76;
mul.hi.s32 %r78, %r77, -2004318071;
add.s32 %r79, %r78, %r77;
shr.u32 %r80, %r79, 31;
shr.s32 %r81, %r79, 19;
add.s32 %r82, %r81, %r80;
mul.lo.s32 %r83, %r82, 983040;
sub.s32 %r84, %r77, %r83;
ld.shared.f32 %f305, [%r6];
mul.wide.s32 %rd37, %r84, 4;
add.s64 %rd38, %rd1, %rd37;
st.global.f32 [%rd38], %f305;
$L__BB0_20:
ld.const.u32 %r88, [e+12];
add.s32 %r25, %r88, %r4;
@%p14 bra $L__BB0_24;
setp.eq.s32 %p24, %r25, 0;
and.pred %p26, %p17, %p24;
setp.eq.s32 %p27, %r25, 639;
and.pred %p28, %p15, %p27;
or.pred %p29, %p26, %p28;
@%p29 bra $L__BB0_23;
bra.uni $L__BB0_22;
$L__BB0_23:
cvt.u32.u64 %r100, %rd2;
ld.shared.f32 %f308, [%r6+512];
ld.const.u32 %r101, [opp+4];
mad.lo.s32 %r102, %r101, 983040, %r100;
mul.wide.s32 %rd43, %r102, 4;
add.s64 %rd44, %rd1, %rd43;
st.global.f32 [%rd44], %f308;
bra.uni $L__BB0_24;
$L__BB0_22:
ld.const.u32 %r89, [e+8];
add.s32 %r90, %r23, %r89;
mad.lo.s32 %r91, %r25, 1536, %r90;
mul.hi.s32 %r92, %r91, -2004318071;
add.s32 %r93, %r92, %r91;
shr.u32 %r94, %r93, 31;
shr.s32 %r95, %r93, 19;
add.s32 %r96, %r95, %r94;
mul.lo.s32 %r97, %r96, 983040;
sub.s32 %r98, %r91, %r97;
ld.shared.f32 %f307, [%r6+512];
add.s32 %r99, %r98, 983040;
mul.wide.s32 %rd41, %r99, 4;
add.s64 %rd42, %rd1, %rd41;
st.global.f32 [%rd42], %f307;
$L__BB0_24:
ld.const.u32 %r103, [e+20];
add.s32 %r26, %r103, %r4;
@%p14 bra $L__BB0_28;
setp.eq.s32 %p32, %r26, 0;
and.pred %p34, %p17, %p32;
setp.eq.s32 %p35, %r26, 639;
and.pred %p36, %p15, %p35;
or.pred %p37, %p34, %p36;
@%p37 bra $L__BB0_27;
bra.uni $L__BB0_26;
$L__BB0_27:
cvt.u32.u64 %r115, %rd2;
ld.shared.f32 %f310, [%r6+1024];
ld.const.u32 %r116, [opp+8];
mad.lo.s32 %r117, %r116, 983040, %r115;
mul.wide.s32 %rd47, %r117, 4;
add.s64 %rd48, %rd1, %rd47;
st.global.f32 [%rd48], %f310;
bra.uni $L__BB0_28;
$L__BB0_26:
ld.const.u32 %r104, [e+16];
add.s32 %r105, %r23, %r104;
mad.lo.s32 %r106, %r26, 1536, %r105;
mul.hi.s32 %r107, %r106, -2004318071;
add.s32 %r108, %r107, %r106;
shr.u32 %r109, %r108, 31;
shr.s32 %r110, %r108, 19;
add.s32 %r111, %r110, %r109;
mul.lo.s32 %r112, %r111, 983040;
sub.s32 %r113, %r106, %r112;
ld.shared.f32 %f309, [%r6+1024];
add.s32 %r114, %r113, 1966080;
mul.wide.s32 %rd45, %r114, 4;
add.s64 %rd46, %rd1, %rd45;
st.global.f32 [%rd46], %f309;
$L__BB0_28:
ld.const.u32 %r118, [e+28];
add.s32 %r27, %r118, %r4;
@%p14 bra $L__BB0_32;
setp.eq.s32 %p40, %r27, 0;
and.pred %p42, %p17, %p40;
setp.eq.s32 %p43, %r27, 639;
and.pred %p44, %p15, %p43;
or.pred %p45, %p42, %p44;
@%p45 bra $L__BB0_31;
bra.uni $L__BB0_30;
$L__BB0_31:
cvt.u32.u64 %r130, %rd2;
ld.shared.f32 %f312, [%r6+1536];
ld.const.u32 %r131, [opp+12];
mad.lo.s32 %r132, %r131, 983040, %r130;
mul.wide.s32 %rd51, %r132, 4;
add.s64 %rd52, %rd1, %rd51;
st.global.f32 [%rd52], %f312;
bra.uni $L__BB0_32;
$L__BB0_30:
ld.const.u32 %r119, [e+24];
add.s32 %r120, %r23, %r119;
mad.lo.s32 %r121, %r27, 1536, %r120;
mul.hi.s32 %r122, %r121, -2004318071;
add.s32 %r123, %r122, %r121;
shr.u32 %r124, %r123, 31;
shr.s32 %r125, %r123, 19;
add.s32 %r126, %r125, %r124;
mul.lo.s32 %r127, %r126, 983040;
sub.s32 %r128, %r121, %r127;
ld.shared.f32 %f311, [%r6+1536];
add.s32 %r129, %r128, 2949120;
mul.wide.s32 %rd49, %r129, 4;
add.s64 %rd50, %rd1, %rd49;
st.global.f32 [%rd50], %f311;
$L__BB0_32:
ld.const.u32 %r133, [e+36];
add.s32 %r28, %r133, %r4;
@%p14 bra $L__BB0_36;
setp.eq.s32 %p48, %r28, 0;
and.pred %p50, %p17, %p48;
setp.eq.s32 %p51, %r28, 639;
and.pred %p52, %p15, %p51;
or.pred %p53, %p50, %p52;
@%p53 bra $L__BB0_35;
bra.uni $L__BB0_34;
$L__BB0_35:
cvt.u32.u64 %r145, %rd2;
ld.shared.f32 %f314, [%r6+2048];
ld.const.u32 %r146, [opp+16];
mad.lo.s32 %r147, %r146, 983040, %r145;
mul.wide.s32 %rd55, %r147, 4;
add.s64 %rd56, %rd1, %rd55;
st.global.f32 [%rd56], %f314;
bra.uni $L__BB0_36;
$L__BB0_34:
ld.const.u32 %r134, [e+32];
add.s32 %r135, %r23, %r134;
mad.lo.s32 %r136, %r28, 1536, %r135;
mul.hi.s32 %r137, %r136, -2004318071;
add.s32 %r138, %r137, %r136;
shr.u32 %r139, %r138, 31;
shr.s32 %r140, %r138, 19;
add.s32 %r141, %r140, %r139;
mul.lo.s32 %r142, %r141, 983040;
sub.s32 %r143, %r136, %r142;
ld.shared.f32 %f313, [%r6+2048];
add.s32 %r144, %r143, 3932160;
mul.wide.s32 %rd53, %r144, 4;
add.s64 %rd54, %rd1, %rd53;
st.global.f32 [%rd54], %f313;
$L__BB0_36:
ld.const.u32 %r148, [e+44];
add.s32 %r29, %r148, %r4;
@%p14 bra $L__BB0_40;
setp.eq.s32 %p56, %r29, 0;
and.pred %p58, %p17, %p56;
setp.eq.s32 %p59, %r29, 639;
and.pred %p60, %p15, %p59;
or.pred %p61, %p58, %p60;
@%p61 bra $L__BB0_39;
bra.uni $L__BB0_38;
$L__BB0_39:
cvt.u32.u64 %r160, %rd2;
ld.shared.f32 %f316, [%r6+2560];
ld.const.u32 %r161, [opp+20];
mad.lo.s32 %r162, %r161, 983040, %r160;
mul.wide.s32 %rd59, %r162, 4;
add.s64 %rd60, %rd1, %rd59;
st.global.f32 [%rd60], %f316;
bra.uni $L__BB0_40;
$L__BB0_38:
ld.const.u32 %r149, [e+40];
add.s32 %r150, %r23, %r149;
mad.lo.s32 %r151, %r29, 1536, %r150;
mul.hi.s32 %r152, %r151, -2004318071;
add.s32 %r153, %r152, %r151;
shr.u32 %r154, %r153, 31;
shr.s32 %r155, %r153, 19;
add.s32 %r156, %r155, %r154;
mul.lo.s32 %r157, %r156, 983040;
sub.s32 %r158, %r151, %r157;
ld.shared.f32 %f315, [%r6+2560];
add.s32 %r159, %r158, 4915200;
mul.wide.s32 %rd57, %r159, 4;
add.s64 %rd58, %rd1, %rd57;
st.global.f32 [%rd58], %f315;
$L__BB0_40:
ld.const.u32 %r163, [e+52];
add.s32 %r30, %r163, %r4;
@%p14 bra $L__BB0_44;
setp.eq.s32 %p64, %r30, 0;
and.pred %p66, %p17, %p64;
setp.eq.s32 %p67, %r30, 639;
and.pred %p68, %p15, %p67;
or.pred %p69, %p66, %p68;
@%p69 bra $L__BB0_43;
bra.uni $L__BB0_42;
$L__BB0_43:
cvt.u32.u64 %r175, %rd2;
ld.shared.f32 %f318, [%r6+3072];
ld.const.u32 %r176, [opp+24];
mad.lo.s32 %r177, %r176, 983040, %r175;
mul.wide.s32 %rd63, %r177, 4;
add.s64 %rd64, %rd1, %rd63;
st.global.f32 [%rd64], %f318;
bra.uni $L__BB0_44;
$L__BB0_42:
ld.const.u32 %r164, [e+48];
add.s32 %r165, %r23, %r164;
mad.lo.s32 %r166, %r30, 1536, %r165;
mul.hi.s32 %r167, %r166, -2004318071;
add.s32 %r168, %r167, %r166;
shr.u32 %r169, %r168, 31;
shr.s32 %r170, %r168, 19;
add.s32 %r171, %r170, %r169;
mul.lo.s32 %r172, %r171, 983040;
sub.s32 %r173, %r166, %r172;
ld.shared.f32 %f317, [%r6+3072];
add.s32 %r174, %r173, 5898240;
mul.wide.s32 %rd61, %r174, 4;
add.s64 %rd62, %rd1, %rd61;
st.global.f32 [%rd62], %f317;
$L__BB0_44:
ld.const.u32 %r178, [e+60];
add.s32 %r31, %r178, %r4;
@%p14 bra $L__BB0_48;
setp.eq.s32 %p72, %r31, 0;
and.pred %p74, %p17, %p72;
setp.eq.s32 %p75, %r31, 639;
and.pred %p76, %p15, %p75;
or.pred %p77, %p74, %p76;
@%p77 bra $L__BB0_47;
bra.uni $L__BB0_46;
$L__BB0_47:
cvt.u32.u64 %r190, %rd2;
ld.shared.f32 %f320, [%r6+3584];
ld.const.u32 %r191, [opp+28];
mad.lo.s32 %r192, %r191, 983040, %r190;
mul.wide.s32 %rd67, %r192, 4;
add.s64 %rd68, %rd1, %rd67;
st.global.f32 [%rd68], %f320;
bra.uni $L__BB0_48;
$L__BB0_46:
ld.const.u32 %r179, [e+56];
add.s32 %r180, %r23, %r179;
mad.lo.s32 %r181, %r31, 1536, %r180;
mul.hi.s32 %r182, %r181, -2004318071;
add.s32 %r183, %r182, %r181;
shr.u32 %r184, %r183, 31;
shr.s32 %r185, %r183, 19;
add.s32 %r186, %r185, %r184;
mul.lo.s32 %r187, %r186, 983040;
sub.s32 %r188, %r181, %r187;
ld.shared.f32 %f319, [%r6+3584];
add.s32 %r189, %r188, 6881280;
mul.wide.s32 %rd65, %r189, 4;
add.s64 %rd66, %rd1, %rd65;
st.global.f32 [%rd66], %f319;
$L__BB0_48:
ld.const.u32 %r193, [e+68];
add.s32 %r32, %r193, %r4;
@%p14 bra $L__BB0_52;
setp.eq.s32 %p80, %r32, 0;
and.pred %p82, %p17, %p80;
setp.eq.s32 %p83, %r32, 639;
and.pred %p84, %p15, %p83;
or.pred %p85, %p82, %p84;
@%p85 bra $L__BB0_51;
bra.uni $L__BB0_50;
$L__BB0_51:
cvt.u32.u64 %r205, %rd2;
ld.shared.f32 %f322, [%r6+4096];
ld.const.u32 %r206, [opp+32];
mad.lo.s32 %r207, %r206, 983040, %r205;
mul.wide.s32 %rd71, %r207, 4;
add.s64 %rd72, %rd1, %rd71;
st.global.f32 [%rd72], %f322;
bra.uni $L__BB0_52;
$L__BB0_50:
ld.const.u32 %r194, [e+64];
add.s32 %r195, %r23, %r194;
mad.lo.s32 %r196, %r32, 1536, %r195;
mul.hi.s32 %r197, %r196, -2004318071;
add.s32 %r198, %r197, %r196;
shr.u32 %r199, %r198, 31;
shr.s32 %r200, %r198, 19;
add.s32 %r201, %r200, %r199;
mul.lo.s32 %r202, %r201, 983040;
sub.s32 %r203, %r196, %r202;
ld.shared.f32 %f321, [%r6+4096];
add.s32 %r204, %r203, 7864320;
mul.wide.s32 %rd69, %r204, 4;
add.s64 %rd70, %rd1, %rd69;
st.global.f32 [%rd70], %f321;
$L__BB0_52:
bar.sync 0;
ld.global.u8 %rs11, [%rd6];
and.b16 %rs7, %rs11, 10;
setp.ne.s16 %p86, %rs7, 10;
@%p86 bra $L__BB0_58;
cvta.to.global.u64 %rd76, %rd25;
shl.b64 %rd77, %rd3, 2;
add.s64 %rd78, %rd76, %rd77;
ld.global.u32 %r209, [%rd78];
cvta.to.global.u64 %rd79, %rd26;
mul.wide.s32 %rd80, %r209, 4;
add.s64 %rd81, %rd79, %rd80;
ld.global.f32 %f323, [%rd78+36];
ld.global.f32 %f324, [%rd81];
mul.f32 %f37, %f324, %f323;
ld.global.f32 %f325, [%rd78+40];
mul.f32 %f38, %f324, %f325;
shl.b32 %r210, %r209, 3;
mov.u32 %r211, _ZZ7OneStepE9obs_share;
add.s32 %r33, %r211, %r210;
add.s32 %r212, %r256, %r5;
add.s32 %r213, %r212, %r1;
mul.wide.s32 %rd82, %r213, 4;
add.s64 %rd83, %rd1, %rd82;
add.s64 %rd105, %rd83, 3932160;
add.s32 %r252, %r213, 983040;
mov.u32 %r251, 983040;
add.s64 %rd104, %rd78, 4;
mov.u64 %rd103, opp;
mov.u64 %rd102, w;
mov.u64 %rd101, e;
$L__BB0_54:
ld.const.u32 %r38, [%rd101+8];
add.s32 %r214, %r38, %r3;
ld.const.u32 %r39, [%rd101+12];
add.s32 %r215, %r39, %r4;
mad.lo.s32 %r40, %r215, 1536, %r214;
cvt.s64.s32 %rd84, %r40;
add.s64 %rd85, %rd5, %rd84;
ld.global.u8 %rs8, [%rd85];
and.b16 %rs9, %rs8, 1;
setp.eq.b16 %p87, %rs9, 1;
mov.pred %p88, 0;
xor.pred %p89, %p87, %p88;
not.pred %p90, %p89;
@%p90 bra $L__BB0_56;
cvt.u32.u64 %r216, %rd2;
ld.const.f32 %f326, [%rd102+4];
mul.f32 %f327, %f326, 0f40C00000;
cvt.rn.f32.s32 %f328, %r38;
cvt.rn.f32.s32 %f329, %r39;
mul.f32 %f330, %f38, %f329;
fma.rn.f32 %f331, %f37, %f328, %f330;
mul.f32 %f332, %f327, %f331;
ld.const.u32 %r217, [%rd103+4];
mul.lo.s32 %r218, %r217, 983040;
add.s32 %r219, %r218, %r216;
mul.wide.s32 %rd86, %r219, 4;
add.s64 %rd87, %rd1, %rd86;
ld.global.f32 %f333, [%rd87];
ld.global.f32 %f334, [%rd104];
mov.f32 %f335, 0f3F800000;
sub.f32 %f336, %f335, %f334;
add.s32 %r220, %r218, %r40;
mul.wide.s32 %rd88, %r220, 4;
add.s64 %rd89, %rd1, %rd88;
ld.global.f32 %f337, [%rd89];
mul.f32 %f338, %f336, %f337;
fma.rn.f32 %f339, %f334, %f333, %f338;
shl.b32 %r221, %r38, 1;
mad.lo.s32 %r222, %r39, 3072, %r221;
add.s32 %r223, %r252, %r222;
mul.wide.s32 %rd90, %r223, 4;
add.s64 %rd91, %rd1, %rd90;
ld.global.f32 %f340, [%rd91];
fma.rn.f32 %f341, %f334, %f340, %f339;
add.f32 %f342, %f332, %f341;
add.f32 %f343, %f334, 0f3F800000;
div.rn.f32 %f344, %f342, %f343;
mul.lo.s32 %r224, %r39, 1536;
add.s32 %r225, %r38, %r224;
add.s32 %r226, %r252, %r225;
mul.wide.s32 %rd92, %r226, 4;
add.s64 %rd93, %rd1, %rd92;
st.global.f32 [%rd93], %f344;
mul.f32 %f345, %f37, %f332;
st.global.f32 [%rd105], %f345;
mul.f32 %f346, %f38, %f332;
neg.s32 %r227, %r38;
sub.s32 %r228, %r227, %r224;
add.s32 %r229, %r252, %r228;
mul.wide.s32 %rd94, %r229, 4;
add.s64 %rd95, %rd1, %rd94;
st.global.f32 [%rd95], %f346;
ld.global.f32 %f347, [%rd87];
ld.global.f32 %f348, [%rd93];
add.f32 %f349, %f348, %f347;
mul.f32 %f350, %f349, %f328;
ld.global.f32 %f351, [%rd105];
sub.f32 %f352, %f351, %f350;
atom.shared.add.f32 %f353, [%r33], %f352;
mul.f32 %f354, %f349, %f329;
sub.f32 %f355, %f346, %f354;
add.s32 %r244, %r33, 4;
atom.shared.add.f32 %f356, [%r244], %f355;
$L__BB0_56:
add.s64 %rd105, %rd105, 3932160;
add.s32 %r252, %r252, 983040;
add.s64 %rd104, %rd104, 4;
add.s64 %rd103, %rd103, 4;
add.s64 %rd102, %rd102, 4;
add.s64 %rd101, %rd101, 8;
add.s32 %r251, %r251, 983040;
setp.ne.s32 %p91, %r251, 8847360;
@%p91 bra $L__BB0_54;
ld.global.u8 %rs11, [%rd6];
$L__BB0_58:
and.b16 %rs10, %rs11, 16;
setp.eq.s16 %p92, %rs10, 0;
@%p92 bra $L__BB0_60;
cvt.u32.u64 %r230, %rd3;
add.f32 %f357, %f392, %f388;
add.f32 %f358, %f357, %f385;
sub.f32 %f359, %f358, %f390;
sub.f32 %f360, %f359, %f387;
sub.f32 %f361, %f360, %f386;
add.f32 %f362, %f391, %f388;
add.f32 %f363, %f362, %f387;
sub.f32 %f364, %f363, %f389;
sub.f32 %f365, %f364, %f386;
sub.f32 %f366, %f365, %f385;
shl.b32 %r231, %r230, 3;
mov.u32 %r232, _ZZ7OneStepE9obs_share;
add.s32 %r233, %r232, %r231;
atom.shared.add.f32 %f367, [%r233], %f361;
add.s32 %r234, %r233, 4;
atom.shared.add.f32 %f368, [%r234], %f366;
$L__BB0_60:
bar.sync 0;
@%p1 bra $L__BB0_67;
max.s32 %r235, %r256, -114;
add.s32 %r236, %r235, 127;
sub.s32 %r43, %r236, %r256;
shr.u32 %r237, %r43, 7;
add.s32 %r238, %r237, 1;
and.b32 %r255, %r238, 3;
setp.eq.s32 %p94, %r255, 0;
@%p94 bra $L__BB0_64;
mov.u32 %r240, _ZZ7OneStepE9obs_share;
add.s32 %r253, %r240, %r61;
mul.wide.s32 %rd96, %r256, 4;
add.s64 %rd106, %rd4, %rd96;
$L__BB0_63:
.pragma "nounroll";
ld.shared.f32 %f369, [%r253];
atom.global.add.f32 %f370, [%rd106], %f369;
add.s32 %r256, %r256, 128;
add.s32 %r253, %r253, 512;
add.s64 %rd106, %rd106, 512;
add.s32 %r255, %r255, -1;
setp.ne.s32 %p95, %r255, 0;
@%p95 bra $L__BB0_63;
$L__BB0_64:
setp.lt.u32 %p96, %r43, 384;
@%p96 bra $L__BB0_67;
add.s32 %r258, %r256, -512;
mul.wide.s32 %rd97, %r256, 4;
add.s64 %rd107, %rd4, %rd97;
shl.b32 %r241, %r256, 2;
mov.u32 %r242, _ZZ7OneStepE9obs_share;
add.s32 %r243, %r242, %r241;
add.s32 %r257, %r243, 1024;
$L__BB0_66:
ld.shared.f32 %f371, [%r257+-1024];
atom.global.add.f32 %f372, [%rd107], %f371;
ld.shared.f32 %f373, [%r257+-512];
add.s64 %rd98, %rd107, 512;
atom.global.add.f32 %f374, [%rd98], %f373;
ld.shared.f32 %f375, [%r257];
add.s64 %rd99, %rd107, 1024;
atom.global.add.f32 %f376, [%rd99], %f375;
ld.shared.f32 %f377, [%r257+512];
add.s64 %rd100, %rd107, 1536;
atom.global.add.f32 %f378, [%rd100], %f377;
add.s64 %rd107, %rd107, 2048;
add.s32 %r257, %r257, 2048;
add.s32 %r258, %r258, 512;
setp.lt.s32 %p97, %r258, -498;
@%p97 bra $L__BB0_66;
$L__BB0_67:
ret;
}
// .globl InitTubeFlow
.visible .entry InitTubeFlow(
.param .u64 InitTubeFlow_param_0,
.param .u64 InitTubeFlow_param_1
)
{
.reg .pred %p<8>;
.reg .b16 %rs<5>;
.reg .f32 %f<59>;
.reg .b32 %r<31>;
.reg .f64 %fd<92>;
.reg .b64 %rd<9>;
// demoted variable
.shared .align 4 .b8 _ZZ12InitTubeFlowE7f_share[4608];
// demoted variable
.shared .align 1 .b8 _ZZ12InitTubeFlowE10flag_share[128];
ld.param.u64 %rd3, [InitTubeFlow_param_0];
ld.param.u64 %rd4, [InitTubeFlow_param_1];
cvta.to.global.u64 %rd5, %rd4;
mov.u32 %r4, %ctaid.x;
shl.b32 %r5, %r4, 7;
mov.u32 %r6, %tid.x;
add.s32 %r7, %r5, %r6;
mov.u32 %r1, %ctaid.y;
mad.lo.s32 %r8, %r1, 1536, %r7;
cvt.s64.s32 %rd6, %r8;
cvta.to.global.u64 %rd7, %rd3;
add.s64 %rd1, %rd7, %rd6;
ld.global.u8 %rs1, [%rd1];
mov.u32 %r9, _ZZ12InitTubeFlowE10flag_share;
add.s32 %r2, %r9, %r6;
st.shared.u8 [%r2], %rs1;
mul.wide.s32 %rd8, %r8, 4;
add.s64 %rd2, %rd5, %rd8;
ld.global.f32 %f3, [%rd2];
shl.b32 %r10, %r6, 2;
mov.u32 %r11, _ZZ12InitTubeFlowE7f_share;
add.s32 %r3, %r11, %r10;
st.shared.f32 [%r3], %f3;
ld.global.f32 %f4, [%rd2+3932160];
st.shared.f32 [%r3+512], %f4;
ld.global.f32 %f5, [%rd2+7864320];
st.shared.f32 [%r3+1024], %f5;
ld.global.f32 %f6, [%rd2+11796480];
st.shared.f32 [%r3+1536], %f6;
ld.global.f32 %f7, [%rd2+15728640];
st.shared.f32 [%r3+2048], %f7;
ld.global.f32 %f8, [%rd2+19660800];
st.shared.f32 [%r3+2560], %f8;
ld.global.f32 %f9, [%rd2+23592960];
st.shared.f32 [%r3+3072], %f9;
ld.global.f32 %f10, [%rd2+27525120];
st.shared.f32 [%r3+3584], %f10;
ld.global.f32 %f11, [%rd2+31457280];
st.shared.f32 [%r3+4096], %f11;
bar.sync 0;
setp.eq.s32 %p1, %r1, 0;
setp.eq.s32 %p2, %r1, 639;
or.pred %p3, %p1, %p2;
setp.eq.s32 %p4, %r7, 0;
or.pred %p5, %p3, %p4;
setp.eq.s32 %p6, %r7, 1535;
or.pred %p7, %p6, %p5;
@%p7 bra $L__BB1_2;
bra.uni $L__BB1_1;
$L__BB1_2:
mov.u16 %rs3, 2;
st.shared.u8 [%r2], %rs3;
mov.f32 %f58, 0f00000000;
mov.u32 %r30, 0;
st.shared.u32 [%r3], %r30;
st.shared.u32 [%r3+512], %r30;
st.shared.u32 [%r3+1024], %r30;
st.shared.u32 [%r3+1536], %r30;
st.shared.u32 [%r3+2048], %r30;
st.shared.u32 [%r3+2560], %r30;
st.shared.u32 [%r3+3072], %r30;
st.shared.u32 [%r3+3584], %r30;
bra.uni $L__BB1_3;
$L__BB1_1:
cvt.rn.f64.s32 %fd1, %r1;
add.f64 %fd2, %fd1, 0dC073F80000000000;
mul.f64 %fd3, %fd2, 0dC010000000000000;
mul.f64 %fd4, %fd2, %fd3;
div.rn.f64 %fd5, %fd4, 0d4118D81000000000;
add.f64 %fd6, %fd5, 0d3FF0000000000000;
mul.f64 %fd7, %fd6, 0d3F8EB851EB851EB8;
cvt.rn.f32.f64 %f12, %fd7;
mov.u16 %rs2, 1;
st.shared.u8 [%r2], %rs2;
cvt.f64.f32 %fd8, %f12;
mul.f64 %fd9, %fd8, 0d3FF8000000000000;
mul.f64 %fd10, %fd9, %fd8;
ld.const.f32 %f13, [w];
cvt.f64.f32 %fd11, %f13;
ld.const.u32 %r12, [e];
mul.lo.s32 %r13, %r12, 3;
cvt.rn.f32.s32 %f14, %r13;
mul.f32 %f15, %f12, %f14;
cvt.f64.f32 %fd12, %f15;
cvt.rn.f64.s32 %fd13, %r12;
mul.f64 %fd14, %fd13, 0d4012000000000000;
mul.f64 %fd15, %fd14, %fd13;
mul.f64 %fd16, %fd15, %fd8;
fma.rn.f64 %fd17, %fd16, %fd8, %fd12;
sub.f64 %fd18, %fd17, %fd10;
mul.f64 %fd19, %fd18, %fd11;
cvt.rn.f32.f64 %f16, %fd19;
st.shared.f32 [%r3], %f16;
ld.const.f32 %f17, [w+4];
cvt.f64.f32 %fd20, %f17;
ld.const.u32 %r14, [e+8];
mul.lo.s32 %r15, %r14, 3;
cvt.rn.f32.s32 %f18, %r15;
mul.f32 %f19, %f12, %f18;
cvt.f64.f32 %fd21, %f19;
cvt.rn.f64.s32 %fd22, %r14;
mul.f64 %fd23, %fd22, 0d4012000000000000;
mul.f64 %fd24, %fd23, %fd22;
mul.f64 %fd25, %fd24, %fd8;
fma.rn.f64 %fd26, %fd25, %fd8, %fd21;
sub.f64 %fd27, %fd26, %fd10;
mul.f64 %fd28, %fd27, %fd20;
cvt.rn.f32.f64 %f20, %fd28;
st.shared.f32 [%r3+512], %f20;
ld.const.f32 %f21, [w+8];
cvt.f64.f32 %fd29, %f21;
ld.const.u32 %r16, [e+16];
mul.lo.s32 %r17, %r16, 3;
cvt.rn.f32.s32 %f22, %r17;
mul.f32 %f23, %f12, %f22;
cvt.f64.f32 %fd30, %f23;
cvt.rn.f64.s32 %fd31, %r16;
mul.f64 %fd32, %fd31, 0d4012000000000000;
mul.f64 %fd33, %fd32, %fd31;
mul.f64 %fd34, %fd33, %fd8;
fma.rn.f64 %fd35, %fd34, %fd8, %fd30;
sub.f64 %fd36, %fd35, %fd10;
mul.f64 %fd37, %fd36, %fd29;
cvt.rn.f32.f64 %f24, %fd37;
st.shared.f32 [%r3+1024], %f24;
ld.const.f32 %f25, [w+12];
cvt.f64.f32 %fd38, %f25;
ld.const.u32 %r18, [e+24];
mul.lo.s32 %r19, %r18, 3;
cvt.rn.f32.s32 %f26, %r19;
mul.f32 %f27, %f12, %f26;
cvt.f64.f32 %fd39, %f27;
cvt.rn.f64.s32 %fd40, %r18;
mul.f64 %fd41, %fd40, 0d4012000000000000;
mul.f64 %fd42, %fd41, %fd40;
mul.f64 %fd43, %fd42, %fd8;
fma.rn.f64 %fd44, %fd43, %fd8, %fd39;
sub.f64 %fd45, %fd44, %fd10;
mul.f64 %fd46, %fd45, %fd38;
cvt.rn.f32.f64 %f28, %fd46;
st.shared.f32 [%r3+1536], %f28;
ld.const.f32 %f29, [w+16];
cvt.f64.f32 %fd47, %f29;
ld.const.u32 %r20, [e+32];
mul.lo.s32 %r21, %r20, 3;
cvt.rn.f32.s32 %f30, %r21;
mul.f32 %f31, %f12, %f30;
cvt.f64.f32 %fd48, %f31;
cvt.rn.f64.s32 %fd49, %r20;
mul.f64 %fd50, %fd49, 0d4012000000000000;
mul.f64 %fd51, %fd50, %fd49;
mul.f64 %fd52, %fd51, %fd8;
fma.rn.f64 %fd53, %fd52, %fd8, %fd48;
sub.f64 %fd54, %fd53, %fd10;
mul.f64 %fd55, %fd54, %fd47;
cvt.rn.f32.f64 %f32, %fd55;
st.shared.f32 [%r3+2048], %f32;
ld.const.f32 %f33, [w+20];
cvt.f64.f32 %fd56, %f33;
ld.const.u32 %r22, [e+40];
mul.lo.s32 %r23, %r22, 3;
cvt.rn.f32.s32 %f34, %r23;
mul.f32 %f35, %f12, %f34;
cvt.f64.f32 %fd57, %f35;
cvt.rn.f64.s32 %fd58, %r22;
mul.f64 %fd59, %fd58, 0d4012000000000000;
mul.f64 %fd60, %fd59, %fd58;
mul.f64 %fd61, %fd60, %fd8;
fma.rn.f64 %fd62, %fd61, %fd8, %fd57;
sub.f64 %fd63, %fd62, %fd10;
mul.f64 %fd64, %fd63, %fd56;
cvt.rn.f32.f64 %f36, %fd64;
st.shared.f32 [%r3+2560], %f36;
ld.const.f32 %f37, [w+24];
cvt.f64.f32 %fd65, %f37;
ld.const.u32 %r24, [e+48];
mul.lo.s32 %r25, %r24, 3;
cvt.rn.f32.s32 %f38, %r25;
mul.f32 %f39, %f12, %f38;
cvt.f64.f32 %fd66, %f39;
cvt.rn.f64.s32 %fd67, %r24;
mul.f64 %fd68, %fd67, 0d4012000000000000;
mul.f64 %fd69, %fd68, %fd67;
mul.f64 %fd70, %fd69, %fd8;
fma.rn.f64 %fd71, %fd70, %fd8, %fd66;
sub.f64 %fd72, %fd71, %fd10;
mul.f64 %fd73, %fd72, %fd65;
cvt.rn.f32.f64 %f40, %fd73;
st.shared.f32 [%r3+3072], %f40;
ld.const.f32 %f41, [w+28];
cvt.f64.f32 %fd74, %f41;
ld.const.u32 %r26, [e+56];
mul.lo.s32 %r27, %r26, 3;
cvt.rn.f32.s32 %f42, %r27;
mul.f32 %f43, %f12, %f42;
cvt.f64.f32 %fd75, %f43;
cvt.rn.f64.s32 %fd76, %r26;
mul.f64 %fd77, %fd76, 0d4012000000000000;
mul.f64 %fd78, %fd77, %fd76;
mul.f64 %fd79, %fd78, %fd8;
fma.rn.f64 %fd80, %fd79, %fd8, %fd75;
sub.f64 %fd81, %fd80, %fd10;
mul.f64 %fd82, %fd81, %fd74;
cvt.rn.f32.f64 %f44, %fd82;
st.shared.f32 [%r3+3584], %f44;
ld.const.f32 %f45, [w+32];
cvt.f64.f32 %fd83, %f45;
ld.const.u32 %r28, [e+64];
mul.lo.s32 %r29, %r28, 3;
cvt.rn.f32.s32 %f46, %r29;
mul.f32 %f47, %f12, %f46;
cvt.f64.f32 %fd84, %f47;
cvt.rn.f64.s32 %fd85, %r28;
mul.f64 %fd86, %fd85, 0d4012000000000000;
mul.f64 %fd87, %fd86, %fd85;
mul.f64 %fd88, %fd87, %fd8;
fma.rn.f64 %fd89, %fd88, %fd8, %fd84;
sub.f64 %fd90, %fd89, %fd10;
mul.f64 %fd91, %fd90, %fd83;
cvt.rn.f32.f64 %f58, %fd91;
$L__BB1_3:
st.shared.f32 [%r3+4096], %f58;
bar.sync 0;
ld.shared.u8 %rs4, [%r2];
st.global.u8 [%rd1], %rs4;
ld.shared.f32 %f49, [%r3];
st.global.f32 [%rd2], %f49;
ld.shared.f32 %f50, [%r3+512];
st.global.f32 [%rd2+3932160], %f50;
ld.shared.f32 %f51, [%r3+1024];
st.global.f32 [%rd2+7864320], %f51;
ld.shared.f32 %f52, [%r3+1536];
st.global.f32 [%rd2+11796480], %f52;
ld.shared.f32 %f53, [%r3+2048];
st.global.f32 [%rd2+15728640], %f53;
ld.shared.f32 %f54, [%r3+2560];
st.global.f32 [%rd2+19660800], %f54;
ld.shared.f32 %f55, [%r3+3072];
st.global.f32 [%rd2+23592960], %f55;
ld.shared.f32 %f56, [%r3+3584];
st.global.f32 [%rd2+27525120], %f56;
ld.shared.f32 %f57, [%r3+4096];
st.global.f32 [%rd2+31457280], %f57;
ret;
}