[PATCH 57/57][Arm][GAS] MVE Tests
[external/binutils.git] / gas / testsuite / gas / arm / mve-vpt.s
1 .syntax unified
2 .thumb
3
4 .macro ins_2 cond2
5 vaddt.i32 q0, q1, q2
6 vadd\cond2\().i32 q0, q1, q2
7 .endm
8 .macro ins_3 cond2, cond3
9 ins_2 \cond2
10 vadd\cond3\().i32 q0, q1, q2
11 .endm
12 .macro ins_4 cond2, cond3, cond4
13 ins_3 \cond2, \cond3
14 vadd\cond4\().i32 q0, q1, q2
15 .endm
16
17 .macro vpt_1 data, cond, op1, op2
18 vpt\data \cond, \op1, \op2
19 vaddt.i32 q0, q1, q2
20 .endm
21
22 .macro help mask, data, cond, op1, op2
23 vpt\mask\data \cond, \op1, \op2
24 .endm
25
26 .macro vpt_2 data, cond, op1, op2
27 .irp cond2, t, e
28 help \cond2, \data, \cond, \op1, \op2
29 ins_2 \cond2
30 .endr
31 .endm
32
33 .macro vpt_3 data, cond, op1, op2
34 .irp cond2, t, e
35 .irp cond3, t, e
36 help \cond2\cond3, \data, \cond, \op1, \op2
37 ins_3 \cond2, \cond3
38 .endr
39 .endr
40 .endm
41
42 .macro vpt_4 data, cond, op1, op2
43 .irp cond2, t, e
44 .irp cond3, t, e
45 .irp cond4, t, e
46 help \cond2\cond3\cond4, \data, \cond, \op1, \op2
47 ins_4 \cond2, \cond3, \cond4
48 .endr
49 .endr
50 .endr
51 .endm
52
53 .macro vpt_qq data, cond
54 .irp op1, q0, q1, q4, q7
55 .irp op2, q0, q2, q5,  q7
56 vpt_1 \data, \cond, \op1, \op2
57 vpt_2 \data, \cond, \op1, \op2
58 vpt_3 \data, \cond, \op1, \op2
59 vpt_4 \data, \cond, \op1, \op2
60 .endr
61 .endr
62 .endm
63
64 .macro vpt_qr data, cond
65 .irp op1, q0, q1, q4, q7
66 .irp op2, r0, r1, r2, r4, r7, r8, r9, r10, r12, r14, zr
67 vpt_1 \data, \cond, \op1, \op2
68 vpt_2 \data, \cond, \op1, \op2
69 vpt_3 \data, \cond, \op1, \op2
70 vpt_4 \data, \cond, \op1, \op2
71 .endr
72 .endr
73 .endm
74
75 .irp data, .f16, .f32
76 .irp cond, eq, ne, gt, le, ge, lt
77 vpt_qq \data, \cond
78 vpt_qr \data, \cond
79 .endr
80 .endr
81
82 .irp data, .i8, .i16, .i32
83 .irp cond, eq, ne
84 vpt_qq \data, \cond
85 vpt_qr \data, \cond
86 .endr
87 .endr
88
89 .irp data, .u8, .u16, .u32
90 .irp cond, cs, hi
91 vpt_qq \data, \cond
92 vpt_qr \data, \cond
93 .endr
94 .endr
95
96 .irp data, .s8, .s16, .s32
97 .irp cond, ge, lt, gt, le
98 vpt_qq \data, \cond
99 vpt_qr \data, \cond
100 .endr
101 .endr
102
103 vpst
104 vaddt.i32 q0, q1, q2
105
106 .irp cond2, t, e
107 vpst\cond2
108 ins_2 \cond2
109 .irp cond3, t, e
110 vpst\cond2\cond3
111 ins_3 \cond2, \cond3
112 .irp cond4, t, e
113 vpst\cond2\cond3\cond4
114 ins_4 \cond2, \cond3, \cond4
115 .endr
116 .endr
117 .endr