// // Generated by LLVM NVPTX Back-End // .version 3.1 .target sm_35, texmode_independent .address_size 64 // .globl __vselect_i8 .func (.param .b32 func_retval0) foo1___ ( .param .align 4 .b8 foo1____param_0[4] ) ; .extern .global .align 4 .b8 data[4096]; // @__vselect_i8 .func (.param .align 1 .b8 func_retval0[1]) __vselect_i8( .param .align 1 .b8 __vselect_i8_param_0[1], .param .align 1 .b8 __vselect_i8_param_1[1], .param .align 4 .b8 __vselect_i8_param_2[4] ) { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.u32 %r0, [__vselect_i8_param_2]; setp.eq.s32 %p0, %r0, 0; ld.param.u8 %rc0, [__vselect_i8_param_0]; ld.param.u8 %rc1, [__vselect_i8_param_1]; selp.b16 %rc0, %rc0, %rc1, %p0; st.param.b8 [func_retval0+0], %rc0; ret; } // .globl __vselect_i16 .func (.param .align 2 .b8 func_retval0[2]) __vselect_i16( .param .align 2 .b8 __vselect_i16_param_0[2], .param .align 2 .b8 __vselect_i16_param_1[2], .param .align 4 .b8 __vselect_i16_param_2[4] ) // @__vselect_i16 { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.u32 %r0, [__vselect_i16_param_2]; setp.eq.s32 %p0, %r0, 0; ld.param.u16 %rs0, [__vselect_i16_param_0]; ld.param.u16 %rs1, [__vselect_i16_param_1]; selp.b16 %rs0, %rs0, %rs1, %p0; st.param.b16 [func_retval0+0], %rs0; ret; } // .globl __vselect_i64 .func (.param .align 8 .b8 func_retval0[8]) __vselect_i64( .param .align 8 .b8 __vselect_i64_param_0[8], .param .align 8 .b8 __vselect_i64_param_1[8], .param .align 4 .b8 __vselect_i64_param_2[4] ) // @__vselect_i64 { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.u32 %r0, [__vselect_i64_param_2]; setp.eq.s32 %p0, %r0, 0; ld.param.u64 %rl0, [__vselect_i64_param_0]; ld.param.u64 %rl1, [__vselect_i64_param_1]; selp.b64 %rl0, %rl0, %rl1, %p0; st.param.b64 [func_retval0+0], %rl0; ret; } // .globl __aos_to_soa4_float1 .func __aos_to_soa4_float1( .param .align 4 .b8 __aos_to_soa4_float1_param_0[4], .param .align 4 .b8 __aos_to_soa4_float1_param_1[4], .param .align 4 .b8 __aos_to_soa4_float1_param_2[4], .param .align 4 .b8 __aos_to_soa4_float1_param_3[4], .param .b64 __aos_to_soa4_float1_param_4, .param .b64 __aos_to_soa4_float1_param_5, .param .b64 __aos_to_soa4_float1_param_6, .param .b64 __aos_to_soa4_float1_param_7 ) // @__aos_to_soa4_float1 { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.u64 %rl0, [__aos_to_soa4_float1_param_4]; ld.param.u64 %rl1, [__aos_to_soa4_float1_param_5]; ld.param.u64 %rl2, [__aos_to_soa4_float1_param_6]; ld.param.u64 %rl3, [__aos_to_soa4_float1_param_7]; ld.param.f32 %f0, [__aos_to_soa4_float1_param_0]; ld.param.f32 %f1, [__aos_to_soa4_float1_param_1]; ld.param.f32 %f2, [__aos_to_soa4_float1_param_2]; ld.param.f32 %f3, [__aos_to_soa4_float1_param_3]; st.f32 [%rl0], %f0; st.f32 [%rl1], %f1; st.f32 [%rl2], %f2; st.f32 [%rl3], %f3; ret; } // .globl __soa_to_aos4_float1 .func __soa_to_aos4_float1( .param .align 4 .b8 __soa_to_aos4_float1_param_0[4], .param .align 4 .b8 __soa_to_aos4_float1_param_1[4], .param .align 4 .b8 __soa_to_aos4_float1_param_2[4], .param .align 4 .b8 __soa_to_aos4_float1_param_3[4], .param .b64 __soa_to_aos4_float1_param_4, .param .b64 __soa_to_aos4_float1_param_5, .param .b64 __soa_to_aos4_float1_param_6, .param .b64 __soa_to_aos4_float1_param_7 ) // @__soa_to_aos4_float1 { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.u64 %rl0, [__soa_to_aos4_float1_param_4]; ld.param.u64 %rl1, [__soa_to_aos4_float1_param_5]; ld.param.u64 %rl2, [__soa_to_aos4_float1_param_6]; ld.param.u64 %rl3, [__soa_to_aos4_float1_param_7]; ld.param.f32 %f0, [__soa_to_aos4_float1_param_0]; ld.param.f32 %f1, [__soa_to_aos4_float1_param_1]; ld.param.f32 %f2, [__soa_to_aos4_float1_param_2]; ld.param.f32 %f3, [__soa_to_aos4_float1_param_3]; st.f32 [%rl0], %f0; st.f32 [%rl1], %f1; st.f32 [%rl2], %f2; st.f32 [%rl3], %f3; ret; } // .globl __aos_to_soa3_float1 .func __aos_to_soa3_float1( .param .align 4 .b8 __aos_to_soa3_float1_param_0[4], .param .align 4 .b8 __aos_to_soa3_float1_param_1[4], .param .align 4 .b8 __aos_to_soa3_float1_param_2[4], .param .b64 __aos_to_soa3_float1_param_3, .param .b64 __aos_to_soa3_float1_param_4, .param .b64 __aos_to_soa3_float1_param_5 ) // @__aos_to_soa3_float1 { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.u64 %rl0, [__aos_to_soa3_float1_param_3]; ld.param.u64 %rl1, [__aos_to_soa3_float1_param_4]; ld.param.u64 %rl2, [__aos_to_soa3_float1_param_5]; ld.param.f32 %f0, [__aos_to_soa3_float1_param_0]; ld.param.f32 %f1, [__aos_to_soa3_float1_param_1]; ld.param.f32 %f2, [__aos_to_soa3_float1_param_2]; st.f32 [%rl0], %f0; st.f32 [%rl1], %f1; st.f32 [%rl2], %f2; ret; } // .globl __soa_to_aos3_float1 .func __soa_to_aos3_float1( .param .align 4 .b8 __soa_to_aos3_float1_param_0[4], .param .align 4 .b8 __soa_to_aos3_float1_param_1[4], .param .align 4 .b8 __soa_to_aos3_float1_param_2[4], .param .b64 __soa_to_aos3_float1_param_3, .param .b64 __soa_to_aos3_float1_param_4, .param .b64 __soa_to_aos3_float1_param_5 ) // @__soa_to_aos3_float1 { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.u64 %rl0, [__soa_to_aos3_float1_param_3]; ld.param.u64 %rl1, [__soa_to_aos3_float1_param_4]; ld.param.u64 %rl2, [__soa_to_aos3_float1_param_5]; ld.param.f32 %f0, [__soa_to_aos3_float1_param_0]; ld.param.f32 %f1, [__soa_to_aos3_float1_param_1]; ld.param.f32 %f2, [__soa_to_aos3_float1_param_2]; st.f32 [%rl0], %f0; st.f32 [%rl1], %f1; st.f32 [%rl2], %f2; ret; } // .globl __rsqrt_varying_double .func (.param .align 8 .b8 func_retval0[8]) __rsqrt_varying_double( .param .align 8 .b8 __rsqrt_varying_double_param_0[8] ) // @__rsqrt_varying_double { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: ld.param.f64 %fl0, [__rsqrt_varying_double_param_0]; rsqrt.approx.f64 %fl0, %fl0; st.param.f64 [func_retval0+0], %fl0; ret; } // .globl foo___ .func foo___( .param .align 4 .b8 foo____param_0[4] ) // @foo___ { .reg .pred %p<396>; .reg .s16 %rc<396>; .reg .s16 %rs<396>; .reg .s32 %r<396>; .reg .s64 %rl<396>; .reg .f32 %f<396>; .reg .f64 %fl<396>; // BB#0: // %allocas mov.u64 %rl0, data; cvta.global.u64 %rl0, %rl0; ld.param.u32 %r0, [foo____param_0]; // Callseq Start 0 { .reg .b32 temp_param_reg; // } .param .b32 param0; st.param.b32 [param0+0], %r0; .param .b32 retval0; call.uni (retval0), foo1___, ( param0 ); ld.param.b32 %r0, [retval0+0]; //{ }// Callseq End 0 mov.u32 %r1, 0; mul.wide.s32 %rl1, %r0, 4; add.s64 %rl0, %rl0, %rl1; st.u32 [%rl0], %r1; ret; }