.version 6.5 .target sm_30 .address_size 64 .visible .func (.param .b8 output[8]) incr( .param .u64 input ) { .reg .u64 temp; ld.param.u64 temp, [input]; add.u64 temp, temp, 1; st.param.u64 [output], temp; ret; } .visible .entry call_bug( .param .u64 input, .param .u64 output ) { .reg .u64 in_addr; .reg .u64 out_addr; .reg .u64 temp; .reg .u64 fn_ptr; ld.param.u64 in_addr, [input]; ld.param.u64 out_addr, [output]; ld.global.u64 temp, [in_addr]; .param.u64 incr_in; .param.b8 incr_out[8]; st.param.b64 [incr_in], temp; prototype_1 : .callprototype (.param.b8 _[8]) _ (.param.u64 _); mov.u64 fn_ptr, incr; call (incr_out), fn_ptr, (incr_in), prototype_1; ld.param.u64 temp, [incr_out+0]; st.global.u64 [out_addr], temp; ret; }