[PATCH 57/57][Arm][GAS] MVE Tests
[external/binutils.git] / gas / testsuite / gas / arm / mve-vstrldr-3.s
1 .syntax unified
2 .thumb
3
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
13 .endr
14 .endr
15 .endm
16
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
20 .endr
21 .endr
22
23 .irp imm, 0, 2, 4, 8, 16, 32, 64, 128, 254, 240, 30
24 n_vstr_w_vldr vstrh.32, \imm
25 .endr
26
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
34 .endr
35 .endr
36 .endm
37
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]
43 .endr
44 .endr
45 .endm
46
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
51 .endr
52 .endr
53
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
58 .endr
59 .endr
60
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
65 .endr
66 .endr
67
68 vpstet
69 vstrbt.u8 q0, [r12, #1]
70 vstrbe.16 q3, [r2, #-127]
71 vstrbt.32 q3, [r3, #-93]!
72 vpstete
73 vstrht.f16 q5, [r4], #254
74 vstrhe.32 q5, [r0, #126]
75 vstrwt.32  q3, [r5, #508]
76 vstrwe.u32 q5, [r8], #244
77
78
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
82 .endr
83 .endr
84
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
88 .endr
89 .endr
90
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
95 .endr
96 .endr
97
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
102 .endr
103 .endr
104
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
109 .endr
110 .endr
111 vpstet
112 vldrbt.u8 q0, [r12, #1]
113 vldrbe.u16 q3, [r2, #-127]
114 vldrbt.u32 q3, [r3, #-93]!
115 vpstete
116 vldrht.f16 q5, [r4], #254
117 vldrhe.s32 q5, [r0, #126]
118 vldrwt.32  q3, [r5, #508]
119 vldrwe.u32 q5, [r8], #244