// // Generated by NVIDIA NVVM Compiler // // Compiler Build ID: CL-31968024 // Cuda compilation tools, release 12.0, V12.0.76 // Based on NVVM 7.0.1 // .version 8.0 .target sm_52 .address_size 64 // .globl oxMain .const .align 16 .b8 params[1184]; .visible .entry oxMain() { .reg .pred %p<2>; .reg .b16 %rs<53>; .reg .f32 %f<134>; .reg .b32 %r<42>; .reg .b64 %rd<45>; mov.u32 %r3, %ctaid.x; mov.u32 %r4, %ntid.x; mov.u32 %r5, %tid.x; mad.lo.s32 %r1, %r3, %r4, %r5; mov.u32 %r6, %ntid.y; mov.u32 %r7, %ctaid.y; mov.u32 %r8, %tid.y; mad.lo.s32 %r2, %r7, %r6, %r8; ld.const.u64 %rd4, [params+784]; cvta.to.global.u64 %rd5, %rd4; ld.const.u32 %r9, [params+776]; mad.lo.s32 %r10, %r9, %r2, %r1; mul.wide.u32 %rd6, %r10, 8; add.s64 %rd7, %rd5, %rd6; ld.global.u16 %rs1, [%rd7]; // begin inline asm { cvt.f32.f16 %f11, %rs1;} // end inline asm ld.global.u16 %rs2, [%rd7+2]; // begin inline asm { cvt.f32.f16 %f12, %rs2;} // end inline asm ld.global.u16 %rs3, [%rd7+4]; // begin inline asm { cvt.f32.f16 %f13, %rs3;} // end inline asm ld.const.u64 %rd8, [params+800]; cvta.to.global.u64 %rd9, %rd8; ld.const.u32 %r11, [params+792]; mad.lo.s32 %r12, %r11, %r2, %r1; mul.wide.u32 %rd10, %r12, 8; add.s64 %rd11, %rd9, %rd10; ld.global.u16 %rs4, [%rd11]; // begin inline asm { cvt.f32.f16 %f14, %rs4;} // end inline asm ld.global.u16 %rs5, [%rd11+2]; // begin inline asm { cvt.f32.f16 %f15, %rs5;} // end inline asm ld.global.u16 %rs6, [%rd11+4]; // begin inline asm { cvt.f32.f16 %f16, %rs6;} // end inline asm fma.rn.f32 %f41, %f14, 0f40000000, 0fBF800000; fma.rn.f32 %f42, %f15, 0f40000000, 0fBF800000; fma.rn.f32 %f43, %f16, 0f40000000, 0fBF800000; ld.const.u64 %rd12, [params+816]; cvta.to.global.u64 %rd13, %rd12; ld.const.u32 %r13, [params+808]; mad.lo.s32 %r14, %r13, %r2, %r1; mul.wide.u32 %rd14, %r14, 8; add.s64 %rd15, %rd13, %rd14; ld.global.u16 %rs7, [%rd15]; // begin inline asm { cvt.f32.f16 %f17, %rs7;} // end inline asm ld.global.u16 %rs8, [%rd15+2]; // begin inline asm { cvt.f32.f16 %f18, %rs8;} // end inline asm ld.global.u16 %rs9, [%rd15+4]; // begin inline asm { cvt.f32.f16 %f19, %rs9;} // end inline asm fma.rn.f32 %f44, %f17, 0f40000000, 0fBF800000; fma.rn.f32 %f45, %f18, 0f40000000, 0fBF800000; fma.rn.f32 %f46, %f19, 0f40000000, 0fBF800000; ld.const.u64 %rd16, [params+832]; cvta.to.global.u64 %rd17, %rd16; ld.const.u32 %r15, [params+824]; mad.lo.s32 %r16, %r15, %r2, %r1; mul.wide.u32 %rd18, %r16, 8; add.s64 %rd19, %rd17, %rd18; ld.global.u16 %rs10, [%rd19]; // begin inline asm { cvt.f32.f16 %f20, %rs10;} // end inline asm ld.global.u16 %rs11, [%rd19+2]; // begin inline asm { cvt.f32.f16 %f21, %rs11;} // end inline asm ld.global.u16 %rs12, [%rd19+4]; // begin inline asm { cvt.f32.f16 %f22, %rs12;} // end inline asm fma.rn.f32 %f47, %f20, 0f40000000, 0fBF800000; fma.rn.f32 %f48, %f21, 0f40000000, 0fBF800000; fma.rn.f32 %f49, %f22, 0f40000000, 0fBF800000; ld.const.u64 %rd20, [params+928]; cvta.to.global.u64 %rd21, %rd20; ld.const.u32 %r17, [params+920]; mad.lo.s32 %r18, %r17, %r2, %r1; mul.wide.u32 %rd22, %r18, 8; add.s64 %rd23, %rd21, %rd22; ld.global.u16 %rs13, [%rd23]; // begin inline asm { cvt.f32.f16 %f23, %rs13;} // end inline asm ld.global.u16 %rs14, [%rd23+2]; // begin inline asm { cvt.f32.f16 %f24, %rs14;} // end inline asm ld.global.u16 %rs15, [%rd23+4]; // begin inline asm { cvt.f32.f16 %f25, %rs15;} // end inline asm ld.const.u64 %rd24, [params+944]; cvta.to.global.u64 %rd25, %rd24; ld.const.u32 %r19, [params+936]; mad.lo.s32 %r20, %r19, %r2, %r1; mul.wide.u32 %rd26, %r20, 8; add.s64 %rd1, %rd25, %rd26; ld.global.u16 %rs16, [%rd1]; // begin inline asm { cvt.f32.f16 %f26, %rs16;} // end inline asm ld.global.u16 %rs17, [%rd1+2]; // begin inline asm { cvt.f32.f16 %f27, %rs17;} // end inline asm ld.global.u16 %rs18, [%rd1+4]; // begin inline asm { cvt.f32.f16 %f28, %rs18;} // end inline asm fma.rn.f32 %f50, %f26, 0f40000000, 0fBF800000; fma.rn.f32 %f51, %f27, 0f40000000, 0fBF800000; fma.rn.f32 %f52, %f28, 0f40000000, 0fBF800000; mul.f32 %f53, %f23, %f50; mul.f32 %f54, %f24, %f51; mul.f32 %f55, %f25, %f52; ld.const.u64 %rd27, [params+960]; cvta.to.global.u64 %rd28, %rd27; ld.const.u32 %r21, [params+952]; mad.lo.s32 %r22, %r21, %r2, %r1; mul.wide.u32 %rd29, %r22, 8; add.s64 %rd2, %rd28, %rd29; ld.global.u16 %rs19, [%rd2]; // begin inline asm { cvt.f32.f16 %f29, %rs19;} // end inline asm ld.global.u16 %rs20, [%rd2+2]; // begin inline asm { cvt.f32.f16 %f30, %rs20;} // end inline asm ld.global.u16 %rs21, [%rd2+4]; // begin inline asm { cvt.f32.f16 %f31, %rs21;} // end inline asm fma.rn.f32 %f56, %f29, 0f40000000, 0fBF800000; fma.rn.f32 %f57, %f30, 0f40000000, 0fBF800000; fma.rn.f32 %f58, %f31, 0f40000000, 0fBF800000; mul.f32 %f59, %f23, %f56; mul.f32 %f60, %f24, %f57; mul.f32 %f61, %f25, %f58; ld.const.u64 %rd30, [params+976]; cvta.to.global.u64 %rd31, %rd30; ld.const.u32 %r23, [params+968]; mad.lo.s32 %r24, %r23, %r2, %r1; mul.wide.u32 %rd32, %r24, 8; add.s64 %rd3, %rd31, %rd32; ld.global.u16 %rs22, [%rd3]; // begin inline asm { cvt.f32.f16 %f32, %rs22;} // end inline asm ld.global.u16 %rs23, [%rd3+2]; // begin inline asm { cvt.f32.f16 %f33, %rs23;} // end inline asm ld.global.u16 %rs24, [%rd3+4]; // begin inline asm { cvt.f32.f16 %f34, %rs24;} // end inline asm fma.rn.f32 %f62, %f32, 0f40000000, 0fBF800000; fma.rn.f32 %f63, %f33, 0f40000000, 0fBF800000; fma.rn.f32 %f64, %f34, 0f40000000, 0fBF800000; mul.f32 %f65, %f23, %f62; mul.f32 %f66, %f24, %f63; mul.f32 %f67, %f25, %f64; ld.global.u16 %rs25, [%rd7+6]; // begin inline asm { cvt.f32.f16 %f35, %rs25;} // end inline asm ld.global.u16 %rs26, [%rd23+6]; // begin inline asm { cvt.f32.f16 %f36, %rs26;} // end inline asm min.f32 %f40, %f35, %f36; add.f32 %f68, %f11, %f23; add.f32 %f69, %f12, %f24; add.f32 %f70, %f13, %f25; fma.rn.f32 %f71, %f11, %f41, %f53; fma.rn.f32 %f72, %f12, %f42, %f54; fma.rn.f32 %f73, %f13, %f43, %f55; fma.rn.f32 %f74, %f11, %f44, %f59; fma.rn.f32 %f75, %f12, %f45, %f60; fma.rn.f32 %f76, %f13, %f46, %f61; fma.rn.f32 %f77, %f11, %f47, %f65; fma.rn.f32 %f78, %f12, %f48, %f66; fma.rn.f32 %f79, %f13, %f49, %f67; mov.f32 %f80, 0f34000000; max.f32 %f81, %f68, %f80; max.f32 %f82, %f69, %f80; max.f32 %f83, %f70, %f80; div.rn.f32 %f84, %f71, %f81; div.rn.f32 %f85, %f72, %f82; div.rn.f32 %f86, %f73, %f83; fma.rn.f32 %f87, %f84, 0f3F000000, 0f3F000000; fma.rn.f32 %f88, %f85, 0f3F000000, 0f3F000000; fma.rn.f32 %f89, %f86, 0f3F000000, 0f3F000000; div.rn.f32 %f90, %f74, %f81; div.rn.f32 %f91, %f75, %f82; div.rn.f32 %f92, %f76, %f83; fma.rn.f32 %f93, %f90, 0f3F000000, 0f3F000000; fma.rn.f32 %f94, %f91, 0f3F000000, 0f3F000000; fma.rn.f32 %f95, %f92, 0f3F000000, 0f3F000000; div.rn.f32 %f96, %f77, %f81; div.rn.f32 %f97, %f78, %f82; div.rn.f32 %f98, %f79, %f83; fma.rn.f32 %f99, %f96, 0f3F000000, 0f3F000000; fma.rn.f32 %f100, %f97, 0f3F000000, 0f3F000000; fma.rn.f32 %f101, %f98, 0f3F000000, 0f3F000000; mul.f32 %f37, %f68, %f40; mul.f32 %f38, %f69, %f40; mul.f32 %f39, %f70, %f40; mul.f32 %f2, %f40, %f87; mul.f32 %f3, %f40, %f88; mul.f32 %f4, %f40, %f89; mul.f32 %f5, %f40, %f93; mul.f32 %f6, %f40, %f94; mul.f32 %f7, %f40, %f95; mul.f32 %f8, %f40, %f99; mul.f32 %f9, %f40, %f100; mul.f32 %f10, %f40, %f101; // begin inline asm { cvt.rn.f16.f32 %rs29, %f39;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs28, %f38;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs27, %f37;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs30, %f40;} // end inline asm st.global.v4.u16 [%rd23], {%rs27, %rs28, %rs29, %rs30}; ld.const.u32 %r25, [params+1112]; setp.gt.s32 %p1, %r25, 0; @%p1 bra $L__BB0_2; bra.uni $L__BB0_1; $L__BB0_2: mul.f32 %f114, %f2, 0f437F0000; mov.f32 %f115, 0f437F0000; min.f32 %f116, %f114, %f115; mul.f32 %f117, %f3, 0f437F0000; min.f32 %f118, %f117, %f115; mul.f32 %f119, %f4, 0f437F0000; min.f32 %f120, %f119, %f115; mul.f32 %f121, %f5, 0f437F0000; min.f32 %f122, %f121, %f115; mul.f32 %f123, %f6, 0f437F0000; min.f32 %f124, %f123, %f115; mul.f32 %f125, %f7, 0f437F0000; min.f32 %f126, %f125, %f115; mul.f32 %f127, %f8, 0f437F0000; min.f32 %f128, %f127, %f115; mul.f32 %f129, %f9, 0f437F0000; min.f32 %f130, %f129, %f115; mul.f32 %f131, %f10, 0f437F0000; min.f32 %f132, %f131, %f115; ld.const.u64 %rd33, [params+1072]; cvta.to.global.u64 %rd34, %rd33; ld.const.u32 %r26, [params+1064]; mad.lo.s32 %r27, %r26, %r2, %r1; cvt.rzi.u32.f32 %r28, %f116; cvt.rzi.u32.f32 %r29, %f118; cvt.rzi.u32.f32 %r30, %f120; mul.f32 %f133, %f40, 0f437F0000; cvt.rzi.u32.f32 %r31, %f133; mul.wide.u32 %rd35, %r27, 4; add.s64 %rd36, %rd34, %rd35; cvt.u16.u32 %rs43, %r30; cvt.u16.u32 %rs44, %r29; cvt.u16.u32 %rs45, %r28; cvt.u16.u32 %rs46, %r31; st.global.v4.u8 [%rd36], {%rs45, %rs44, %rs43, %rs46}; ld.const.u64 %rd37, [params+1088]; cvta.to.global.u64 %rd38, %rd37; ld.const.u32 %r32, [params+1080]; mad.lo.s32 %r33, %r32, %r2, %r1; cvt.rzi.u32.f32 %r34, %f122; cvt.rzi.u32.f32 %r35, %f124; cvt.rzi.u32.f32 %r36, %f126; mul.wide.u32 %rd39, %r33, 4; add.s64 %rd40, %rd38, %rd39; cvt.u16.u32 %rs47, %r36; cvt.u16.u32 %rs48, %r35; cvt.u16.u32 %rs49, %r34; st.global.v4.u8 [%rd40], {%rs49, %rs48, %rs47, %rs46}; ld.const.u64 %rd41, [params+1104]; cvta.to.global.u64 %rd42, %rd41; ld.const.u32 %r37, [params+1096]; mad.lo.s32 %r38, %r37, %r2, %r1; cvt.rzi.u32.f32 %r39, %f128; cvt.rzi.u32.f32 %r40, %f130; cvt.rzi.u32.f32 %r41, %f132; mul.wide.u32 %rd43, %r38, 4; add.s64 %rd44, %rd42, %rd43; cvt.u16.u32 %rs50, %r41; cvt.u16.u32 %rs51, %r40; cvt.u16.u32 %rs52, %r39; st.global.v4.u8 [%rd44], {%rs52, %rs51, %rs50, %rs46}; bra.uni $L__BB0_3; $L__BB0_1: cvt.sat.f32.f32 %f102, %f2; cvt.sat.f32.f32 %f103, %f3; cvt.sat.f32.f32 %f104, %f4; // begin inline asm { cvt.rn.f16.f32 %rs34, %f40;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs33, %f104;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs32, %f103;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs31, %f102;} // end inline asm st.global.v4.u16 [%rd1], {%rs31, %rs32, %rs33, %rs34}; cvt.sat.f32.f32 %f106, %f5; cvt.sat.f32.f32 %f107, %f6; cvt.sat.f32.f32 %f108, %f7; // begin inline asm { cvt.rn.f16.f32 %rs38, %f40;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs37, %f108;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs36, %f107;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs35, %f106;} // end inline asm st.global.v4.u16 [%rd2], {%rs35, %rs36, %rs37, %rs38}; cvt.sat.f32.f32 %f110, %f8; cvt.sat.f32.f32 %f111, %f9; cvt.sat.f32.f32 %f112, %f10; // begin inline asm { cvt.rn.f16.f32 %rs42, %f40;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs41, %f112;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs40, %f111;} // end inline asm // begin inline asm { cvt.rn.f16.f32 %rs39, %f110;} // end inline asm st.global.v4.u16 [%rd3], {%rs39, %rs40, %rs41, %rs42}; $L__BB0_3: ret; }