Mercurial > libavcodec.hg
comparison arm/dsputil_neon_s.S @ 10302:6db89678b326 libavcodec
ARM: NEON optimised vector_fmul_add
author | mru |
---|---|
date | Sun, 27 Sep 2009 16:52:05 +0000 |
parents | 06d4e87718b1 |
children | be725249ea67 |
comparison
equal
deleted
inserted
replaced
10301:02798c603744 | 10302:6db89678b326 |
---|---|
1074 b 1b | 1074 b 1b |
1075 2: vst1.32 {q8-q9}, [r0,:128]! | 1075 2: vst1.32 {q8-q9}, [r0,:128]! |
1076 bx lr | 1076 bx lr |
1077 .endfunc | 1077 .endfunc |
1078 | 1078 |
1079 function ff_vector_fmul_add_neon, export=1 | |
1080 ldr r12, [sp] | |
1081 vld1.32 {q0-q1}, [r1,:128]! | |
1082 vld1.32 {q8-q9}, [r2,:128]! | |
1083 vld1.32 {q2-q3}, [r3,:128]! | |
1084 vmul.f32 q10, q0, q8 | |
1085 vmul.f32 q11, q1, q9 | |
1086 1: vadd.f32 q12, q2, q10 | |
1087 vadd.f32 q13, q3, q11 | |
1088 pld [r1, #16] | |
1089 pld [r2, #16] | |
1090 pld [r3, #16] | |
1091 subs r12, r12, #8 | |
1092 beq 2f | |
1093 vld1.32 {q0}, [r1,:128]! | |
1094 vld1.32 {q8}, [r2,:128]! | |
1095 vmul.f32 q10, q0, q8 | |
1096 vld1.32 {q1}, [r1,:128]! | |
1097 vld1.32 {q9}, [r2,:128]! | |
1098 vmul.f32 q11, q1, q9 | |
1099 vld1.32 {q2-q3}, [r3,:128]! | |
1100 vst1.32 {q12-q13},[r0,:128]! | |
1101 b 1b | |
1102 2: vst1.32 {q12-q13},[r0,:128]! | |
1103 bx lr | |
1104 .endfunc | |
1105 | |
1079 function ff_vector_clipf_neon, export=1 | 1106 function ff_vector_clipf_neon, export=1 |
1080 VFP vdup.32 q1, d0[1] | 1107 VFP vdup.32 q1, d0[1] |
1081 VFP vdup.32 q0, d0[0] | 1108 VFP vdup.32 q0, d0[0] |
1082 NOVFP vdup.32 q0, r2 | 1109 NOVFP vdup.32 q0, r2 |
1083 NOVFP vdup.32 q1, r3 | 1110 NOVFP vdup.32 q1, r3 |