4 .macro all_vstr op, size, ext
5 .irp op1, q0, q1, q2, q4, q7
6 .irp op2, r0, r1, r2, r4, r7, r8, r10, r12, r13, r14
7 .irp op3, q0, q1, q2, q4, q7
8 \op\()\size \op1, [\op2, \op3]
9 \op\()\size \op1, [\op2, \op3, uxtw #\ext]
15 .irp size, .8, .16, .32
16 all_vstr vstrb, \size, 0
20 all_vstr vstrh, \size, 1
23 all_vstr vstrw, .32, 2
24 all_vstr vstrd, .64, 3
29 vstrbt.16 q2, [r3, q1]
30 vstrbe.16 q3, [r4, q6]
32 vstrbt.32 q4, [r8, q2]
33 vstrbe.32 q7, [sp, q6]
34 vstrht.16 q0, [r0, q1]
35 vstrhe.16 q2, [r2, q0]
37 vstrht.32 q1, [r1, q7]
38 vstrhe.32 q3, [r3, q2]
39 vstrht.16 q4, [r6, q5, UXTW #1]
41 vstrht.16 q6, [r10, q3, UXTW #1]
42 vstrhe.32 q5, [r7, q4, UXTW #1]
43 vstrht.32 q7, [sp, q6, UXTW #1]
44 vstrwe.32 q0, [r2, q1]
46 vstrwt.32 q1, [r5, q7]
47 vstrwe.32 q2, [r8, q3, UXTW #2]
48 vstrwt.32 q5, [sp, q0, UXTW #2]
49 vstrde.64 q0, [sp, q7]
51 vstrdt.64 q2, [r0, q1]
52 vstrdt.64 q3, [r3, q5, UXTW #3]
53 vstrde.64 q7, [r7, q4, UXTW #3]
55 .macro all_vldr op, size, ext
56 .irp op2, r0, r1, r2, r4, r7, r8, r10, r12, r13, r14
57 .irp op3, q1, q2, q4, q7
58 \op\()\size q0, [\op2, \op3]
59 \op\()\size q0, [\op2, \op3, uxtw #\ext]
61 .irp op3, q0, q2, q4, q7
62 \op\()\size q1, [\op2, \op3]
63 \op\()\size q1, [\op2, \op3, uxtw #\ext]
65 .irp op3, q0, q1, q4, q7
66 \op\()\size q2, [\op2, \op3]
67 \op\()\size q2, [\op2, \op3, uxtw #\ext]
69 .irp op3, q0, q1, q2, q7
70 \op\()\size q4, [\op2, \op3]
71 \op\()\size q4, [\op2, \op3, uxtw #\ext]
73 .irp op3, q0, q1, q2, q4
74 \op\()\size q7, [\op2, \op3]
75 \op\()\size q7, [\op2, \op3, uxtw #\ext]
80 .irp data, .u8, .s16, .u16, .s32, .u32
81 all_vldr vldrb, \data, 0
84 .irp data, .u16, .s32, .u32
85 all_vldr vldrh, \data, 1
88 all_vldr vldrw, .u32, 2
89 all_vldr vldrd, .u64, 3
92 vldrbt.u8 q1, [r0, q0]
93 vldrbe.u8 q1, [r2, q2]
94 vldrbt.u16 q2, [r3, q1]
95 vldrbe.s16 q3, [r4, q6]
97 vldrbt.u32 q4, [r8, q2]
98 vldrbe.s32 q7, [sp, q6]
99 vldrht.u16 q0, [r0, q1]
100 vldrhe.u16 q2, [r2, q0]
102 vldrht.u32 q1, [r1, q7]
103 vldrhe.u32 q3, [r3, q2]
104 vldrht.u16 q4, [r6, q5, UXTW #1]
105 vldrhe.u16 q6, [r10, q3, UXTW #1]
107 vldrht.u32 q5, [r7, q4, UXTW #1]
108 vldrhe.u32 q7, [sp, q6, UXTW #1]
109 vldrwt.u32 q0, [r2, q1]
110 vldrwe.u32 q1, [r5, q7]
112 vldrwt.u32 q2, [r8, q3, UXTW #2]
113 vldrwe.u32 q5, [sp, q0, UXTW #2]
114 vldrdt.u64 q0, [sp, q7]
115 vldrde.u64 q2, [r0, q1]
117 vldrdt.u64 q3, [r3, q5, UXTW #3]
118 vldrde.u64 q7, [r7, q4, UXTW #3]