]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/aarch64/rdma.s
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / aarch64 / rdma.s
1 /* rdma.s Test file for AArch64 v8.1 Advanced-SIMD instructions.
2
3 Copyright (C) 2012-2021 Free Software Foundation, Inc. Contributed by ARM Ltd.
4
5 This file is part of GAS.
6
7 GAS is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the license, or
10 (at your option) any later version.
11
12 GAS is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; see the file COPYING3. If not,
19 see <http://www.gnu.org/licenses/>. */
20
21
22 .text
23 .ifdef DIRECTIVE
24 .arch_extension rdma
25 .endif
26
27 /* irp seems broken, so get creative. */
28 .macro vect_inst I, T
29 .irp x, 0.\T, 3.\T, 13.\T, 23.\T, 29.\T
30 .irp y, 1.\T, 4.\T, 14.\T, 24.\T, 30.\T
31 .irp z, 2.\T, 5.\T, 15.\T, 25.\T, 31.\T
32 \I v\x, v\y, v\z
33 .endr
34 .endr
35 .endr
36 .endm
37
38 .text
39 .irp inst, sqrdmlah, sqrdmlsh
40 .irp type, 4h, 8h, 2s, 4s
41 vect_inst \inst \type
42 .endr
43 .endr
44
45 .macro scalar_inst I R
46 \I \R\()0, \R\()1, \R\()2
47 .endm
48
49 .text
50 .irp inst, sqrdmlah, sqrdmlsh
51 .irp reg, s,h
52 scalar_inst \inst \reg
53 .endr
54 .endr
55
56 .macro vect_indexed_inst I S T N
57 .irp x, 0.\S\T, 3.\S\T, 13.\S\T, 23.\S\T, 29.\S\T
58 .irp y, 1.\S\T, 4.\S\T, 14.\S\T, 24.\S\T, 30.\S\T
59 .irp z, 0.\T[\N], 5.\T[\N], 10.\T[\N], 13.\T[\N], 15.\T[\N]
60 \I v\x, v\y, v\z
61 .endr
62 .endr
63 .endr
64 .endm
65
66 .text
67 .irp inst, sqrdmlah, sqrdmlsh
68 .irp size, 4, 8
69 .irp index 0,1,2,3
70 vect_indexed_inst \inst \size h \index
71 .endr
72 .endr
73 .irp size, 2, 4
74 .irp index 0,1,2,3
75 vect_indexed_inst \inst \size s \index
76 .endr
77 .endr
78 .endr
79
80 .macro scalar_indexed_inst I T N
81 \I \T\()0, \T\()1, v2.\T[\N]
82 .endm
83
84 .text
85 .irp inst, sqrdmlah, sqrdmlsh
86 .irp type h,s
87 .irp index 0,1,2,3
88 scalar_indexed_inst \inst \type \index
89 .endr
90 .endr
91 .endr