History

aarch64: vp9itxfm: Reorder the idct coefficients for better pairing

All elements are used pairwise, except for the first one. Previously, the 16th element was unused. Move the unused element to the second slot, to make the later element pairs not split across registers. This simplifies loading only parts of the coefficients, reducing the difference to the 16 bpp version.

Martin Storsjö committed 9 years ago

Commit 09eb88a1 parent de06bdf1 file · +62 −62Browse files

Unified · Split

libavcodec/aarch64/vp9itxfm_neon.S+62−62
@@ -22,7 +22,7 @@ · 21 unmodified lines
22#include "neon.S"22#include "neon.S"
23 23
24const itxfm4_coeffs, align=424const itxfm4_coeffs, align=4
25 .short 11585, 6270, 15137, 025 .short 11585, 0, 6270, 15137
26iadst4_coeffs:26iadst4_coeffs:
27 .short 5283, 15212, 9929, 1337727 .short 5283, 15212, 9929, 13377
28endconst28endconst
@@ -30,8 +30,8 @@ endconst · 1 unmodified line
30const iadst8_coeffs, align=430const iadst8_coeffs, align=4
31 .short 16305, 1606, 14449, 7723, 10394, 12665, 4756, 1567931 .short 16305, 1606, 14449, 7723, 10394, 12665, 4756, 15679
32idct_coeffs:32idct_coeffs:
33 .short 11585, 6270, 15137, 3196, 16069, 13623, 9102, 160633 .short 11585, 0, 6270, 15137, 3196, 16069, 13623, 9102
34 .short 16305, 12665, 10394, 7723, 14449, 15679, 4756, 034 .short 1606, 16305, 12665, 10394, 7723, 14449, 15679, 4756
35 .short 804, 16364, 12140, 11003, 7005, 14811, 15426, 552035 .short 804, 16364, 12140, 11003, 7005, 14811, 15426, 5520
36 .short 3981, 15893, 14053, 8423, 9760, 13160, 16207, 240436 .short 3981, 15893, 14053, 8423, 9760, 13160, 16207, 2404
37endconst37endconst
@@ -192,14 +192,14 @@ endconst · 154 unmodified lines
192.endm192.endm
193 193
194.macro idct4 c0, c1, c2, c3194.macro idct4 c0, c1, c2, c3
195 smull v22.4s, \c1\().4h, v0.h[2]195 smull v22.4s, \c1\().4h, v0.h[3]
196 smull v20.4s, \c1\().4h, v0.h[1]196 smull v20.4s, \c1\().4h, v0.h[2]
197 add v16.4h, \c0\().4h, \c2\().4h197 add v16.4h, \c0\().4h, \c2\().4h
198 sub v17.4h, \c0\().4h, \c2\().4h198 sub v17.4h, \c0\().4h, \c2\().4h
199 smlal v22.4s, \c3\().4h, v0.h[1]199 smlal v22.4s, \c3\().4h, v0.h[2]
200 smull v18.4s, v16.4h, v0.h[0]200 smull v18.4s, v16.4h, v0.h[0]
201 smull v19.4s, v17.4h, v0.h[0]201 smull v19.4s, v17.4h, v0.h[0]
202 smlsl v20.4s, \c3\().4h, v0.h[2]202 smlsl v20.4s, \c3\().4h, v0.h[3]
203 rshrn v22.4h, v22.4s, #14203 rshrn v22.4h, v22.4s, #14
204 rshrn v18.4h, v18.4s, #14204 rshrn v18.4h, v18.4s, #14
205 rshrn v19.4h, v19.4s, #14205 rshrn v19.4h, v19.4s, #14
@@ -326,9 +326,9 @@ itxfm_func4x4 iwht, iwht · 120 unmodified lines
326 326
327.macro idct8327.macro idct8
328 dmbutterfly0 v16, v20, v16, v20, v2, v3, v4, v5, v6, v7 // v16 = t0a, v20 = t1a328 dmbutterfly0 v16, v20, v16, v20, v2, v3, v4, v5, v6, v7 // v16 = t0a, v20 = t1a
329 dmbutterfly v18, v22, v0.h[1], v0.h[2], v2, v3, v4, v5 // v18 = t2a, v22 = t3a329 dmbutterfly v18, v22, v0.h[2], v0.h[3], v2, v3, v4, v5 // v18 = t2a, v22 = t3a
330 dmbutterfly v17, v23, v0.h[3], v0.h[4], v2, v3, v4, v5 // v17 = t4a, v23 = t7a330 dmbutterfly v17, v23, v0.h[4], v0.h[5], v2, v3, v4, v5 // v17 = t4a, v23 = t7a
331 dmbutterfly v21, v19, v0.h[5], v0.h[6], v2, v3, v4, v5 // v21 = t5a, v19 = t6a331 dmbutterfly v21, v19, v0.h[6], v0.h[7], v2, v3, v4, v5 // v21 = t5a, v19 = t6a
332 332
333 butterfly_8h v24, v25, v16, v22 // v24 = t0, v25 = t3333 butterfly_8h v24, v25, v16, v22 // v24 = t0, v25 = t3
334 butterfly_8h v28, v29, v17, v21 // v28 = t4, v29 = t5a334 butterfly_8h v28, v29, v17, v21 // v28 = t4, v29 = t5a
@@ -361,8 +361,8 @@ itxfm_func4x4 iwht, iwht · 26 unmodified lines
361 dmbutterfly0 v19, v20, v6, v7, v24, v26, v27, v28, v29, v30 // v19 = -out[3], v20 = out[4]361 dmbutterfly0 v19, v20, v6, v7, v24, v26, v27, v28, v29, v30 // v19 = -out[3], v20 = out[4]
362 neg v19.8h, v19.8h // v19 = out[3]362 neg v19.8h, v19.8h // v19 = out[3]
363 363
364 dmbutterfly_l v26, v27, v28, v29, v5, v3, v0.h[1], v0.h[2] // v26,v27 = t5a, v28,v29 = t4a364 dmbutterfly_l v26, v27, v28, v29, v5, v3, v0.h[2], v0.h[3] // v26,v27 = t5a, v28,v29 = t4a
365 dmbutterfly_l v2, v3, v4, v5, v31, v25, v0.h[2], v0.h[1] // v2,v3 = t6a, v4,v5 = t7a365 dmbutterfly_l v2, v3, v4, v5, v31, v25, v0.h[3], v0.h[2] // v2,v3 = t6a, v4,v5 = t7a
366 366
367 dbutterfly_n v17, v30, v28, v29, v2, v3, v6, v7, v24, v25 // v17 = -out[1], v30 = t6367 dbutterfly_n v17, v30, v28, v29, v2, v3, v6, v7, v24, v25 // v17 = -out[1], v30 = t6
368 dbutterfly_n v22, v31, v26, v27, v4, v5, v6, v7, v24, v25 // v22 = out[6], v31 = t7368 dbutterfly_n v22, v31, v26, v27, v4, v5, v6, v7, v24, v25 // v22 = out[6], v31 = t7
@@ -543,13 +543,13 @@ endfunc · 174 unmodified lines
543 543
544function idct16544function idct16
545 dmbutterfly0 v16, v24, v16, v24, v2, v3, v4, v5, v6, v7 // v16 = t0a, v24 = t1a545 dmbutterfly0 v16, v24, v16, v24, v2, v3, v4, v5, v6, v7 // v16 = t0a, v24 = t1a
546 dmbutterfly v20, v28, v0.h[1], v0.h[2], v2, v3, v4, v5 // v20 = t2a, v28 = t3a546 dmbutterfly v20, v28, v0.h[2], v0.h[3], v2, v3, v4, v5 // v20 = t2a, v28 = t3a
547 dmbutterfly v18, v30, v0.h[3], v0.h[4], v2, v3, v4, v5 // v18 = t4a, v30 = t7a547 dmbutterfly v18, v30, v0.h[4], v0.h[5], v2, v3, v4, v5 // v18 = t4a, v30 = t7a
548 dmbutterfly v26, v22, v0.h[5], v0.h[6], v2, v3, v4, v5 // v26 = t5a, v22 = t6a548 dmbutterfly v26, v22, v0.h[6], v0.h[7], v2, v3, v4, v5 // v26 = t5a, v22 = t6a
549 dmbutterfly v17, v31, v0.h[7], v1.h[0], v2, v3, v4, v5 // v17 = t8a, v31 = t15a549 dmbutterfly v17, v31, v1.h[0], v1.h[1], v2, v3, v4, v5 // v17 = t8a, v31 = t15a
550 dmbutterfly v25, v23, v1.h[1], v1.h[2], v2, v3, v4, v5 // v25 = t9a, v23 = t14a550 dmbutterfly v25, v23, v1.h[2], v1.h[3], v2, v3, v4, v5 // v25 = t9a, v23 = t14a
551 dmbutterfly v21, v27, v1.h[3], v1.h[4], v2, v3, v4, v5 // v21 = t10a, v27 = t13a551 dmbutterfly v21, v27, v1.h[4], v1.h[5], v2, v3, v4, v5 // v21 = t10a, v27 = t13a
552 dmbutterfly v29, v19, v1.h[5], v1.h[6], v2, v3, v4, v5 // v29 = t11a, v19 = t12a552 dmbutterfly v29, v19, v1.h[6], v1.h[7], v2, v3, v4, v5 // v29 = t11a, v19 = t12a
553 553
554 butterfly_8h v4, v28, v16, v28 // v4 = t0, v28 = t3554 butterfly_8h v4, v28, v16, v28 // v4 = t0, v28 = t3
555 butterfly_8h v5, v20, v24, v20 // v5 = t1, v20 = t2555 butterfly_8h v5, v20, v24, v20 // v5 = t1, v20 = t2
@@ -561,20 +561,20 @@ function idct16 · 5 unmodified lines
561 butterfly_8h v29, v23, v31, v23 // v29 = t15, v23 = t14561 butterfly_8h v29, v23, v31, v23 // v29 = t15, v23 = t14
562 562
563 dmbutterfly0 v22, v26, v22, v26, v2, v3, v18, v19, v30, v31 // v22 = t6a, v26 = t5a563 dmbutterfly0 v22, v26, v22, v26, v2, v3, v18, v19, v30, v31 // v22 = t6a, v26 = t5a
564 dmbutterfly v23, v25, v0.h[1], v0.h[2], v18, v19, v30, v31 // v23 = t9a, v25 = t14a564 dmbutterfly v23, v25, v0.h[2], v0.h[3], v18, v19, v30, v31 // v23 = t9a, v25 = t14a
565 dmbutterfly v27, v21, v0.h[1], v0.h[2], v18, v19, v30, v31, neg=1 // v27 = t13a, v21 = t10a565 dmbutterfly v27, v21, v0.h[2], v0.h[3], v18, v19, v30, v31, neg=1 // v27 = t13a, v21 = t10a
566 idct16_end566 idct16_end
567endfunc567endfunc
568 568
569function idct16_half569function idct16_half
570 dmbutterfly0_h v16, v24, v16, v24, v2, v3, v4, v5, v6, v7 // v16 = t0a, v24 = t1a570 dmbutterfly0_h v16, v24, v16, v24, v2, v3, v4, v5, v6, v7 // v16 = t0a, v24 = t1a
571 dmbutterfly_h1 v20, v28, v0.h[1], v0.h[2], v2, v3, v4, v5 // v20 = t2a, v28 = t3a571 dmbutterfly_h1 v20, v28, v0.h[2], v0.h[3], v2, v3, v4, v5 // v20 = t2a, v28 = t3a
572 dmbutterfly_h1 v18, v30, v0.h[3], v0.h[4], v2, v3, v4, v5 // v18 = t4a, v30 = t7a572 dmbutterfly_h1 v18, v30, v0.h[4], v0.h[5], v2, v3, v4, v5 // v18 = t4a, v30 = t7a
573 dmbutterfly_h2 v26, v22, v0.h[5], v0.h[6], v2, v3, v4, v5 // v26 = t5a, v22 = t6a573 dmbutterfly_h2 v26, v22, v0.h[6], v0.h[7], v2, v3, v4, v5 // v26 = t5a, v22 = t6a
574 dmbutterfly_h1 v17, v31, v0.h[7], v1.h[0], v2, v3, v4, v5 // v17 = t8a, v31 = t15a574 dmbutterfly_h1 v17, v31, v1.h[0], v1.h[1], v2, v3, v4, v5 // v17 = t8a, v31 = t15a
575 dmbutterfly_h2 v25, v23, v1.h[1], v1.h[2], v2, v3, v4, v5 // v25 = t9a, v23 = t14a575 dmbutterfly_h2 v25, v23, v1.h[2], v1.h[3], v2, v3, v4, v5 // v25 = t9a, v23 = t14a
576 dmbutterfly_h1 v21, v27, v1.h[3], v1.h[4], v2, v3, v4, v5 // v21 = t10a, v27 = t13a576 dmbutterfly_h1 v21, v27, v1.h[4], v1.h[5], v2, v3, v4, v5 // v21 = t10a, v27 = t13a
577 dmbutterfly_h2 v29, v19, v1.h[5], v1.h[6], v2, v3, v4, v5 // v29 = t11a, v19 = t12a577 dmbutterfly_h2 v29, v19, v1.h[6], v1.h[7], v2, v3, v4, v5 // v29 = t11a, v19 = t12a
578 578
579 butterfly_8h v4, v28, v16, v28 // v4 = t0, v28 = t3579 butterfly_8h v4, v28, v16, v28 // v4 = t0, v28 = t3
580 butterfly_8h v5, v20, v24, v20 // v5 = t1, v20 = t2580 butterfly_8h v5, v20, v24, v20 // v5 = t1, v20 = t2
@@ -586,20 +586,20 @@ function idct16_half · 5 unmodified lines
586 butterfly_8h v29, v23, v31, v23 // v29 = t15, v23 = t14586 butterfly_8h v29, v23, v31, v23 // v29 = t15, v23 = t14
587 587
588 dmbutterfly0 v22, v26, v22, v26, v2, v3, v18, v19, v30, v31 // v22 = t6a, v26 = t5a588 dmbutterfly0 v22, v26, v22, v26, v2, v3, v18, v19, v30, v31 // v22 = t6a, v26 = t5a
589 dmbutterfly v23, v25, v0.h[1], v0.h[2], v18, v19, v30, v31 // v23 = t9a, v25 = t14a589 dmbutterfly v23, v25, v0.h[2], v0.h[3], v18, v19, v30, v31 // v23 = t9a, v25 = t14a
590 dmbutterfly v27, v21, v0.h[1], v0.h[2], v18, v19, v30, v31, neg=1 // v27 = t13a, v21 = t10a590 dmbutterfly v27, v21, v0.h[2], v0.h[3], v18, v19, v30, v31, neg=1 // v27 = t13a, v21 = t10a
591 idct16_end591 idct16_end
592endfunc592endfunc
593 593
594function idct16_quarter594function idct16_quarter
595 dsmull_h v24, v25, v19, v1.h[6]595 dsmull_h v24, v25, v19, v1.h[7]
596 dsmull_h v4, v5, v17, v0.h[7]596 dsmull_h v4, v5, v17, v1.h[0]
597 dsmull_h v7, v6, v18, v0.h[4]597 dsmull_h v7, v6, v18, v0.h[5]
598 dsmull_h v30, v31, v18, v0.h[3]598 dsmull_h v30, v31, v18, v0.h[4]
599 neg v24.4s, v24.4s599 neg v24.4s, v24.4s
600 neg v25.4s, v25.4s600 neg v25.4s, v25.4s
601 dsmull_h v29, v28, v17, v1.h[0]601 dsmull_h v29, v28, v17, v1.h[1]
602 dsmull_h v26, v27, v19, v1.h[5]602 dsmull_h v26, v27, v19, v1.h[6]
603 dsmull_h v22, v23, v16, v0.h[0]603 dsmull_h v22, v23, v16, v0.h[0]
604 drshrn_h v24, v24, v25, #14604 drshrn_h v24, v24, v25, #14
605 drshrn_h v16, v4, v5, #14605 drshrn_h v16, v4, v5, #14
@@ -609,8 +609,8 @@ function idct16_quarter · 3 unmodified lines
609 drshrn_h v17, v26, v27, #14609 drshrn_h v17, v26, v27, #14
610 drshrn_h v28, v22, v23, #14610 drshrn_h v28, v22, v23, #14
611 611
612 dmbutterfly_l v20, v21, v22, v23, v17, v24, v0.h[1], v0.h[2]612 dmbutterfly_l v20, v21, v22, v23, v17, v24, v0.h[2], v0.h[3]
613 dmbutterfly_l v18, v19, v30, v31, v29, v16, v0.h[1], v0.h[2]613 dmbutterfly_l v18, v19, v30, v31, v29, v16, v0.h[2], v0.h[3]
614 neg v22.4s, v22.4s614 neg v22.4s, v22.4s
615 neg v23.4s, v23.4s615 neg v23.4s, v23.4s
616 drshrn_h v27, v20, v21, #14616 drshrn_h v27, v20, v21, #14
@@ -646,16 +646,16 @@ function iadst16 · 29 unmodified lines
646 dmbutterfly_l v10, v11, v8, v9, v17, v30, v1.h[7], v1.h[6] // v10,v11 = t15, v8,v9 = t14646 dmbutterfly_l v10, v11, v8, v9, v17, v30, v1.h[7], v1.h[6] // v10,v11 = t15, v8,v9 = t14
647 ld1 {v0.8h}, [x10]647 ld1 {v0.8h}, [x10]
648 dbutterfly_n v22, v30, v6, v7, v10, v11, v12, v13, v10, v11 // v22 = t7a, v30 = t15a648 dbutterfly_n v22, v30, v6, v7, v10, v11, v12, v13, v10, v11 // v22 = t7a, v30 = t15a
649 dmbutterfly_l v14, v15, v12, v13, v23, v24, v0.h[3], v0.h[4] // v14,v15 = t9, v12,v13 = t8649 dmbutterfly_l v14, v15, v12, v13, v23, v24, v0.h[4], v0.h[5] // v14,v15 = t9, v12,v13 = t8
650 dbutterfly_n v25, v17, v4, v5, v8, v9, v6, v7, v8, v9 // v25 = t6a, v17 = t14a650 dbutterfly_n v25, v17, v4, v5, v8, v9, v6, v7, v8, v9 // v25 = t6a, v17 = t14a
651 651
652 dmbutterfly_l v4, v5, v6, v7, v28, v19, v0.h[4], v0.h[3] // v4,v5 = t12, v6,v7 = t13652 dmbutterfly_l v4, v5, v6, v7, v28, v19, v0.h[5], v0.h[4] // v4,v5 = t12, v6,v7 = t13
653 dbutterfly_n v23, v19, v12, v13, v4, v5, v8, v9, v4, v5 // v23 = t8a, v19 = t12a653 dbutterfly_n v23, v19, v12, v13, v4, v5, v8, v9, v4, v5 // v23 = t8a, v19 = t12a
654 dmbutterfly_l v10, v11, v8, v9, v21, v26, v0.h[5], v0.h[6] // v10,v11 = t11, v8,v9 = t10654 dmbutterfly_l v10, v11, v8, v9, v21, v26, v0.h[6], v0.h[7] // v10,v11 = t11, v8,v9 = t10
655 butterfly_8h_r v4, v27, v16, v27 // v4 = t4, v27 = t0655 butterfly_8h_r v4, v27, v16, v27 // v4 = t4, v27 = t0
656 dbutterfly_n v24, v28, v14, v15, v6, v7, v12, v13, v6, v7 // v24 = t9a, v28 = t13a656 dbutterfly_n v24, v28, v14, v15, v6, v7, v12, v13, v6, v7 // v24 = t9a, v28 = t13a
657 657
658 dmbutterfly_l v12, v13, v14, v15, v30, v17, v0.h[6], v0.h[5] // v12,v13 = t14, v14,v15 = t15658 dmbutterfly_l v12, v13, v14, v15, v30, v17, v0.h[7], v0.h[6] // v12,v13 = t14, v14,v15 = t15
659 butterfly_8h_r v5, v20, v31, v20 // v5 = t5, v20 = t1659 butterfly_8h_r v5, v20, v31, v20 // v5 = t5, v20 = t1
660 dbutterfly_n v21, v17, v8, v9, v12, v13, v6, v7, v12, v13 // v21 = t10a, v17 = t14a660 dbutterfly_n v21, v17, v8, v9, v12, v13, v6, v7, v12, v13 // v21 = t10a, v17 = t14a
661 dbutterfly_n v26, v30, v10, v11, v14, v15, v8, v9, v14, v15 // v26 = t11a, v30 = t15a661 dbutterfly_n v26, v30, v10, v11, v14, v15, v8, v9, v14, v15 // v26 = t11a, v30 = t15a
@@ -663,15 +663,15 @@ function iadst16 · 1 unmodified line
663 butterfly_8h_r v6, v25, v18, v25 // v6 = t6, v25 = t2663 butterfly_8h_r v6, v25, v18, v25 // v6 = t6, v25 = t2
664 butterfly_8h_r v7, v22, v29, v22 // v7 = t7, v22 = t3664 butterfly_8h_r v7, v22, v29, v22 // v7 = t7, v22 = t3
665 665
666 dmbutterfly_l v10, v11, v8, v9, v19, v28, v0.h[1], v0.h[2] // v10,v11 = t13, v8,v9 = t12666 dmbutterfly_l v10, v11, v8, v9, v19, v28, v0.h[2], v0.h[3] // v10,v11 = t13, v8,v9 = t12
667 dmbutterfly_l v12, v13, v14, v15, v30, v17, v0.h[2], v0.h[1] // v12,v13 = t14, v14,v15 = t15667 dmbutterfly_l v12, v13, v14, v15, v30, v17, v0.h[3], v0.h[2] // v12,v13 = t14, v14,v15 = t15
668 668
669 dbutterfly_n v18, v30, v8, v9, v12, v13, v16, v17, v12, v13 // v18 = out[2], v30 = t14a669 dbutterfly_n v18, v30, v8, v9, v12, v13, v16, v17, v12, v13 // v18 = out[2], v30 = t14a
670 dbutterfly_n v29, v17, v10, v11, v14, v15, v12, v13, v14, v15 // v29 = -out[13], v17 = t15a670 dbutterfly_n v29, v17, v10, v11, v14, v15, v12, v13, v14, v15 // v29 = -out[13], v17 = t15a
671 neg v29.8h, v29.8h // v29 = out[13]671 neg v29.8h, v29.8h // v29 = out[13]
672 672
673 dmbutterfly_l v10, v11, v8, v9, v4, v5, v0.h[1], v0.h[2] // v10,v11 = t5a, v8,v9 = t4a673 dmbutterfly_l v10, v11, v8, v9, v4, v5, v0.h[2], v0.h[3] // v10,v11 = t5a, v8,v9 = t4a
674 dmbutterfly_l v12, v13, v14, v15, v7, v6, v0.h[2], v0.h[1] // v12,v13 = t6a, v14,v15 = t7a674 dmbutterfly_l v12, v13, v14, v15, v7, v6, v0.h[3], v0.h[2] // v12,v13 = t6a, v14,v15 = t7a
675 675
676 butterfly_8h v2, v6, v27, v25 // v2 = out[0], v6 = t2a676 butterfly_8h v2, v6, v27, v25 // v2 = out[0], v6 = t2a
677 butterfly_8h v3, v7, v23, v21 // v3 =-out[1], v7 = t10677 butterfly_8h v3, v7, v23, v21 // v3 =-out[1], v7 = t10
@@ -1101,10 +1101,10 @@ endfunc · 423 unmodified lines
1101 butterfly_8h v7, v3, v29, v31 // v7 = t31a, v3 = t28a1101 butterfly_8h v7, v3, v29, v31 // v7 = t31a, v3 = t28a
1102 butterfly_8h v22, v27, v24, v27 // v22 = t30, v27 = t291102 butterfly_8h v22, v27, v24, v27 // v22 = t30, v27 = t29
1103 1103
1104 dmbutterfly v27, v20, v0.h[1], v0.h[2], v24, v25, v30, v31 // v27 = t18a, v20 = t29a1104 dmbutterfly v27, v20, v0.h[2], v0.h[3], v24, v25, v30, v31 // v27 = t18a, v20 = t29a
1105 dmbutterfly v3, v5, v0.h[1], v0.h[2], v24, v25, v30, v31 // v3 = t19, v5 = t281105 dmbutterfly v3, v5, v0.h[2], v0.h[3], v24, v25, v30, v31 // v3 = t19, v5 = t28
1106 dmbutterfly v28, v6, v0.h[1], v0.h[2], v24, v25, v30, v31, neg=1 // v28 = t27, v6 = t201106 dmbutterfly v28, v6, v0.h[2], v0.h[3], v24, v25, v30, v31, neg=1 // v28 = t27, v6 = t20
1107 dmbutterfly v26, v21, v0.h[1], v0.h[2], v24, v25, v30, v31, neg=1 // v26 = t26a, v21 = t21a1107 dmbutterfly v26, v21, v0.h[2], v0.h[3], v24, v25, v30, v31, neg=1 // v26 = t26a, v21 = t21a
1108 1108
1109 butterfly_8h v31, v24, v7, v4 // v31 = t31, v24 = t241109 butterfly_8h v31, v24, v7, v4 // v31 = t31, v24 = t24
1110 butterfly_8h v30, v25, v22, v23 // v30 = t30a, v25 = t25a1110 butterfly_8h v30, v25, v22, v23 // v30 = t30a, v25 = t25a
@@ -1141,10 +1141,10 @@ function idct32_odd · 30 unmodified lines
1141 butterfly_8h v29, v23, v31, v23 // v29 = t31, v23 = t301141 butterfly_8h v29, v23, v31, v23 // v29 = t31, v23 = t30
1142 butterfly_8h v31, v27, v19, v27 // v31 = t28, v27 = t291142 butterfly_8h v31, v27, v19, v27 // v31 = t28, v27 = t29
1143 1143
1144 dmbutterfly v23, v24, v0.h[3], v0.h[4], v16, v17, v18, v19 // v23 = t17a, v24 = t30a1144 dmbutterfly v23, v24, v0.h[4], v0.h[5], v16, v17, v18, v19 // v23 = t17a, v24 = t30a
1145 dmbutterfly v27, v20, v0.h[3], v0.h[4], v16, v17, v18, v19, neg=1 // v27 = t29a, v20 = t18a1145 dmbutterfly v27, v20, v0.h[4], v0.h[5], v16, v17, v18, v19, neg=1 // v27 = t29a, v20 = t18a
1146 dmbutterfly v21, v26, v0.h[5], v0.h[6], v16, v17, v18, v19 // v21 = t21a, v26 = t26a1146 dmbutterfly v21, v26, v0.h[6], v0.h[7], v16, v17, v18, v19 // v21 = t21a, v26 = t26a
1147 dmbutterfly v25, v22, v0.h[5], v0.h[6], v16, v17, v18, v19, neg=1 // v25 = t25a, v22 = t22a1147 dmbutterfly v25, v22, v0.h[6], v0.h[7], v16, v17, v18, v19, neg=1 // v25 = t25a, v22 = t22a
1148 idct32_end1148 idct32_end
1149endfunc1149endfunc
1150 1150
@@ -1167,10 +1167,10 @@ function idct32_odd_half · 16 unmodified lines
1167 butterfly_8h v29, v23, v31, v23 // v29 = t31, v23 = t301167 butterfly_8h v29, v23, v31, v23 // v29 = t31, v23 = t30
1168 butterfly_8h v31, v27, v19, v27 // v31 = t28, v27 = t291168 butterfly_8h v31, v27, v19, v27 // v31 = t28, v27 = t29
1169 1169
1170 dmbutterfly v23, v24, v0.h[3], v0.h[4], v16, v17, v18, v19 // v23 = t17a, v24 = t30a1170 dmbutterfly v23, v24, v0.h[4], v0.h[5], v16, v17, v18, v19 // v23 = t17a, v24 = t30a
1171 dmbutterfly v27, v20, v0.h[3], v0.h[4], v16, v17, v18, v19, neg=1 // v27 = t29a, v20 = t18a1171 dmbutterfly v27, v20, v0.h[4], v0.h[5], v16, v17, v18, v19, neg=1 // v27 = t29a, v20 = t18a
1172 dmbutterfly v21, v26, v0.h[5], v0.h[6], v16, v17, v18, v19 // v21 = t21a, v26 = t26a1172 dmbutterfly v21, v26, v0.h[6], v0.h[7], v16, v17, v18, v19 // v21 = t21a, v26 = t26a
1173 dmbutterfly v25, v22, v0.h[5], v0.h[6], v16, v17, v18, v19, neg=1 // v25 = t25a, v22 = t22a1173 dmbutterfly v25, v22, v0.h[6], v0.h[7], v16, v17, v18, v19, neg=1 // v25 = t25a, v22 = t22a
1174 idct32_end1174 idct32_end
1175endfunc1175endfunc
1176 1176
@@ -1198,18 +1198,18 @@ function idct32_odd_quarter · 21 unmodified lines
1198 drshrn_h v6, v20, v21, #141198 drshrn_h v6, v20, v21, #14
1199 drshrn_h v30, v24, v25, #141199 drshrn_h v30, v24, v25, #14
1200 1200
1201 dmbutterfly_l v16, v17, v18, v19, v29, v4, v0.h[3], v0.h[4]1201 dmbutterfly_l v16, v17, v18, v19, v29, v4, v0.h[4], v0.h[5]
1202 dmbutterfly_l v27, v26, v20, v21, v31, v5, v0.h[3], v0.h[4]1202 dmbutterfly_l v27, v26, v20, v21, v31, v5, v0.h[4], v0.h[5]
1203 drshrn_h v23, v16, v17, #141203 drshrn_h v23, v16, v17, #14
1204 drshrn_h v24, v18, v19, #141204 drshrn_h v24, v18, v19, #14
1205 neg v20.4s, v20.4s1205 neg v20.4s, v20.4s
1206 neg v21.4s, v21.4s1206 neg v21.4s, v21.4s
1207 drshrn_h v27, v27, v26, #141207 drshrn_h v27, v27, v26, #14
1208 drshrn_h v20, v20, v21, #141208 drshrn_h v20, v20, v21, #14
1209 dmbutterfly_l v16, v17, v18, v19, v30, v6, v0.h[5], v0.h[6]1209 dmbutterfly_l v16, v17, v18, v19, v30, v6, v0.h[6], v0.h[7]
1210 drshrn_h v21, v16, v17, #141210 drshrn_h v21, v16, v17, #14
1211 drshrn_h v26, v18, v19, #141211 drshrn_h v26, v18, v19, #14
1212 dmbutterfly_l v16, v17, v18, v19, v28, v7, v0.h[5], v0.h[6]1212 dmbutterfly_l v16, v17, v18, v19, v28, v7, v0.h[6], v0.h[7]
1213 drshrn_h v25, v16, v17, #141213 drshrn_h v25, v16, v17, #14
1214 neg v18.4s, v18.4s1214 neg v18.4s, v18.4s
1215 neg v19.4s, v19.4s1215 neg v19.4s, v19.4s

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t