typedef int t;t foo(t *p){ int i; t max; max = p[0]; for(i=0;i<32;i++) if(p[i]>max) max=p[i]; return max;}
mov r1, r0 ldr r2, [r0, #0] vld1.32 {d2}, [r1]! sub sp, sp, #8 vld1.32 {d20}, [r1]! vld1.32 {d0}, [r1]! str r2, [sp, #4] vld1.32 {d22}, [r1]! str r2, [sp, #0] fldd d16, [sp, #0] vmax.s32 d1, d2, d16 vmax.s32 d17, d1, d20 vld1.32 {d19}, [r1]! vmax.s32 d31, d17, d0 vld1.32 {d21}, [r1]! vmax.s32 d30, d31, d22 vld1.32 {d27}, [r1]! vmax.s32 d29, d30, d19 vld1.32 {d20}, [r1]! vmax.s32 d28, d29, d21 vld1.32 {d18}, [r1]! vmax.s32 d26, d28, d27 vld1.32 {d19}, [r1]! vmax.s32 d25, d26, d20 vld1.32 {d7}, [r1]! vmax.s32 d24, d25, d18 vld1.32 {d18}, [r1]! vmax.s32 d23, d24, d19 vld1.32 {d4}, [r1]! vmax.s32 d6, d23, d7 vld1.32 {d2}, [r1]! vmax.s32 d5, d6, d18 vld1.32 {d1}, [r1] vmax.s32 d3, d5, d4 add r3, r1, #8 vmax.s32 d17, d3, d2 vmax.s32 d0, d17, d1 vld1.32 {d17}, [r3] vmax.s32 d16, d17, d0 vpmax.s32 d16, d16, d16 vmov.32 r0, d16[0] add sp, sp, #8 bx lr