Frank_LBM/test.ptx
2024-03-25 10:36:21 +08:00

105 lines
2.2 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 add
.visible .entry add(
.param .u64 add_param_0,
.param .u64 add_param_1
)
{
.reg .pred %p<6>;
.reg .f32 %f<16>;
.reg .b32 %r<22>;
.reg .b64 %rd<25>;
ld.param.u64 %rd11, [add_param_0];
ld.param.u64 %rd12, [add_param_1];
cvta.to.global.u64 %rd1, %rd12;
cvta.to.global.u64 %rd2, %rd11;
mov.u32 %r1, %ntid.x;
mov.u32 %r20, %tid.x;
setp.gt.s32 %p1, %r20, 99;
@%p1 bra $L__BB0_7;
mov.u32 %r12, 99;
sub.s32 %r13, %r12, %r20;
div.u32 %r3, %r13, %r1;
add.s32 %r14, %r3, 1;
and.b32 %r19, %r14, 3;
setp.eq.s32 %p2, %r19, 0;
@%p2 bra $L__BB0_4;
mul.wide.s32 %rd13, %r20, 4;
add.s64 %rd24, %rd1, %rd13;
mul.wide.s32 %rd4, %r1, 4;
add.s64 %rd23, %rd2, %rd13;
$L__BB0_3:
.pragma "nounroll";
ld.global.f32 %f1, [%rd24];
ld.global.f32 %f2, [%rd23];
add.f32 %f3, %f2, %f1;
st.global.f32 [%rd24], %f3;
add.s32 %r20, %r20, %r1;
add.s64 %rd24, %rd24, %rd4;
add.s64 %rd23, %rd23, %rd4;
add.s32 %r19, %r19, -1;
setp.ne.s32 %p3, %r19, 0;
@%p3 bra $L__BB0_3;
$L__BB0_4:
setp.lt.u32 %p4, %r3, 3;
@%p4 bra $L__BB0_7;
mul.wide.s32 %rd10, %r1, 4;
$L__BB0_6:
mul.wide.s32 %rd14, %r20, 4;
add.s64 %rd15, %rd2, %rd14;
add.s64 %rd16, %rd1, %rd14;
ld.global.f32 %f4, [%rd16];
ld.global.f32 %f5, [%rd15];
add.f32 %f6, %f5, %f4;
st.global.f32 [%rd16], %f6;
add.s64 %rd17, %rd15, %rd10;
add.s64 %rd18, %rd16, %rd10;
ld.global.f32 %f7, [%rd18];
ld.global.f32 %f8, [%rd17];
add.f32 %f9, %f8, %f7;
st.global.f32 [%rd18], %f9;
add.s32 %r15, %r20, %r1;
add.s32 %r16, %r15, %r1;
add.s64 %rd19, %rd17, %rd10;
add.s64 %rd20, %rd18, %rd10;
ld.global.f32 %f10, [%rd20];
ld.global.f32 %f11, [%rd19];
add.f32 %f12, %f11, %f10;
st.global.f32 [%rd20], %f12;
add.s32 %r17, %r16, %r1;
add.s64 %rd21, %rd19, %rd10;
add.s64 %rd22, %rd20, %rd10;
ld.global.f32 %f13, [%rd22];
ld.global.f32 %f14, [%rd21];
add.f32 %f15, %f14, %f13;
st.global.f32 [%rd22], %f15;
add.s32 %r20, %r17, %r1;
setp.lt.s32 %p5, %r20, 100;
@%p5 bra $L__BB0_6;
$L__BB0_7:
ret;
}