1// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR
2
3//------------------------------------------------------------------------------
4// Armv8.4-A LDAPR and STLR instructions with immediate offsets
5//------------------------------------------------------------------------------
6
7STLURB   SP, [X1, #1]
8ldapurb  SP, [x12, #1]
9STLURB   W1, [XZR, #1]
10
11STLURB   W1, [X10, #-257]
12stlurb   w2, [x11, #256]
13STLURB   W3, [SP, #-257]
14
15ldapurb  w4, [x12, #-257]
16LDAPURB  W5, [X13, #256]
17LDAPURB  W6, [SP, #256]
18
19LDAPURSB W7, [X14, #-257]
20ldapursb w8, [x15, #256]
21ldapursb w9, [sp, #-257]
22
23LDAPURSB X0, [X16, #-257]
24LDAPURSB X1, [X17, #256]
25ldapursb x2, [sp, #256]
26
27stlurh   w10, [x18, #-257]
28STLURH   W11, [X19, #256]
29STLURH   W12, [SP, #-257]
30
31LDAPURH  W13, [X20, #-257]
32ldapurh  w14, [x21, #256]
33LDAPURH  W15, [SP, #256]
34
35LDAPURSH W16, [X22, #-257]
36LDAPURSH W17, [X23, #256]
37ldapursh w18, [sp, #-257]
38
39ldapursh x3, [x24, #-257]
40LDAPURSH X4, [X25, #256]
41LDAPURSH X5, [SP, #256]
42
43STLUR    W19, [X26, #-257]
44stlur    w20, [x27, #256]
45STLUR    W21, [SP, #-257]
46
47LDAPUR   W22, [X28, #-257]
48LDAPUR   W23, [X29, #256]
49ldapur   w24, [sp, #256]
50
51ldapursw x6, [x30, #-257]
52LDAPURSW X7, [X0, #256]
53LDAPURSW X8, [SP, #-257]
54
55STLUR    X9, [X1, #-257]
56stlur    x10, [x2, #256]
57STLUR    X11, [SP, #256]
58
59LDAPUR   X12, [X3, #-257]
60LDAPUR   X13, [X4, #256]
61ldapur   x14, [sp, #-257]
62
63//CHECK-ERROR:      error: invalid operand for instruction
64//CHECK-ERROR-NEXT: STLURB   SP, [X1, #1]
65//CHECK-ERROR-NEXT:          ^
66//CHECK-ERROR-NEXT: error: invalid operand for instruction
67//CHECK-ERROR-NEXT: ldapurb  SP, [x12, #1]
68//CHECK-ERROR-NEXT:          ^
69//CHECK-ERROR-NEXT: error: invalid operand for instruction
70//CHECK-ERROR-NEXT: STLURB   W1, [XZR, #1]
71//CHECK-ERROR-NEXT:               ^
72//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
73//CHECK-ERROR-NEXT: STLURB   W1, [X10, #-257]
74//CHECK-ERROR-NEXT:                    ^
75//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
76//CHECK-ERROR-NEXT: stlurb   w2, [x11, #256]
77//CHECK-ERROR-NEXT:                    ^
78//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
79//CHECK-ERROR-NEXT: STLURB   W3, [SP, #-257]
80//CHECK-ERROR-NEXT:                   ^
81//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
82//CHECK-ERROR-NEXT: ldapurb  w4, [x12, #-257]
83//CHECK-ERROR-NEXT:                    ^
84//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
85//CHECK-ERROR-NEXT: LDAPURB  W5, [X13, #256]
86//CHECK-ERROR-NEXT:                    ^
87//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
88//CHECK-ERROR-NEXT: LDAPURB  W6, [SP, #256]
89//CHECK-ERROR-NEXT:                   ^
90//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
91//CHECK-ERROR-NEXT: LDAPURSB W7, [X14, #-257]
92//CHECK-ERROR-NEXT:                    ^
93//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
94//CHECK-ERROR-NEXT: ldapursb w8, [x15, #256]
95//CHECK-ERROR-NEXT:                    ^
96//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
97//CHECK-ERROR-NEXT: ldapursb w9, [sp, #-257]
98//CHECK-ERROR-NEXT:                   ^
99//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
100//CHECK-ERROR-NEXT: LDAPURSB X0, [X16, #-257]
101//CHECK-ERROR-NEXT:                    ^
102//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
103//CHECK-ERROR-NEXT: LDAPURSB X1, [X17, #256]
104//CHECK-ERROR-NEXT:                    ^
105//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
106//CHECK-ERROR-NEXT: ldapursb x2, [sp, #256]
107//CHECK-ERROR-NEXT:                   ^
108//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
109//CHECK-ERROR-NEXT: stlurh   w10, [x18, #-257]
110//CHECK-ERROR-NEXT:                     ^
111//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
112//CHECK-ERROR-NEXT: STLURH   W11, [X19, #256]
113//CHECK-ERROR-NEXT:                     ^
114//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
115//CHECK-ERROR-NEXT: STLURH   W12, [SP, #-257]
116//CHECK-ERROR-NEXT:                    ^
117//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
118//CHECK-ERROR-NEXT: LDAPURH  W13, [X20, #-257]
119//CHECK-ERROR-NEXT:                     ^
120//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
121//CHECK-ERROR-NEXT: ldapurh  w14, [x21, #256]
122//CHECK-ERROR-NEXT:                     ^
123//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
124//CHECK-ERROR-NEXT: LDAPURH  W15, [SP, #256]
125//CHECK-ERROR-NEXT:                    ^
126//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
127//CHECK-ERROR-NEXT: LDAPURSH W16, [X22, #-257]
128//CHECK-ERROR-NEXT:                     ^
129//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
130//CHECK-ERROR-NEXT: LDAPURSH W17, [X23, #256]
131//CHECK-ERROR-NEXT:                     ^
132//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
133//CHECK-ERROR-NEXT: ldapursh w18, [sp, #-257]
134//CHECK-ERROR-NEXT:                    ^
135//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
136//CHECK-ERROR-NEXT: ldapursh x3, [x24, #-257]
137//CHECK-ERROR-NEXT:                    ^
138//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
139//CHECK-ERROR-NEXT: LDAPURSH X4, [X25, #256]
140//CHECK-ERROR-NEXT:                    ^
141//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
142//CHECK-ERROR-NEXT: LDAPURSH X5, [SP, #256]
143//CHECK-ERROR-NEXT:                   ^
144//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
145//CHECK-ERROR-NEXT: STLUR    W19, [X26, #-257]
146//CHECK-ERROR-NEXT:                     ^
147//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
148//CHECK-ERROR-NEXT: stlur    w20, [x27, #256]
149//CHECK-ERROR-NEXT:                     ^
150//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
151//CHECK-ERROR-NEXT: STLUR    W21, [SP, #-257]
152//CHECK-ERROR-NEXT:                    ^
153//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
154//CHECK-ERROR-NEXT: LDAPUR   W22, [X28, #-257]
155//CHECK-ERROR-NEXT:                     ^
156//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
157//CHECK-ERROR-NEXT: LDAPUR   W23, [X29, #256]
158//CHECK-ERROR-NEXT:                     ^
159//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
160//CHECK-ERROR-NEXT: ldapur   w24, [sp, #256]
161//CHECK-ERROR-NEXT:                    ^
162//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
163//CHECK-ERROR-NEXT: ldapursw x6, [x30, #-257]
164//CHECK-ERROR-NEXT:                    ^
165//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
166//CHECK-ERROR-NEXT: LDAPURSW X7, [X0, #256]
167//CHECK-ERROR-NEXT:                   ^
168//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
169//CHECK-ERROR-NEXT: LDAPURSW X8, [SP, #-257]
170//CHECK-ERROR-NEXT:                   ^
171//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
172//CHECK-ERROR-NEXT: STLUR    X9, [X1, #-257]
173//CHECK-ERROR-NEXT:                   ^
174//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
175//CHECK-ERROR-NEXT: stlur    x10, [x2, #256]
176//CHECK-ERROR-NEXT:                    ^
177//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
178//CHECK-ERROR-NEXT: STLUR    X11, [SP, #256]
179//CHECK-ERROR-NEXT:                    ^
180//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
181//CHECK-ERROR-NEXT: LDAPUR   X12, [X3, #-257]
182//CHECK-ERROR-NEXT:                    ^
183//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
184//CHECK-ERROR-NEXT: LDAPUR   X13, [X4, #256]
185//CHECK-ERROR-NEXT:                    ^
186//CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255].
187//CHECK-ERROR-NEXT: ldapur   x14, [sp, #-257]
188//CHECK-ERROR-NEXT:                    ^
189