.version 6.5 .target sm_30 .address_size 64 .extern .func __assertfail ( .param .b64 __assertfail_param_0, .param .b64 __assertfail_param_1, .param .b32 __assertfail_param_2, .param .b64 __assertfail_param_3, .param .b64 __assertfail_param_4 ); .extern .func __assertfail ( .param .b64 __assertfail_param_0, .param .b64 __assertfail_param_1, .param .b32 __assertfail_param_2, .param .b64 __assertfail_param_3, .param .b64 __assertfail_param_4 ); .visible .entry assertfail( .param .u64 input, .param .u64 output ) { .reg .u64 in_addr; .reg .u64 out_addr; .reg .u64 temp; .reg .u64 temp2; ld.param.u64 in_addr, [input]; ld.param.u64 out_addr, [output]; { .reg .b32 temp_param_reg; mov.u32 temp_param_reg, 0; // } .param .b64 param0; st.param.b64 [param0+0], in_addr; .param .b64 param1; st.param.b64 [param1+0], in_addr; .param .b32 param2; st.param.b32 [param2+0], temp_param_reg; .param .b64 param3; st.param.b64 [param3+0], in_addr; .param .b64 param4; st.param.b64 [param4+0], in_addr; call.uni __assertfail, ( param0, param1, param2, param3, param4 ); //{ } ld.u64 temp, [in_addr]; add.u64 temp2, temp, 1; st.u64 [out_addr], temp2; ret; } .extern .func __assertfail ( .param .b64 __assertfail_param_0, .param .b64 __assertfail_param_1, .param .b32 __assertfail_param_2, .param .b64 __assertfail_param_3, .param .b64 __assertfail_param_4 );