138 lines
3.2 KiB
Plaintext
138 lines
3.2 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 __closesthit__oxMain
|
|
.const .align 16 .b8 params[1184];
|
|
|
|
.visible .entry __closesthit__oxMain()
|
|
{
|
|
.reg .pred %p<3>;
|
|
.reg .b16 %rs<12>;
|
|
.reg .f32 %f<27>;
|
|
.reg .b32 %r<21>;
|
|
.reg .b64 %rd<7>;
|
|
|
|
|
|
// begin inline asm
|
|
call (%r2), _optix_read_primitive_idx, ();
|
|
// end inline asm
|
|
// begin inline asm
|
|
call (%f9, %f10), _optix_get_triangle_barycentrics, ();
|
|
// end inline asm
|
|
mov.u32 %r3, 0;
|
|
// begin inline asm
|
|
call (%rd1), _optix_call_direct_callable,(%r3);
|
|
// end inline asm
|
|
{ // callseq 0, 0
|
|
.reg .b32 temp_param_reg;
|
|
.param .b32 param0;
|
|
st.param.b32 [param0+0], %r2;
|
|
.param .align 8 .b8 param1[8];
|
|
st.param.v2.f32 [param1+0], {%f9, %f10};
|
|
.param .align 8 .b8 retval0[32];
|
|
prototype_0 : .callprototype (.param .align 8 .b8 _[32]) _ (.param .b32 _, .param .align 8 .b8 _[8]);
|
|
call (retval0),
|
|
%rd1,
|
|
(
|
|
param0,
|
|
param1
|
|
)
|
|
, prototype_0;
|
|
ld.param.v2.f32 {%f1, %f2}, [retval0+0];
|
|
ld.param.f32 %f3, [retval0+8];
|
|
ld.param.v4.b8 {%rs1, %rs2, %rs3, %rs4}, [retval0+12];
|
|
ld.param.v2.f32 {%f7, %f5}, [retval0+16];
|
|
ld.param.f32 %f6, [retval0+24];
|
|
ld.param.v4.b8 {%rs5, %rs6, %rs7, %rs8}, [retval0+28];
|
|
} // callseq 0
|
|
// begin inline asm
|
|
call (%f11), _optix_get_world_ray_direction_x, ();
|
|
// end inline asm
|
|
// begin inline asm
|
|
call (%f12), _optix_get_world_ray_direction_y, ();
|
|
// end inline asm
|
|
// begin inline asm
|
|
call (%f13), _optix_get_world_ray_direction_z, ();
|
|
// end inline asm
|
|
mul.f32 %f14, %f2, %f12;
|
|
fma.rn.f32 %f15, %f1, %f11, %f14;
|
|
fma.rn.f32 %f8, %f3, %f13, %f15;
|
|
div.rn.f32 %f16, %f7, 0f41200000;
|
|
cvt.rzi.s32.f32 %r1, %f16;
|
|
setp.lt.s32 %p1, %r1, 0;
|
|
@%p1 bra $L__BB0_2;
|
|
|
|
cvt.rzi.s32.f32 %r10, %f7;
|
|
cvt.rn.f32.s32 %f20, %r10;
|
|
sub.f32 %f21, %f7, %f20;
|
|
ld.const.u64 %rd2, [params+688];
|
|
cvta.to.global.u64 %rd3, %rd2;
|
|
mul.wide.s32 %rd4, %r1, 8;
|
|
add.s64 %rd5, %rd3, %rd4;
|
|
ld.global.u64 %rd6, [%rd5];
|
|
tex.2d.v4.u32.f32 {%r11, %r12, %r13, %r14}, [%rd6, {%f21, %f5}];
|
|
cvt.u16.u32 %rs9, %r11;
|
|
cvt.u16.u32 %rs10, %r12;
|
|
cvt.u16.u32 %rs11, %r13;
|
|
// begin inline asm
|
|
{ cvt.f32.f16 %f17, %rs9;}
|
|
|
|
// end inline asm
|
|
// begin inline asm
|
|
{ cvt.f32.f16 %f18, %rs10;}
|
|
|
|
// end inline asm
|
|
// begin inline asm
|
|
{ cvt.f32.f16 %f19, %rs11;}
|
|
|
|
// end inline asm
|
|
ld.const.f32 %f22, [params+696];
|
|
setp.ltu.f32 %p2, %f8, 0f00000000;
|
|
selp.f32 %f23, 0f3F800000, %f22, %p2;
|
|
mul.f32 %f24, %f17, %f23;
|
|
mul.f32 %f25, %f18, %f23;
|
|
mul.f32 %f26, %f19, %f23;
|
|
mov.b32 %r5, %f24;
|
|
// begin inline asm
|
|
call _optix_set_payload, (%r3, %r5);
|
|
// end inline asm
|
|
mov.b32 %r7, %f25;
|
|
mov.u32 %r6, 1;
|
|
// begin inline asm
|
|
call _optix_set_payload, (%r6, %r7);
|
|
// end inline asm
|
|
mov.b32 %r9, %f26;
|
|
mov.u32 %r8, 2;
|
|
// begin inline asm
|
|
call _optix_set_payload, (%r8, %r9);
|
|
// end inline asm
|
|
bra.uni $L__BB0_3;
|
|
|
|
$L__BB0_2:
|
|
// begin inline asm
|
|
call _optix_set_payload, (%r3, %r3);
|
|
// end inline asm
|
|
mov.u32 %r17, 1;
|
|
// begin inline asm
|
|
call _optix_set_payload, (%r17, %r3);
|
|
// end inline asm
|
|
mov.u32 %r19, 2;
|
|
// begin inline asm
|
|
call _optix_set_payload, (%r19, %r3);
|
|
// end inline asm
|
|
|
|
$L__BB0_3:
|
|
ret;
|
|
|
|
}
|
|
|