]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/arm/mve-vstrldr-1.s
[PATCH 57/57][Arm][GAS] MVE Tests
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / arm / mve-vstrldr-1.s
1 .syntax unified
2 .thumb
3
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]
10 .endr
11 .endr
12 .endr
13 .endm
14
15 .irp size, .8, .16, .32
16 all_vstr vstrb, \size, 0
17 .endr
18
19 .irp size, .16, .32
20 all_vstr vstrh, \size, 1
21 .endr
22
23 all_vstr vstrw, .32, 2
24 all_vstr vstrd, .64, 3
25
26 vpstete
27 vstrbt.8 q1, [r0, q0]
28 vstrbe.8 q1, [r2, q2]
29 vstrbt.16 q2, [r3, q1]
30 vstrbe.16 q3, [r4, q6]
31 vpstete
32 vstrbt.32 q4, [r8, q2]
33 vstrbe.32 q7, [sp, q6]
34 vstrht.16 q0, [r0, q1]
35 vstrhe.16 q2, [r2, q0]
36 vpstet
37 vstrht.32 q1, [r1, q7]
38 vstrhe.32 q3, [r3, q2]
39 vstrht.16 q4, [r6, q5, UXTW #1]
40 vpstete
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]
45 vpstete
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]
50 vpstte
51 vstrdt.64 q2, [r0, q1]
52 vstrdt.64 q3, [r3, q5, UXTW #3]
53 vstrde.64 q7, [r7, q4, UXTW #3]
54
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]
60 .endr
61 .irp op3, q0, q2, q4, q7
62 \op\()\size q1, [\op2, \op3]
63 \op\()\size q1, [\op2, \op3, uxtw #\ext]
64 .endr
65 .irp op3, q0, q1, q4, q7
66 \op\()\size q2, [\op2, \op3]
67 \op\()\size q2, [\op2, \op3, uxtw #\ext]
68 .endr
69 .irp op3, q0, q1, q2, q7
70 \op\()\size q4, [\op2, \op3]
71 \op\()\size q4, [\op2, \op3, uxtw #\ext]
72 .endr
73 .irp op3, q0, q1, q2, q4
74 \op\()\size q7, [\op2, \op3]
75 \op\()\size q7, [\op2, \op3, uxtw #\ext]
76 .endr
77 .endr
78 .endm
79
80 .irp data, .u8, .s16, .u16, .s32, .u32
81 all_vldr vldrb, \data, 0
82 .endr
83
84 .irp data, .u16, .s32, .u32
85 all_vldr vldrh, \data, 1
86 .endr
87
88 all_vldr vldrw, .u32, 2
89 all_vldr vldrd, .u64, 3
90
91 vpstete
92 vldrbt.u8 q1, [r0, q0]
93 vldrbe.u8 q1, [r2, q2]
94 vldrbt.u16 q2, [r3, q1]
95 vldrbe.s16 q3, [r4, q6]
96 vpstete
97 vldrbt.u32 q4, [r8, q2]
98 vldrbe.s32 q7, [sp, q6]
99 vldrht.u16 q0, [r0, q1]
100 vldrhe.u16 q2, [r2, q0]
101 vpstete
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]
106 vpstete
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]
111 vpstete
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]
116 vpste
117 vldrdt.u64 q3, [r3, q5, UXTW #3]
118 vldrde.u64 q7, [r7, q4, UXTW #3]