172
176
vaddl.u8 q9, d2, d4
173
177
vaddl.u8 q11, d3, d5
174
vst1.64 {q15}, [r0,:128], r2
178
vst1.8 {q15}, [r0,:128], r2
181
vld1.8 {d0-d2}, [r1], r2
183
NRND vadd.u16 q12, q12, q13
184
vext.8 q15, q0, q1, #1
185
vadd.u16 q1 , q10, q11
187
NRND vadd.u16 q1, q1, q13
190
vld1.8 {q8}, [r0,:128]
191
vrhadd.u8 q14, q14, q8
194
vaddl.u8 q10, d1, d31
195
vst1.8 {q14}, [r0,:128], r2
197
NRND vadd.u16 q12, q12, q13
198
vadd.u16 q0, q10, q11
200
NRND vadd.u16 q0, q0, q13
203
vld1.8 {q9}, [r0,:128]
204
vrhadd.u8 q15, q15, q9
206
vst1.8 {q15}, [r0,:128], r2
179
211
.macro pixels8 rnd=1, avg=0
180
1: vld1.64 {d0}, [r1], r2
181
vld1.64 {d1}, [r1], r2
182
vld1.64 {d2}, [r1], r2
212
1: vld1.8 {d0}, [r1], r2
213
vld1.8 {d1}, [r1], r2
214
vld1.8 {d2}, [r1], r2
183
215
pld [r1, r2, lsl #2]
184
vld1.64 {d3}, [r1], r2
216
vld1.8 {d3}, [r1], r2
187
219
pld [r1, r2, lsl #1]
189
vld1.64 {d4}, [r0,:64], r2
221
vld1.8 {d4}, [r0,:64], r2
190
222
vrhadd.u8 d0, d0, d4
191
vld1.64 {d5}, [r0,:64], r2
223
vld1.8 {d5}, [r0,:64], r2
192
224
vrhadd.u8 d1, d1, d5
193
vld1.64 {d6}, [r0,:64], r2
225
vld1.8 {d6}, [r0,:64], r2
194
226
vrhadd.u8 d2, d2, d6
195
vld1.64 {d7}, [r0,:64], r2
227
vld1.8 {d7}, [r0,:64], r2
196
228
vrhadd.u8 d3, d3, d7
197
229
sub r0, r0, r2, lsl #2
200
vst1.64 {d0}, [r0,:64], r2
201
vst1.64 {d1}, [r0,:64], r2
202
vst1.64 {d2}, [r0,:64], r2
203
vst1.64 {d3}, [r0,:64], r2
232
vst1.8 {d0}, [r0,:64], r2
233
vst1.8 {d1}, [r0,:64], r2
234
vst1.8 {d2}, [r0,:64], r2
235
vst1.8 {d3}, [r0,:64], r2
208
240
.macro pixels8_x2 rnd=1, avg=0
209
1: vld1.64 {q0}, [r1], r2
241
1: vld1.8 {q0}, [r1], r2
210
242
vext.8 d1, d0, d1, #1
211
vld1.64 {q1}, [r1], r2
243
vld1.8 {q1}, [r1], r2
212
244
vext.8 d3, d2, d3, #1
359
427
pixfunc2 avg_, pixels8_xy2, avg=1
361
429
function ff_put_pixels_clamped_neon, export=1
362
vld1.64 {d16-d19}, [r0,:128]!
430
vld1.16 {d16-d19}, [r0,:128]!
363
431
vqmovun.s16 d0, q8
364
vld1.64 {d20-d23}, [r0,:128]!
432
vld1.16 {d20-d23}, [r0,:128]!
365
433
vqmovun.s16 d1, q9
366
vld1.64 {d24-d27}, [r0,:128]!
434
vld1.16 {d24-d27}, [r0,:128]!
367
435
vqmovun.s16 d2, q10
368
vld1.64 {d28-d31}, [r0,:128]!
436
vld1.16 {d28-d31}, [r0,:128]!
369
437
vqmovun.s16 d3, q11
370
vst1.64 {d0}, [r1,:64], r2
438
vst1.8 {d0}, [r1,:64], r2
371
439
vqmovun.s16 d4, q12
372
vst1.64 {d1}, [r1,:64], r2
440
vst1.8 {d1}, [r1,:64], r2
373
441
vqmovun.s16 d5, q13
374
vst1.64 {d2}, [r1,:64], r2
442
vst1.8 {d2}, [r1,:64], r2
375
443
vqmovun.s16 d6, q14
376
vst1.64 {d3}, [r1,:64], r2
444
vst1.8 {d3}, [r1,:64], r2
377
445
vqmovun.s16 d7, q15
378
vst1.64 {d4}, [r1,:64], r2
379
vst1.64 {d5}, [r1,:64], r2
380
vst1.64 {d6}, [r1,:64], r2
381
vst1.64 {d7}, [r1,:64], r2
446
vst1.8 {d4}, [r1,:64], r2
447
vst1.8 {d5}, [r1,:64], r2
448
vst1.8 {d6}, [r1,:64], r2
449
vst1.8 {d7}, [r1,:64], r2
385
453
function ff_put_signed_pixels_clamped_neon, export=1
386
454
vmov.u8 d31, #128
387
vld1.64 {d16-d17}, [r0,:128]!
455
vld1.16 {d16-d17}, [r0,:128]!
388
456
vqmovn.s16 d0, q8
389
vld1.64 {d18-d19}, [r0,:128]!
457
vld1.16 {d18-d19}, [r0,:128]!
390
458
vqmovn.s16 d1, q9
391
vld1.64 {d16-d17}, [r0,:128]!
459
vld1.16 {d16-d17}, [r0,:128]!
392
460
vqmovn.s16 d2, q8
393
vld1.64 {d18-d19}, [r0,:128]!
461
vld1.16 {d18-d19}, [r0,:128]!
394
462
vadd.u8 d0, d0, d31
395
vld1.64 {d20-d21}, [r0,:128]!
463
vld1.16 {d20-d21}, [r0,:128]!
396
464
vadd.u8 d1, d1, d31
397
vld1.64 {d22-d23}, [r0,:128]!
465
vld1.16 {d22-d23}, [r0,:128]!
398
466
vadd.u8 d2, d2, d31
399
vst1.64 {d0}, [r1,:64], r2
467
vst1.8 {d0}, [r1,:64], r2
400
468
vqmovn.s16 d3, q9
401
vst1.64 {d1}, [r1,:64], r2
469
vst1.8 {d1}, [r1,:64], r2
402
470
vqmovn.s16 d4, q10
403
vst1.64 {d2}, [r1,:64], r2
471
vst1.8 {d2}, [r1,:64], r2
404
472
vqmovn.s16 d5, q11
405
vld1.64 {d24-d25}, [r0,:128]!
473
vld1.16 {d24-d25}, [r0,:128]!
406
474
vadd.u8 d3, d3, d31
407
vld1.64 {d26-d27}, [r0,:128]!
475
vld1.16 {d26-d27}, [r0,:128]!
408
476
vadd.u8 d4, d4, d31
409
477
vadd.u8 d5, d5, d31
410
vst1.64 {d3}, [r1,:64], r2
478
vst1.8 {d3}, [r1,:64], r2
411
479
vqmovn.s16 d6, q12
412
vst1.64 {d4}, [r1,:64], r2
480
vst1.8 {d4}, [r1,:64], r2
413
481
vqmovn.s16 d7, q13
414
vst1.64 {d5}, [r1,:64], r2
482
vst1.8 {d5}, [r1,:64], r2
415
483
vadd.u8 d6, d6, d31
416
484
vadd.u8 d7, d7, d31
417
vst1.64 {d6}, [r1,:64], r2
418
vst1.64 {d7}, [r1,:64], r2
485
vst1.8 {d6}, [r1,:64], r2
486
vst1.8 {d7}, [r1,:64], r2
422
490
function ff_add_pixels_clamped_neon, export=1
424
vld1.64 {d16}, [r1,:64], r2
425
vld1.64 {d0-d1}, [r0,:128]!
427
vld1.64 {d17}, [r1,:64], r2
428
vld1.64 {d2-d3}, [r0,:128]!
430
vld1.64 {d18}, [r1,:64], r2
432
vld1.64 {d4-d5}, [r0,:128]!
434
vst1.64 {d0}, [r3,:64], r2
436
vld1.64 {d19}, [r1,:64], r2
437
vld1.64 {d6-d7}, [r0,:128]!
440
vst1.64 {d2}, [r3,:64], r2
441
vld1.64 {d16}, [r1,:64], r2
443
vld1.64 {d0-d1}, [r0,:128]!
445
vst1.64 {d4}, [r3,:64], r2
446
vld1.64 {d17}, [r1,:64], r2
447
vld1.64 {d2-d3}, [r0,:128]!
449
vst1.64 {d6}, [r3,:64], r2
451
vld1.64 {d18}, [r1,:64], r2
452
vld1.64 {d4-d5}, [r0,:128]!
454
vst1.64 {d0}, [r3,:64], r2
456
vld1.64 {d19}, [r1,:64], r2
458
vld1.64 {d6-d7}, [r0,:128]!
460
vst1.64 {d2}, [r3,:64], r2
462
vst1.64 {d4}, [r3,:64], r2
463
vst1.64 {d6}, [r3,:64], r2
467
function ff_vector_fmul_neon, export=1
469
vld1.64 {d0-d3}, [r1,:128]!
470
vld1.64 {d4-d7}, [r2,:128]!
477
vld1.64 {d0-d1}, [r1,:128]!
478
vld1.64 {d4-d5}, [r2,:128]!
480
vld1.64 {d2-d3}, [r1,:128]!
481
vld1.64 {d6-d7}, [r2,:128]!
483
vst1.64 {d16-d19},[r0,:128]!
484
vld1.64 {d0-d1}, [r1,:128]!
485
vld1.64 {d4-d5}, [r2,:128]!
487
vld1.64 {d2-d3}, [r1,:128]!
488
vld1.64 {d6-d7}, [r2,:128]!
490
vst1.64 {d20-d23},[r0,:128]!
494
2: vld1.64 {d0-d1}, [r1,:128]!
495
vld1.64 {d4-d5}, [r2,:128]!
496
vst1.64 {d16-d17},[r0,:128]!
498
vld1.64 {d2-d3}, [r1,:128]!
499
vld1.64 {d6-d7}, [r2,:128]!
500
vst1.64 {d18-d19},[r0,:128]!
502
3: vst1.64 {d16-d19},[r0,:128]!
492
vld1.8 {d16}, [r1,:64], r2
493
vld1.16 {d0-d1}, [r0,:128]!
495
vld1.8 {d17}, [r1,:64], r2
496
vld1.16 {d2-d3}, [r0,:128]!
498
vld1.8 {d18}, [r1,:64], r2
500
vld1.16 {d4-d5}, [r0,:128]!
502
vst1.8 {d0}, [r3,:64], r2
504
vld1.8 {d19}, [r1,:64], r2
505
vld1.16 {d6-d7}, [r0,:128]!
508
vst1.8 {d2}, [r3,:64], r2
509
vld1.8 {d16}, [r1,:64], r2
511
vld1.16 {d0-d1}, [r0,:128]!
513
vst1.8 {d4}, [r3,:64], r2
514
vld1.8 {d17}, [r1,:64], r2
515
vld1.16 {d2-d3}, [r0,:128]!
517
vst1.8 {d6}, [r3,:64], r2
519
vld1.8 {d18}, [r1,:64], r2
520
vld1.16 {d4-d5}, [r0,:128]!
522
vst1.8 {d0}, [r3,:64], r2
524
vld1.8 {d19}, [r1,:64], r2
526
vld1.16 {d6-d7}, [r0,:128]!
528
vst1.8 {d2}, [r3,:64], r2
530
vst1.8 {d4}, [r3,:64], r2
531
vst1.8 {d6}, [r3,:64], r2