]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/testsuite/gas/aarch64/alias.s
b4ad17270c8c38fb96bb9c39d7a9ba641a6a9298
[thirdparty/binutils-gdb.git] / gas / testsuite / gas / aarch64 / alias.s
1 /* alias.s Test file for AArch64 instructions aliases or disassembly
2 preference. It is also used to test the -Mno-aliases option in
3 the disassemler.
4
5 Copyright (C) 2012-2022 Free Software Foundation, Inc.
6 Contributed by ARM Ltd.
7
8 This file is part of GAS.
9
10 GAS is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3 of the license, or
13 (at your option) any later version.
14
15 GAS is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; see the file COPYING3. If not,
22 see <http://www.gnu.org/licenses/>. */
23
24 .text
25 extr w0, w1, w2, #15
26 extr x0, x1, x2, #15
27 extr w0, w3, w3, #7
28 extr x0, x5, x5, #7
29 ror w6, w7, #18
30 ror x6, x7, #40
31
32 madd w0, w1, w2, w3
33 madd w0, w1, w2, wzr
34 mul w0, w1, w2
35 msub x0, x1, x2, x3
36 msub x0, x1, x2, xzr
37 mneg x0, x1, x2
38 smaddl x0, w1, w2, x3
39 smaddl x0, w1, w2, xzr
40 smull x0, w1, w2
41 smsubl x0, w1, w2, x3
42 smsubl x0, w1, w2, xzr
43 smnegl x0, w1, w2
44 umaddl x0, w1, w2, x3
45 umaddl x0, w1, w2, xzr
46 umull x0, w1, w2
47 umsubl x0, w1, w2, x3
48 umsubl x0, w1, w2, xzr
49 umnegl x0, w1, w2
50
51 csinc w0, w1, wzr, eq
52 csinc w0, w1, w1, eq
53 cinc w0, w1, ne
54 csinc w0, wzr, wzr, lo
55 cset w0, cs
56 csinv x0, x1, xzr, hs
57 csinv x0, x1, x1, hs
58 cinv x0, x1, cc
59 csinv x0, xzr, xzr, mi
60 csetm x0, pl
61 csneg x0, xzr, x30, lt
62 csneg x0, x30, x30, lt
63 cneg x0, x30, ge
64
65 ands x0, x1, x2
66 ands xzr, x1, x2
67 tst x1, x2
68 ands wzr, w1, w2, ror #31
69 tst w1, w2, ror #31
70
71 orn x0, x1, x2
72 orn xzr, x1, x2
73 orn x0, xzr, x2
74 mvn x0, x2
75 orn wzr, w1, w2, asr #15
76 orn w0, wzr, w2, asr #15
77 mvn w0, w2, asr #15
78
79 mov v0.8b, v1.8b
80 orr v0.8b, v1.8b, v2.8b
81 orr v0.8b, v1.8b, v1.8b
82
83 mov x3, x17
84 orr x3, x0, x17
85 orr x3, xzr, x17
86
87 bic x1, x1, #(1<<30)-1
88 bic x0, x0, #2
89 bic w0, w0, #2
90
91 ands wzr, w24, #0x7f8
92 ands w0, w24, #0x7f8
93 tst w24, #0x7f8
94
95 subs wzr, w3, #0x20
96 subs w3, wsp, #0x20
97 cmp w3, #0x20
98
99 adds xzr, x15, #0xfff
100 subs x15, sp, #0xfff
101 cmn x15, #0xfff
102
103 .macro asimdshll s
104 \s\()xtl v8.8h, v2.8b
105 \s\()shll v8.8h, v2.8b, #0
106 \s\()xtl2 v8.8h, v2.16b
107 \s\()shll2 v8.8h, v2.16b, #0
108 \s\()xtl v8.4s, v2.4h
109 \s\()shll v8.4s, v2.4h, #0
110 \s\()xtl2 v8.4s, v2.8h
111 \s\()shll2 v8.4s, v2.8h, #0
112 \s\()xtl v8.2d, v2.2s
113 \s\()shll v8.2d, v2.2s, #0
114 \s\()xtl2 v8.2d, v2.4s
115 \s\()shll2 v8.2d, v2.4s, #0
116 .endm
117
118 asimdshll s
119 asimdshll u
120
121 csinc w0, w1, w1, nv
122 csinc w0, w1, w1, al
123 csinc w0, wzr, wzr, nv
124 csinc w0, wzr, wzr, al
125 csinv w0, w1, w1, nv
126 csinv w0, w1, w1, al
127 csinv w0, wzr, wzr, nv
128 csinv w0, wzr, wzr, al
129 csneg w0, w1, w1, nv
130 csneg w0, w1, w1, al