Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / MC / AArch64 / SVE2p1 / pext.s
blob86a79316a1e6ce771704749ce02406aa12368b9b
1 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2 < %s \
2 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1 < %s \
4 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
5 // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
6 // RUN: | FileCheck %s --check-prefix=CHECK-ERROR
7 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2 < %s \
8 // RUN: | llvm-objdump -d --mattr=+sme2 - | FileCheck %s --check-prefix=CHECK-INST
9 // RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2 < %s \
10 // RUN: | llvm-objdump -d --mattr=-sme2,-sve2p1 - | FileCheck %s --check-prefix=CHECK-UNKNOWN
11 // RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2 < %s \
12 // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \
13 // RUN: | llvm-mc -triple=aarch64 -mattr=+sme2 -disassemble -show-encoding \
14 // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
16 pext p0.h, pn8[0] // 00100101-01100000-01110000-00010000
17 // CHECK-INST: pext p0.h, pn8[0]
18 // CHECK-ENCODING: [0x10,0x70,0x60,0x25]
19 // CHECK-ERROR: instruction requires: sme2 or sve2p1
20 // CHECK-UNKNOWN: 25607010 <unknown>
22 pext p5.h, pn10[1] // 00100101-01100000-01110001-01010101
23 // CHECK-INST: pext p5.h, pn10[1]
24 // CHECK-ENCODING: [0x55,0x71,0x60,0x25]
25 // CHECK-ERROR: instruction requires: sme2 or sve2p1
26 // CHECK-UNKNOWN: 25607155 <unknown>
28 pext p7.h, pn13[1] // 00100101-01100000-01110001-10110111
29 // CHECK-INST: pext p7.h, pn13[1]
30 // CHECK-ENCODING: [0xb7,0x71,0x60,0x25]
31 // CHECK-ERROR: instruction requires: sme2 or sve2p1
32 // CHECK-UNKNOWN: 256071b7 <unknown>
34 pext p15.h, pn15[3] // 00100101-01100000-01110011-11111111
35 // CHECK-INST: pext p15.h, pn15[3]
36 // CHECK-ENCODING: [0xff,0x73,0x60,0x25]
37 // CHECK-ERROR: instruction requires: sme2 or sve2p1
38 // CHECK-UNKNOWN: 256073ff <unknown>
40 pext p0.s, pn8[0] // 00100101-10100000-01110000-00010000
41 // CHECK-INST: pext p0.s, pn8[0]
42 // CHECK-ENCODING: [0x10,0x70,0xa0,0x25]
43 // CHECK-ERROR: instruction requires: sme2 or sve2p1
44 // CHECK-UNKNOWN: 25a07010 <unknown>
46 pext p5.s, pn10[1] // 00100101-10100000-01110001-01010101
47 // CHECK-INST: pext p5.s, pn10[1]
48 // CHECK-ENCODING: [0x55,0x71,0xa0,0x25]
49 // CHECK-ERROR: instruction requires: sme2 or sve2p1
50 // CHECK-UNKNOWN: 25a07155 <unknown>
52 pext p7.s, pn13[1] // 00100101-10100000-01110001-10110111
53 // CHECK-INST: pext p7.s, pn13[1]
54 // CHECK-ENCODING: [0xb7,0x71,0xa0,0x25]
55 // CHECK-ERROR: instruction requires: sme2 or sve2p1
56 // CHECK-UNKNOWN: 25a071b7 <unknown>
58 pext p15.s, pn15[3] // 00100101-10100000-01110011-11111111
59 // CHECK-INST: pext p15.s, pn15[3]
60 // CHECK-ENCODING: [0xff,0x73,0xa0,0x25]
61 // CHECK-ERROR: instruction requires: sme2 or sve2p1
62 // CHECK-UNKNOWN: 25a073ff <unknown>
64 pext p0.d, pn8[0] // 00100101-11100000-01110000-00010000
65 // CHECK-INST: pext p0.d, pn8[0]
66 // CHECK-ENCODING: [0x10,0x70,0xe0,0x25]
67 // CHECK-ERROR: instruction requires: sme2 or sve2p1
68 // CHECK-UNKNOWN: 25e07010 <unknown>
70 pext p5.d, pn10[1] // 00100101-11100000-01110001-01010101
71 // CHECK-INST: pext p5.d, pn10[1]
72 // CHECK-ENCODING: [0x55,0x71,0xe0,0x25]
73 // CHECK-ERROR: instruction requires: sme2 or sve2p1
74 // CHECK-UNKNOWN: 25e07155 <unknown>
76 pext p7.d, pn13[1] // 00100101-11100000-01110001-10110111
77 // CHECK-INST: pext p7.d, pn13[1]
78 // CHECK-ENCODING: [0xb7,0x71,0xe0,0x25]
79 // CHECK-ERROR: instruction requires: sme2 or sve2p1
80 // CHECK-UNKNOWN: 25e071b7 <unknown>
82 pext p15.d, pn15[3] // 00100101-11100000-01110011-11111111
83 // CHECK-INST: pext p15.d, pn15[3]
84 // CHECK-ENCODING: [0xff,0x73,0xe0,0x25]
85 // CHECK-ERROR: instruction requires: sme2 or sve2p1
86 // CHECK-UNKNOWN: 25e073ff <unknown>
88 pext p0.b, pn8[0] // 00100101-00100000-01110000-00010000
89 // CHECK-INST: pext p0.b, pn8[0]
90 // CHECK-ENCODING: [0x10,0x70,0x20,0x25]
91 // CHECK-ERROR: instruction requires: sme2 or sve2p1
92 // CHECK-UNKNOWN: 25207010 <unknown>
94 pext p5.b, pn10[1] // 00100101-00100000-01110001-01010101
95 // CHECK-INST: pext p5.b, pn10[1]
96 // CHECK-ENCODING: [0x55,0x71,0x20,0x25]
97 // CHECK-ERROR: instruction requires: sme2 or sve2p1
98 // CHECK-UNKNOWN: 25207155 <unknown>
100 pext p7.b, pn13[1] // 00100101-00100000-01110001-10110111
101 // CHECK-INST: pext p7.b, pn13[1]
102 // CHECK-ENCODING: [0xb7,0x71,0x20,0x25]
103 // CHECK-ERROR: instruction requires: sme2 or sve2p1
104 // CHECK-UNKNOWN: 252071b7 <unknown>
106 pext p15.b, pn15[3] // 00100101-00100000-01110011-11111111
107 // CHECK-INST: pext p15.b, pn15[3]
108 // CHECK-ENCODING: [0xff,0x73,0x20,0x25]
109 // CHECK-ERROR: instruction requires: sme2 or sve2p1
110 // CHECK-UNKNOWN: 252073ff <unknown>
112 pext {p0.h, p1.h}, pn8[0] // 00100101-01100000-01110100-00010000
113 // CHECK-INST: pext { p0.h, p1.h }, pn8[0]
114 // CHECK-ENCODING: [0x10,0x74,0x60,0x25]
115 // CHECK-ERROR: instruction requires: sme2 or sve2p1
116 // CHECK-UNKNOWN: 25607410 <unknown>
118 pext {p5.h, p6.h}, pn10[1] // 00100101-01100000-01110101-01010101
119 // CHECK-INST: pext { p5.h, p6.h }, pn10[1]
120 // CHECK-ENCODING: [0x55,0x75,0x60,0x25]
121 // CHECK-ERROR: instruction requires: sme2 or sve2p1
122 // CHECK-UNKNOWN: 25607555 <unknown>
124 pext {p7.h, p8.h}, pn13[1] // 00100101-01100000-01110101-10110111
125 // CHECK-INST: pext { p7.h, p8.h }, pn13[1]
126 // CHECK-ENCODING: [0xb7,0x75,0x60,0x25]
127 // CHECK-ERROR: instruction requires: sme2 or sve2p1
128 // CHECK-UNKNOWN: 256075b7 <unknown>
130 pext {p15.h, p0.h}, pn15[1] // 00100101-01100000-01110101-11111111
131 // CHECK-INST: pext { p15.h, p0.h }, pn15[1]
132 // CHECK-ENCODING: [0xff,0x75,0x60,0x25]
133 // CHECK-ERROR: instruction requires: sme2 or sve2p1
134 // CHECK-UNKNOWN: 256075ff <unknown>
136 pext {p0.s, p1.s}, pn8[0] // 00100101-10100000-01110100-00010000
137 // CHECK-INST: pext { p0.s, p1.s }, pn8[0]
138 // CHECK-ENCODING: [0x10,0x74,0xa0,0x25]
139 // CHECK-ERROR: instruction requires: sme2 or sve2p1
140 // CHECK-UNKNOWN: 25a07410 <unknown>
142 pext {p5.s, p6.s}, pn10[1] // 00100101-10100000-01110101-01010101
143 // CHECK-INST: pext { p5.s, p6.s }, pn10[1]
144 // CHECK-ENCODING: [0x55,0x75,0xa0,0x25]
145 // CHECK-ERROR: instruction requires: sme2 or sve2p1
146 // CHECK-UNKNOWN: 25a07555 <unknown>
148 pext {p7.s, p8.s}, pn13[1] // 00100101-10100000-01110101-10110111
149 // CHECK-INST: pext { p7.s, p8.s }, pn13[1]
150 // CHECK-ENCODING: [0xb7,0x75,0xa0,0x25]
151 // CHECK-ERROR: instruction requires: sme2 or sve2p1
152 // CHECK-UNKNOWN: 25a075b7 <unknown>
154 pext {p15.s, p0.s}, pn15[1] // 00100101-10100000-01110101-11111111
155 // CHECK-INST: pext { p15.s, p0.s }, pn15[1]
156 // CHECK-ENCODING: [0xff,0x75,0xa0,0x25]
157 // CHECK-ERROR: instruction requires: sme2 or sve2p1
158 // CHECK-UNKNOWN: 25a075ff <unknown>
160 pext {p0.d, p1.d}, pn8[0] // 00100101-11100000-01110100-00010000
161 // CHECK-INST: pext { p0.d, p1.d }, pn8[0]
162 // CHECK-ENCODING: [0x10,0x74,0xe0,0x25]
163 // CHECK-ERROR: instruction requires: sme2 or sve2p1
164 // CHECK-UNKNOWN: 25e07410 <unknown>
166 pext {p5.d, p6.d}, pn10[1] // 00100101-11100000-01110101-01010101
167 // CHECK-INST: pext { p5.d, p6.d }, pn10[1]
168 // CHECK-ENCODING: [0x55,0x75,0xe0,0x25]
169 // CHECK-ERROR: instruction requires: sme2 or sve2p1
170 // CHECK-UNKNOWN: 25e07555 <unknown>
172 pext {p7.d, p8.d}, pn13[1] // 00100101-11100000-01110101-10110111
173 // CHECK-INST: pext { p7.d, p8.d }, pn13[1]
174 // CHECK-ENCODING: [0xb7,0x75,0xe0,0x25]
175 // CHECK-ERROR: instruction requires: sme2 or sve2p1
176 // CHECK-UNKNOWN: 25e075b7 <unknown>
178 pext {p15.d, p0.d}, pn15[1] // 00100101-11100000-01110101-11111111
179 // CHECK-INST: pext { p15.d, p0.d }, pn15[1]
180 // CHECK-ENCODING: [0xff,0x75,0xe0,0x25]
181 // CHECK-ERROR: instruction requires: sme2 or sve2p1
182 // CHECK-UNKNOWN: 25e075ff <unknown>
184 pext {p7.b, p8.b}, pn13[1] // 00100101-00100000-01110101-10110111
185 // CHECK-INST: pext { p7.b, p8.b }, pn13[1]
186 // CHECK-ENCODING: [0xb7,0x75,0x20,0x25]
187 // CHECK-ERROR: instruction requires: sme2 or sve2p1
188 // CHECK-UNKNOWN: 252075b7 <unknown>
190 pext {p15.b, p0.b}, pn15[1] // 00100101-00100000-01110101-11111111
191 // CHECK-INST: pext { p15.b, p0.b }, pn15[1]
192 // CHECK-ENCODING: [0xff,0x75,0x20,0x25]
193 // CHECK-ERROR: instruction requires: sme2 or sve2p1
194 // CHECK-UNKNOWN: 252075ff <unknown>