1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve < %s \
2// RUN:        | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST
3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \
4// RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
6// RUN:        | llvm-objdump -d --mattr=+sve - | FileCheck %s --check-prefix=CHECK-INST
7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve < %s \
8// RUN:        | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN
9
10decw    x0
11// CHECK-INST: decw    x0
12// CHECK-ENCODING: [0xe0,0xe7,0xb0,0x04]
13// CHECK-ERROR: instruction requires: sve
14// CHECK-UNKNOWN: e0 e7 b0 04 <unknown>
15
16decw    x0, all
17// CHECK-INST: decw    x0
18// CHECK-ENCODING: [0xe0,0xe7,0xb0,0x04]
19// CHECK-ERROR: instruction requires: sve
20// CHECK-UNKNOWN: e0 e7 b0 04 <unknown>
21
22decw    x0, all, mul #1
23// CHECK-INST: decw    x0
24// CHECK-ENCODING: [0xe0,0xe7,0xb0,0x04]
25// CHECK-ERROR: instruction requires: sve
26// CHECK-UNKNOWN: e0 e7 b0 04 <unknown>
27
28decw    x0, all, mul #16
29// CHECK-INST: decw    x0, all, mul #16
30// CHECK-ENCODING: [0xe0,0xe7,0xbf,0x04]
31// CHECK-ERROR: instruction requires: sve
32// CHECK-UNKNOWN: e0 e7 bf 04 <unknown>
33
34decw    x0, pow2
35// CHECK-INST: decw    x0, pow2
36// CHECK-ENCODING: [0x00,0xe4,0xb0,0x04]
37// CHECK-ERROR: instruction requires: sve
38// CHECK-UNKNOWN: 00 e4 b0 04 <unknown>
39
40decw    x0, vl1
41// CHECK-INST: decw    x0, vl1
42// CHECK-ENCODING: [0x20,0xe4,0xb0,0x04]
43// CHECK-ERROR: instruction requires: sve
44// CHECK-UNKNOWN: 20 e4 b0 04 <unknown>
45
46decw    x0, vl2
47// CHECK-INST: decw    x0, vl2
48// CHECK-ENCODING: [0x40,0xe4,0xb0,0x04]
49// CHECK-ERROR: instruction requires: sve
50// CHECK-UNKNOWN: 40 e4 b0 04 <unknown>
51
52decw    x0, vl3
53// CHECK-INST: decw    x0, vl3
54// CHECK-ENCODING: [0x60,0xe4,0xb0,0x04]
55// CHECK-ERROR: instruction requires: sve
56// CHECK-UNKNOWN: 60 e4 b0 04 <unknown>
57
58decw    x0, vl4
59// CHECK-INST: decw    x0, vl4
60// CHECK-ENCODING: [0x80,0xe4,0xb0,0x04]
61// CHECK-ERROR: instruction requires: sve
62// CHECK-UNKNOWN: 80 e4 b0 04 <unknown>
63
64decw    x0, vl5
65// CHECK-INST: decw    x0, vl5
66// CHECK-ENCODING: [0xa0,0xe4,0xb0,0x04]
67// CHECK-ERROR: instruction requires: sve
68// CHECK-UNKNOWN: a0 e4 b0 04 <unknown>
69
70decw    x0, vl6
71// CHECK-INST: decw    x0, vl6
72// CHECK-ENCODING: [0xc0,0xe4,0xb0,0x04]
73// CHECK-ERROR: instruction requires: sve
74// CHECK-UNKNOWN: c0 e4 b0 04 <unknown>
75
76decw    x0, vl7
77// CHECK-INST: decw    x0, vl7
78// CHECK-ENCODING: [0xe0,0xe4,0xb0,0x04]
79// CHECK-ERROR: instruction requires: sve
80// CHECK-UNKNOWN: e0 e4 b0 04 <unknown>
81
82decw    x0, vl8
83// CHECK-INST: decw    x0, vl8
84// CHECK-ENCODING: [0x00,0xe5,0xb0,0x04]
85// CHECK-ERROR: instruction requires: sve
86// CHECK-UNKNOWN: 00 e5 b0 04 <unknown>
87
88decw    x0, vl16
89// CHECK-INST: decw    x0, vl16
90// CHECK-ENCODING: [0x20,0xe5,0xb0,0x04]
91// CHECK-ERROR: instruction requires: sve
92// CHECK-UNKNOWN: 20 e5 b0 04 <unknown>
93
94decw    x0, vl32
95// CHECK-INST: decw    x0, vl32
96// CHECK-ENCODING: [0x40,0xe5,0xb0,0x04]
97// CHECK-ERROR: instruction requires: sve
98// CHECK-UNKNOWN: 40 e5 b0 04 <unknown>
99
100decw    x0, vl64
101// CHECK-INST: decw    x0, vl64
102// CHECK-ENCODING: [0x60,0xe5,0xb0,0x04]
103// CHECK-ERROR: instruction requires: sve
104// CHECK-UNKNOWN: 60 e5 b0 04 <unknown>
105
106decw    x0, vl128
107// CHECK-INST: decw    x0, vl128
108// CHECK-ENCODING: [0x80,0xe5,0xb0,0x04]
109// CHECK-ERROR: instruction requires: sve
110// CHECK-UNKNOWN: 80 e5 b0 04 <unknown>
111
112decw    x0, vl256
113// CHECK-INST: decw    x0, vl256
114// CHECK-ENCODING: [0xa0,0xe5,0xb0,0x04]
115// CHECK-ERROR: instruction requires: sve
116// CHECK-UNKNOWN: a0 e5 b0 04 <unknown>
117
118decw    x0, #14
119// CHECK-INST: decw    x0, #14
120// CHECK-ENCODING: [0xc0,0xe5,0xb0,0x04]
121// CHECK-ERROR: instruction requires: sve
122// CHECK-UNKNOWN: c0 e5 b0 04 <unknown>
123
124decw    x0, #28
125// CHECK-INST: decw    x0, #28
126// CHECK-ENCODING: [0x80,0xe7,0xb0,0x04]
127// CHECK-ERROR: instruction requires: sve
128// CHECK-UNKNOWN: 80 e7 b0 04 <unknown>
129