Commit | Line | Data |
---|---|---|
4d6ac854 AV |
1 | .syntax unified |
2 | .thumb | |
3 | ||
4 | .macro helper_q0 op | |
5 | .irp op2, q1, q2, q4, q7 | |
6 | .irp op3, q1, q2, q4, q7 | |
7 | \op q0, \op2, \op3 | |
8 | .endr | |
9 | .endr | |
10 | .endm | |
11 | ||
12 | .macro helper_q1 op | |
13 | .irp op2, q0, q2, q4, q7 | |
14 | .irp op3, q0, q2, q4, q7 | |
15 | \op q1, \op2, \op3 | |
16 | .endr | |
17 | .endr | |
18 | .endm | |
19 | ||
20 | .macro helper_q2 op | |
21 | .irp op2, q0, q1, q4, q7 | |
22 | .irp op3, q0, q1, q4, q7 | |
23 | \op q2, \op2, \op3 | |
24 | .endr | |
25 | .endr | |
26 | .endm | |
27 | ||
28 | .macro helper_q4 op | |
29 | .irp op2, q0, q1, q2, q7 | |
30 | .irp op3, q0, q1, q2, q7 | |
31 | \op q4, \op2, \op3 | |
32 | .endr | |
33 | .endr | |
34 | .endm | |
35 | ||
36 | ||
37 | .macro helper_q7 op | |
38 | .irp op2, q0, q1, q2, q4 | |
39 | .irp op3, q0, q1, q2, q4 | |
40 | \op q7, \op2, \op3 | |
41 | .endr | |
42 | .endr | |
43 | .endm | |
44 | ||
45 | .macro all_qqq op | |
46 | helper_q0 \op | |
47 | helper_q1 \op | |
48 | helper_q2 \op | |
49 | helper_q4 \op | |
50 | helper_q7 \op | |
51 | .endm | |
52 | ||
53 | .irp data, s8, u8, s16, u16, p8, p16 | |
54 | .irp op1, q0, q1, q2, q4, q7 | |
55 | .irp op2, q0, q1, q2, q4, q7 | |
56 | .irp op3, q0, q1, q2, q4, q7 | |
57 | vmullb.\data \op1, \op2, \op3 | |
58 | vmullt.\data \op1, \op2, \op3 | |
59 | .endr | |
60 | .endr | |
61 | .endr | |
62 | .endr | |
63 | ||
64 | all_qqq vmullb.s32 | |
65 | all_qqq vmullb.u32 | |
66 | all_qqq vmullt.s32 | |
67 | all_qqq vmullt.u32 | |
68 | ||
69 | vpstete | |
70 | vmullbt.s8 q0, q1, q2 | |
71 | vmullbe.s16 q1, q0, q3 | |
72 | vmullbt.s32 q2, q3, q4 | |
73 | vmullbe.u8 q3, q2, q1 | |
74 | vpstete | |
75 | vmullbt.u16 q4, q5, q7 | |
76 | vmullbe.u32 q5, q4, q6 | |
77 | vmullbt.p8 q6, q7, q5 | |
78 | vmullbe.p16 q7, q6, q0 | |
79 | ||
80 | vpstete | |
81 | vmulltt.s8 q0, q1, q2 | |
82 | vmullte.s16 q1, q0, q3 | |
83 | vmulltt.s32 q2, q3, q4 | |
84 | vmullte.u8 q3, q2, q1 | |
85 | vpstete | |
86 | vmulltt.u16 q4, q5, q7 | |
87 | vmullte.u32 q5, q4, q6 | |
88 | vmulltt.p8 q6, q7, q5 | |
89 | vmullte.p16 q7, q6, q0 |