1/* rdma.s Test file for AArch64 v8.1 Advanced-SIMD instructions.
2
3   Copyright (C) 2012-2016 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	.macro vect_inst I T
28	\I v0.\()\T, v1.\()\T, v2.\()\T
29	.endm
30
31	.text
32	.irp    inst, sqrdmlah, sqrdmlsh
33        .irp    type, 4h, 8h, 2s, 4s
34	vect_inst \inst \type
35        .endr
36	.endr
37
38	.macro scalar_inst I R
39	\I \R\()0, \R\()1, \R\()2
40	.endm
41
42	.text
43	.irp    inst, sqrdmlah, sqrdmlsh
44	.irp    reg, s,h
45	scalar_inst \inst \reg
46        .endr
47        .endr
48
49	.macro vect_indexed_inst I S T N
50	\I v0.\S\T, v1.\S\T, v2.\T[\N]
51	.endm
52
53	.text
54	.irp    inst, sqrdmlah, sqrdmlsh
55	.irp    size, 4, 8
56	.irp    index 0,1,2,3
57	vect_indexed_inst \inst \size h \index
58        .endr
59	.endr
60	.irp    size, 2, 4
61	.irp    index 0,1,2,3
62	vect_indexed_inst \inst \size s \index
63        .endr
64	.endr
65	.endr
66
67	.macro scalar_indexed_inst I T N
68	\I \T\()0, \T\()1, v2.\T[\N]
69	.endm
70
71	.text
72	.irp    inst, sqrdmlah, sqrdmlsh
73	.irp    type h,s
74	.irp    index 0,1,2,3
75	scalar_indexed_inst \inst \type \index
76	.endr
77	.endr
78	.endr
79