We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
;; consume 256 source image pixels VLD1.8 {Q0,Q1},[r1@128]!; load 32 from row 0 VLD1.8 {Q4,Q5},[r2]! ; load 32 from row 1 VLD1.8 {Q8,Q9},[r3@64]!; load 32 from row 2 VLD1.8 {Q12,Q13},[r4]! ; load 32 from row 3 VLD1.8 {Q2,Q3},[r1@128]!; load another 32 from row 0 VLD1.8 {Q6,Q7},[r2]! ; load another 32 from row 1 VLD1.8 {Q10,Q11},[r3@64]!; load another 32 from row 2 VLD1.8 {Q14,Q15},[r4]! ; load another 32 from row 3;; now at 256 8-bit values VPADDL.u8 Q0,Q0; 8 adds VPADDL.u8 Q1,Q1; 8 adds VPADDL.u8 Q2,Q2; 8 adds VPADDL.u8 Q3,Q3; 8 adds VPADAL.u8 Q0,Q4; 16 adds VPADAL.u8 Q1,Q5; 16 adds VPADAL.u8 Q2,Q6; 16 adds VPADAL.u8 Q3,Q7; 16 adds VPADAL.u8 Q0,Q8; 16 adds VPADAL.u8 Q1,Q9; 16 adds VPADAL.u8 Q2,Q10; 16 adds VPADAL.u8 Q3,Q11; 16 adds VPADAL.u8 Q0,Q12; 16 adds VPADAL.u8 Q1,Q13; 16 adds VPADAL.u8 Q2,Q14; 16 adds VPADAL.u8 Q3,Q15; 16 adds;; now at 32 16-bit values VPADD.u16 Q0,Q0,Q1; 8 adds VPADD.u16 Q1,Q2,Q3; 8 adds;; now at 16 16-bit values VSHRN.u16 D0,Q0,#4; 8 divides by 16 VSHRN.u16 D1,Q1,#4; 8 divides by 16;; now at 16 8-bit values;; write out 16 destination image pixels VST1.8 {Q0},[r0@64]!; store 16