Files
FORT-BO/Assets/Editor/x64/Bakery/optix9/dilateHalf.ptx
2026-08-06 18:56:32 +03:00

350 lines
7.4 KiB
Plaintext

//
// 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<14>;
.reg .b16 %rs<45>;
.reg .f32 %f<105>;
.reg .b32 %r<55>;
.reg .b64 %rd<27>;
mov.u32 %r25, %ctaid.x;
mov.u32 %r1, %ntid.x;
mov.u32 %r26, %tid.x;
mad.lo.s32 %r2, %r25, %r1, %r26;
mov.u32 %r3, %ntid.y;
mov.u32 %r27, %ctaid.y;
mov.u32 %r28, %tid.y;
mad.lo.s32 %r4, %r27, %r3, %r28;
ld.const.u64 %rd10, [params+144];
cvta.to.global.u64 %rd1, %rd10;
ld.const.u32 %r5, [params+136];
mul.lo.s32 %r6, %r5, %r4;
add.s32 %r29, %r6, %r2;
mul.wide.u32 %rd11, %r29, 8;
add.s64 %rd12, %rd1, %rd11;
add.s64 %rd2, %rd12, 6;
ld.global.u16 %rs2, [%rd12+6];
mov.f32 %f46, 0f00000000;
// begin inline asm
{ cvt.rn.f16.f32 %rs1, %f46;}
// end inline asm
setp.gt.u16 %p1, %rs2, %rs1;
@%p1 bra $L__BB0_17;
ld.global.u16 %rs3, [%rd2+-6];
// begin inline asm
{ cvt.f32.f16 %f87, %rs3;}
// end inline asm
ld.global.u16 %rs4, [%rd2+-4];
// begin inline asm
{ cvt.f32.f16 %f88, %rs4;}
// end inline asm
ld.global.u16 %rs5, [%rd2+-2];
// begin inline asm
{ cvt.f32.f16 %f89, %rs5;}
// end inline asm
add.s32 %r31, %r2, -1;
setp.eq.s32 %p2, %r2, 0;
mov.u32 %r49, 0;
selp.b32 %r7, 0, %r31, %p2;
add.s32 %r32, %r4, -1;
setp.eq.s32 %p3, %r4, 0;
selp.b32 %r33, 0, %r32, %p3;
mov.u32 %r34, %nctaid.x;
mad.lo.s32 %r35, %r34, %r1, -1;
setp.eq.s32 %p4, %r2, %r35;
add.s32 %r36, %r2, 1;
selp.b32 %r8, %r35, %r36, %p4;
mov.u32 %r37, %nctaid.y;
mad.lo.s32 %r38, %r37, %r3, -1;
setp.eq.s32 %p5, %r4, %r38;
add.s32 %r39, %r4, 1;
selp.b32 %r9, %r38, %r39, %p5;
mul.lo.s32 %r10, %r5, %r33;
add.s32 %r40, %r10, %r7;
mul.wide.u32 %rd13, %r40, 8;
add.s64 %rd14, %rd1, %rd13;
add.s64 %rd3, %rd14, 6;
ld.global.u16 %rs7, [%rd14+6];
// begin inline asm
{ cvt.rn.f16.f32 %rs6, %f46;}
// end inline asm
setp.le.u16 %p6, %rs7, %rs6;
@%p6 bra $L__BB0_3;
ld.global.u16 %rs8, [%rd3+-6];
// begin inline asm
{ cvt.f32.f16 %f51, %rs8;}
// end inline asm
ld.global.u16 %rs9, [%rd3+-4];
// begin inline asm
{ cvt.f32.f16 %f52, %rs9;}
// end inline asm
ld.global.u16 %rs10, [%rd3+-2];
// begin inline asm
{ cvt.f32.f16 %f53, %rs10;}
// end inline asm
add.f32 %f87, %f87, %f51;
add.f32 %f88, %f88, %f52;
add.f32 %f89, %f89, %f53;
mov.u32 %r49, 1;
$L__BB0_3:
add.s32 %r42, %r10, %r2;
mul.wide.u32 %rd15, %r42, 8;
add.s64 %rd16, %rd1, %rd15;
add.s64 %rd4, %rd16, 6;
ld.global.u16 %rs12, [%rd16+6];
mov.f32 %f54, 0f00000000;
// begin inline asm
{ cvt.rn.f16.f32 %rs11, %f54;}
// end inline asm
setp.le.u16 %p7, %rs12, %rs11;
@%p7 bra $L__BB0_5;
ld.global.u16 %rs13, [%rd4+-6];
// begin inline asm
{ cvt.f32.f16 %f55, %rs13;}
// end inline asm
ld.global.u16 %rs14, [%rd4+-4];
// begin inline asm
{ cvt.f32.f16 %f56, %rs14;}
// end inline asm
ld.global.u16 %rs15, [%rd4+-2];
// begin inline asm
{ cvt.f32.f16 %f57, %rs15;}
// end inline asm
add.f32 %f87, %f87, %f55;
add.f32 %f88, %f88, %f56;
add.f32 %f89, %f89, %f57;
add.s32 %r49, %r49, 1;
$L__BB0_5:
add.s32 %r43, %r10, %r8;
mul.wide.u32 %rd17, %r43, 8;
add.s64 %rd18, %rd1, %rd17;
add.s64 %rd5, %rd18, 6;
ld.global.u16 %rs17, [%rd18+6];
// begin inline asm
{ cvt.rn.f16.f32 %rs16, %f54;}
// end inline asm
setp.le.u16 %p8, %rs17, %rs16;
@%p8 bra $L__BB0_7;
ld.global.u16 %rs18, [%rd5+-6];
// begin inline asm
{ cvt.f32.f16 %f59, %rs18;}
// end inline asm
ld.global.u16 %rs19, [%rd5+-4];
// begin inline asm
{ cvt.f32.f16 %f60, %rs19;}
// end inline asm
ld.global.u16 %rs20, [%rd5+-2];
// begin inline asm
{ cvt.f32.f16 %f61, %rs20;}
// end inline asm
add.f32 %f87, %f87, %f59;
add.f32 %f88, %f88, %f60;
add.f32 %f89, %f89, %f61;
add.s32 %r49, %r49, 1;
$L__BB0_7:
add.s32 %r44, %r6, %r7;
mul.wide.u32 %rd19, %r44, 8;
add.s64 %rd20, %rd1, %rd19;
add.s64 %rd6, %rd20, 6;
ld.global.u16 %rs22, [%rd20+6];
mov.f32 %f62, 0f00000000;
// begin inline asm
{ cvt.rn.f16.f32 %rs21, %f62;}
// end inline asm
setp.le.u16 %p9, %rs22, %rs21;
@%p9 bra $L__BB0_9;
ld.global.u16 %rs23, [%rd6+-6];
// begin inline asm
{ cvt.f32.f16 %f63, %rs23;}
// end inline asm
ld.global.u16 %rs24, [%rd6+-4];
// begin inline asm
{ cvt.f32.f16 %f64, %rs24;}
// end inline asm
ld.global.u16 %rs25, [%rd6+-2];
// begin inline asm
{ cvt.f32.f16 %f65, %rs25;}
// end inline asm
add.f32 %f87, %f87, %f63;
add.f32 %f88, %f88, %f64;
add.f32 %f89, %f89, %f65;
add.s32 %r49, %r49, 1;
$L__BB0_9:
add.s32 %r45, %r6, %r8;
mul.wide.u32 %rd21, %r45, 8;
add.s64 %rd22, %rd1, %rd21;
add.s64 %rd7, %rd22, 6;
ld.global.u16 %rs27, [%rd22+6];
// begin inline asm
{ cvt.rn.f16.f32 %rs26, %f62;}
// end inline asm
setp.le.u16 %p10, %rs27, %rs26;
@%p10 bra $L__BB0_11;
ld.global.u16 %rs28, [%rd7+-6];
// begin inline asm
{ cvt.f32.f16 %f67, %rs28;}
// end inline asm
ld.global.u16 %rs29, [%rd7+-4];
// begin inline asm
{ cvt.f32.f16 %f68, %rs29;}
// end inline asm
ld.global.u16 %rs30, [%rd7+-2];
// begin inline asm
{ cvt.f32.f16 %f69, %rs30;}
// end inline asm
add.f32 %f87, %f87, %f67;
add.f32 %f88, %f88, %f68;
add.f32 %f89, %f89, %f69;
add.s32 %r49, %r49, 1;
$L__BB0_11:
mul.lo.s32 %r20, %r5, %r9;
add.s32 %r46, %r20, %r7;
mul.wide.u32 %rd23, %r46, 8;
add.s64 %rd24, %rd1, %rd23;
add.s64 %rd8, %rd24, 6;
ld.global.u16 %rs32, [%rd24+6];
mov.f32 %f70, 0f00000000;
// begin inline asm
{ cvt.rn.f16.f32 %rs31, %f70;}
// end inline asm
setp.le.u16 %p11, %rs32, %rs31;
@%p11 bra $L__BB0_13;
ld.global.u16 %rs33, [%rd8+-6];
// begin inline asm
{ cvt.f32.f16 %f71, %rs33;}
// end inline asm
ld.global.u16 %rs34, [%rd8+-4];
// begin inline asm
{ cvt.f32.f16 %f72, %rs34;}
// end inline asm
ld.global.u16 %rs35, [%rd8+-2];
// begin inline asm
{ cvt.f32.f16 %f73, %rs35;}
// end inline asm
add.f32 %f87, %f87, %f71;
add.f32 %f88, %f88, %f72;
add.f32 %f89, %f89, %f73;
add.s32 %r49, %r49, 1;
$L__BB0_13:
add.s32 %r47, %r20, %r8;
mul.wide.u32 %rd25, %r47, 8;
add.s64 %rd26, %rd1, %rd25;
add.s64 %rd9, %rd26, 6;
ld.global.u16 %rs37, [%rd26+6];
// begin inline asm
{ cvt.rn.f16.f32 %rs36, %f70;}
// end inline asm
setp.le.u16 %p12, %rs37, %rs36;
@%p12 bra $L__BB0_15;
ld.global.u16 %rs38, [%rd9+-6];
// begin inline asm
{ cvt.f32.f16 %f75, %rs38;}
// end inline asm
ld.global.u16 %rs39, [%rd9+-4];
// begin inline asm
{ cvt.f32.f16 %f76, %rs39;}
// end inline asm
ld.global.u16 %rs40, [%rd9+-2];
// begin inline asm
{ cvt.f32.f16 %f77, %rs40;}
// end inline asm
add.f32 %f87, %f87, %f75;
add.f32 %f88, %f88, %f76;
add.f32 %f89, %f89, %f77;
add.s32 %r49, %r49, 1;
$L__BB0_15:
setp.eq.s32 %p13, %r49, 0;
@%p13 bra $L__BB0_17;
cvt.rn.f32.u32 %f82, %r49;
rcp.rn.f32 %f83, %f82;
mov.f32 %f81, 0f3F800000;
mul.f32 %f78, %f87, %f83;
mul.f32 %f79, %f88, %f83;
mul.f32 %f80, %f89, %f83;
// begin inline asm
{ cvt.rn.f16.f32 %rs43, %f80;}
// end inline asm
// begin inline asm
{ cvt.rn.f16.f32 %rs42, %f79;}
// end inline asm
// begin inline asm
{ cvt.rn.f16.f32 %rs41, %f78;}
// end inline asm
// begin inline asm
{ cvt.rn.f16.f32 %rs44, %f81;}
// end inline asm
st.global.v4.u16 [%rd2+-6], {%rs41, %rs42, %rs43, %rs44};
$L__BB0_17:
ret;
}