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