4 .macro n_vstr_w_vldr op, imm
5 .irp op1, q0, q1, q2, q4, q7
6 .irp op2, r0, r1, r2, r4, r7
7 \op \op1, [\op2, #\imm]
8 \op \op1, [\op2, #-\imm]
9 \op \op1, [\op2, #\imm]!
10 \op \op1, [\op2, #-\imm]!
11 \op \op1, [\op2], #\imm
12 \op \op1, [\op2], #-\imm
17 .irp mnem, vstrb.16, vstrb.32
18 .irp imm, 0, 1, 2, 4, 8, 16, 32, 64, 127, 120, 15
19 n_vstr_w_vldr \mnem, \imm
23 .irp imm, 0, 2, 4, 8, 16, 32, 64, 128, 254, 240, 30
24 n_vstr_w_vldr vstrh.32, \imm
27 .macro wb_same_size_vstr_vldr op, imm
28 .irp op1, q0, q1, q2, q4, q7
29 .irp op2, r0, r1, r2, r4, r7, r8, r10, r12, r14
30 \op \op1, [\op2, #\imm]!
31 \op \op1, [\op2, #-\imm]!
32 \op \op1, [\op2], #\imm
33 \op \op1, [\op2], #-\imm
38 .macro no_wb_same_size_vstr_vldr op, imm
39 .irp op1, q0, q1, q2, q4, q7
40 .irp op2, r0, r1, r2, r4, r7, r8, r10, r12, r13, r14
41 \op \op1, [\op2, #\imm]
42 \op \op1, [\op2, #-\imm]
47 .irp mnem, vstrb.8, vstrb.s8, vstrb.u8
48 .irp imm, 0, 1, 2, 4, 8, 16, 32, 64, 127, 120, 15
49 wb_same_size_vstr_vldr \mnem, \imm
50 no_wb_same_size_vstr_vldr \mnem, \imm
54 .irp mnem, vstrh.16, vstrh.s16, vstrh.u16, vstrh.f16
55 .irp imm, 0, 2, 4, 8, 16, 32, 64, 128, 254, 240, 30
56 wb_same_size_vstr_vldr \mnem, \imm
57 no_wb_same_size_vstr_vldr \mnem, \imm
61 .irp mnem, vstrw.32, vstrw.s32, vstrw.u32, vstrw.f32
62 .irp imm, 0, 4, 8, 16, 32, 64, 128, 256, 508, 480, 60
63 wb_same_size_vstr_vldr \mnem, \imm
64 no_wb_same_size_vstr_vldr \mnem, \imm
69 vstrbt.u8 q0, [r12, #1]
70 vstrbe.16 q3, [r2, #-127]
71 vstrbt.32 q3, [r3, #-93]!
73 vstrht.f16 q5, [r4], #254
74 vstrhe.32 q5, [r0, #126]
75 vstrwt.32 q3, [r5, #508]
76 vstrwe.u32 q5, [r8], #244
79 .irp mnem, vldrb.s16, vldrb.u16, vldrb.s32, vldrb.u32
80 .irp imm, 0, 1, 2, 4, 8, 16, 32, 64, 127, 120, 15
81 n_vstr_w_vldr \mnem, \imm
85 .irp mnem, vldrh.s32, vldrh.u32
86 .irp imm, 0, 2, 4, 8, 16, 32, 64, 128, 254, 240, 30
87 n_vstr_w_vldr \mnem, \imm
91 .irp mnem, vldrb.8, vldrb.s8, vldrb.u8
92 .irp imm, 0, 1, 2, 4, 8, 16, 32, 64, 127, 120, 15
93 wb_same_size_vstr_vldr \mnem, \imm
94 no_wb_same_size_vstr_vldr \mnem, \imm
98 .irp mnem, vldrh.16, vldrh.s16, vldrh.u16, vldrh.f16
99 .irp imm, 0, 2, 4, 8, 16, 32, 64, 128, 254, 240, 30
100 wb_same_size_vstr_vldr \mnem, \imm
101 no_wb_same_size_vstr_vldr \mnem, \imm
105 .irp mnem, vldrw.32, vldrw.s32, vldrw.u32, vldrw.f32
106 .irp imm, 0, 4, 8, 16, 32, 64, 128, 256, 508, 480, 60
107 wb_same_size_vstr_vldr \mnem, \imm
108 no_wb_same_size_vstr_vldr \mnem, \imm
112 vldrbt.u8 q0, [r12, #1]
113 vldrbe.u16 q3, [r2, #-127]
114 vldrbt.u32 q3, [r3, #-93]!
116 vldrht.f16 q5, [r4], #254
117 vldrhe.s32 q5, [r0, #126]
118 vldrwt.32 q3, [r5, #508]
119 vldrwe.u32 q5, [r8], #244