-
Notifications
You must be signed in to change notification settings - Fork 12
/
fixedpoint_radix4_fft_symbolic_opt_M85.s
113 lines (107 loc) · 7.52 KB
/
fixedpoint_radix4_fft_symbolic_opt_M85.s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
vldrw.s32 q4, [r11] // *
// original source code
// vldrw.s32 q4, [r11] // *
sub lr, lr, #1
.p2align 2
fixedpoint_radix4_fft_loop_start:
vldrw.s32 q0, [r5] // *........................
vhadd.s32 q6, q0, q4 // ....*....................
vldrw.s32 q2, [r2] // ..*......................
vhsub.s32 q0, q0, q4 // .....*...................
vldrw.s32 q5, [r1] // ...*.....................
vhadd.s32 q3, q2, q5 // ......*..................
vldrw.s32 q4, [r7] , #16 // ...........*.............
vhsub.s32 q7, q6, q3 // ..........*..............
vqdmladhx.s32 q1, q4, q7 // ............*............
vhadd.s32 q6, q6, q3 // ........*................
vqdmlsdh.s32 q1, q4, q7 // .............*...........
vhsub.s32 q2, q2, q5 // .......*.................
vstrw.u32 q6, [r5] , #16 // .........*...............
vhcadd.s32 q6, q0, q2, #270 // ...............*.........
vstrw.u32 q1, [r2] , #16 // ..............*..........
vhcadd.s32 q5, q0, q2, #90 // ....................*....
vldrw.s32 q0, [r12] , #16 // ................*........
vqdmladhx.s32 q2, q0, q6 // .................*.......
vldrw.s32 q3, [r10] , #16 // .....................*...
vqdmlsdh.s32 q2, q0, q6 // ..................*......
vstrw.u32 q2, [r11] , #16 // ...................*.....
vqdmladhx.s32 q0, q3, q5 // ......................*..
vldrw.s32 q4, [r11] // .e.......................
vqdmlsdh.s32 q0, q3, q5 // .......................*.
vstrw.u32 q0, [r1] , #16 // ........................*
// original source code
// vldrw.s32 vA, [inA] // ...*........................
// vldrw.s32 vC, [inC] // e...........................
// vldrw.s32 vB, [inB] // .....*......................
// vldrw.s32 vD, [inD] // .......*....................
// vhadd.s32 vSm0, vA, vC // ....*.......................
// vhsub.s32 vDf0, vA, vC // ......*.....................
// vhadd.s32 vSm1, vB, vD // ........*...................
// vhsub.s32 vDf1, vB, vD // ..............*.............
// vhadd.s32 vT0, vSm0, vSm1 // ............*...............
// vstrw.u32 vT0, [inA] , #16 // ...............*............
// vhsub.s32 vT0, vSm0, vSm1 // ..........*.................
// vldrw.s32 vW, [pW2] , #16 // .........*..................
// vqdmladhx.s32 vT1, vW, vT0 // ...........*................
// vqdmlsdh.s32 vT1, vW, vT0 // .............*..............
// vstrw.u32 vT1, [inB] , #16 // .................*..........
// vhcadd.s32 vT0, vDf0, vDf1, #270 // ................*...........
// vldrw.s32 vW, [pW1] , #16 // ...................*........
// vqdmladhx.s32 vT1, vW, vT0 // ....................*.......
// vqdmlsdh.s32 vT1, vW, vT0 // ......................*.....
// vstrw.u32 vT1, [inC] , #16 // .......................*....
// vhcadd.s32 vT0, vDf0, vDf1, #90 // ..................*.........
// vldrw.s32 vW, [pW3] , #16 // .....................*......
// vqdmladhx.s32 vT1, vW, vT0 // ........................*...
// vqdmlsdh.s32 vT1, vW, vT0 // ..........................*.
// vstrw.u32 vT1, [inD] , #16 // ...........................*
le lr, fixedpoint_radix4_fft_loop_start
vldrw.s32 q5, [r5] // *.......................
vhadd.s32 q0, q5, q4 // .*......................
vldrw.s32 q2, [r2] // ..*.....................
vhsub.s32 q6, q5, q4 // ...*....................
vldrw.s32 q5, [r1] // ....*...................
vhadd.s32 q7, q2, q5 // .....*..................
vldrw.s32 q3, [r7] , #16 // ......*.................
vhadd.s32 q1, q0, q7 // .........*..............
vstrw.u32 q1, [r5] , #16 // ............*...........
vhsub.s32 q7, q0, q7 // .......*................
vqdmladhx.s32 q0, q3, q7 // ........*...............
vhsub.s32 q1, q2, q5 // ...........*............
vqdmlsdh.s32 q0, q3, q7 // ..........*.............
vstrw.u32 q0, [r2] , #16 // ..............*.........
vhcadd.s32 q0, q6, q1, #90 // ...............*........
vldrw.s32 q5, [r10] , #16 // ..................*.....
vqdmladhx.s32 q3, q5, q0 // .....................*..
vldrw.s32 q2, [r12] , #16 // ................*.......
vqdmlsdh.s32 q3, q5, q0 // ......................*.
vhcadd.s32 q0, q6, q1, #270 // .............*..........
vqdmladhx.s32 q1, q2, q0 // .................*......
vstrw.u32 q3, [r1] , #16 // .......................*
vqdmlsdh.s32 q1, q2, q0 // ...................*....
vstrw.u32 q1, [r11] , #16 // ....................*...
// original source code
// vldrw.s32 q0, [r5] // *.......................
// vhadd.s32 q6, q0, q4 // .*......................
// vldrw.s32 q2, [r2] // ..*.....................
// vhsub.s32 q0, q0, q4 // ...*....................
// vldrw.s32 q5, [r1] // ....*...................
// vhadd.s32 q3, q2, q5 // .....*..................
// vldrw.s32 q4, [r7] , #16 // ......*.................
// vhsub.s32 q7, q6, q3 // .........*..............
// vqdmladhx.s32 q1, q4, q7 // ..........*.............
// vhadd.s32 q6, q6, q3 // .......*................
// vqdmlsdh.s32 q1, q4, q7 // ............*...........
// vhsub.s32 q2, q2, q5 // ...........*............
// vstrw.u32 q6, [r5] , #16 // ........*...............
// vhcadd.s32 q6, q0, q2, #270 // ...................*....
// vstrw.u32 q1, [r2] , #16 // .............*..........
// vhcadd.s32 q5, q0, q2, #90 // ..............*.........
// vldrw.s32 q0, [r12] , #16 // .................*......
// vqdmladhx.s32 q2, q0, q6 // ....................*...
// vldrw.s32 q3, [r10] , #16 // ...............*........
// vqdmlsdh.s32 q2, q0, q6 // ......................*.
// vstrw.u32 q2, [r11] , #16 // .......................*
// vqdmladhx.s32 q0, q3, q5 // ................*.......
// vqdmlsdh.s32 q0, q3, q5 // ..................*.....
// vstrw.u32 q0, [r1] , #16 // .....................*..