1 // RUN
: not llvm-mc
-triple aarch64-none-linux-gnu
-mattr
=+v8.1
a -show-encoding
< %s
2> %t | FileCheck
%s
2 // RUN
: FileCheck
--check-prefix
=CHECK-ERROR
<%t %s
11 //CHECK
: casb w0
, w1
, [x2
] // encoding
: [0x41,0x7c,0xa0,0x08]
12 //CHECK
: casab w0
, w1
, [x2
] // encoding
: [0x41,0x7c,0xe0,0x08]
13 //CHECK
: caslb w0
, w1
, [x2
] // encoding
: [0x41,0xfc,0xa0,0x08]
14 //CHECK
: casalb w0
, w1
, [x2
] // encoding
: [0x41,0xfc,0xe0,0x08]
18 //CHECK-ERROR
: error
: invalid operand for instruction
19 //CHECK-ERROR
: casb w0
, w1
, [w2
]
21 //CHECK-ERROR
: error
: invalid operand for instruction
22 //CHECK-ERROR
: casalb x0
, x1
, [x2
]
31 //CHECK
: cash w0
, w1
, [x2
] // encoding
: [0x41,0x7c,0xa0,0x48]
32 //CHECK
: casah w0
, w1
, [x2
] // encoding
: [0x41,0x7c,0xe0,0x48]
33 //CHECK
: caslh w0
, w1
, [x2
] // encoding
: [0x41,0xfc,0xa0,0x48]
34 //CHECK
: casalh w0
, w1
, [x2
] // encoding
: [0x41,0xfc,0xe0,0x48]
42 //CHECK
: cas w0
, w1
, [x2
] // encoding
: [0x41,0x7c,0xa0,0x88]
43 //CHECK
: casa w0
, w1
, [x2
] // encoding
: [0x41,0x7c,0xe0,0x88]
44 //CHECK
: casl w0
, w1
, [x2
] // encoding
: [0x41,0xfc,0xa0,0x88]
45 //CHECK
: casal w0
, w1
, [x2
] // encoding
: [0x41,0xfc,0xe0,0x88]
50 //CHECK-ERROR
: error
: invalid operand for instruction
51 //CHECK-ERROR
: cas w0
, w1
, [w2
]
53 //CHECK-ERROR
: error
: invalid operand for instruction
54 //CHECK-ERROR
: casl w0
, x1
, [x2
]
63 //CHECK
: cas x0
, x1
, [x2
] // encoding
: [0x41,0x7c,0xa0,0xc8]
64 //CHECK
: casa x0
, x1
, [x2
] // encoding
: [0x41,0x7c,0xe0,0xc8]
65 //CHECK
: casl x0
, x1
, [x2
] // encoding
: [0x41,0xfc,0xa0,0xc8]
66 //CHECK
: casal x0
, x1
, [x2
] // encoding
: [0x41,0xfc,0xe0,0xc8]
71 //CHECK-ERROR
: error
: invalid operand for instruction
72 //CHECK-ERROR
: casa x0
, x1
, [w2
]
74 //CHECK-ERROR
: error
: invalid operand for instruction
75 //CHECK-ERROR
: casal x0
, w1
, [x2
]
85 ldumaxalh w0
, w1
, [x2
]
88 //CHECK
: ldadda x0
, x1
, [x2
] // encoding
: [0x41,0x00,0xa0,0xf8]
89 //CHECK
: ldclrl x0
, x1
, [x2
] // encoding
: [0x41,0x10,0x60,0xf8]
90 //CHECK
: ldeoral x0
, x1
, [x2
] // encoding
: [0x41,0x20,0xe0,0xf8]
91 //CHECK
: ldset x0
, x1
, [x2
] // encoding
: [0x41,0x30,0x20,0xf8]
92 //CHECK
: ldsmaxa w0
, w1
, [x2
] // encoding
: [0x41,0x40,0xa0,0xb8]
93 //CHECK
: ldsminlb w0
, w1
, [x2
] // encoding
: [0x41,0x50,0x60,0x38]
94 //CHECK
: ldumaxalh w0
, w1
, [x2
] // encoding
: [0x41,0x60,0xe0,0x78]
95 //CHECK
: ldumin w0
, w1
, [x2
] // encoding
: [0x41,0x70,0x20,0xb8]
96 //CHECK
: ldsminb w2
, w3
, [x5
] // encoding
: [0xa3,0x50,0x22,0x38]
98 // ST<OP
> intructions
: aliases to
LD<OP
>
108 //CHECK
: staddlb w0
, [x2
] // encoding
: [0x5f,0x00,0x60,0x38]
109 //CHECK
: stclrlh w0
, [x2
] // encoding
: [0x5f,0x10,0x60,0x78]
110 //CHECK
: steorl w0
, [x2
] // encoding
: [0x5f,0x20,0x60,0xb8]
111 //CHECK
: stsetl x0
, [x2
] // encoding
: [0x5f,0x30,0x60,0xf8]
112 //CHECK
: stsmaxb w0
, [x2
] // encoding
: [0x5f,0x40,0x20,0x38]
113 //CHECK
: stsminh w0
, [x2
] // encoding
: [0x5f,0x50,0x20,0x78]
114 //CHECK
: stumax w0
, [x2
] // encoding
: [0x5f,0x60,0x20,0xb8]
115 //CHECK
: stumin x0
, [x2
] // encoding
: [0x5f,0x70,0x20,0xf8]
116 //CHECK
: stsminl x29
, [sp
] // encoding
: [0xff,0x53,0x7d,0xf8]
121 //CHECK-ERROR
: error
: invalid operand for instruction
122 //CHECK-ERROR
: ldsmax x0
, x1
, [w2
]
124 //CHECK-ERROR
: error
: invalid operand for instruction
125 //CHECK-ERROR
: ldeorl w0
, w1
, [w2
]
133 //CHECK
: swp x0
, x1
, [x2
] // encoding
: [0x41,0x80,0x20,0xf8]
134 //CHECK
: swpb w0
, w1
, [x2
] // encoding
: [0x41,0x80,0x20,0x38]
135 //CHECK
: swplh w0
, w1
, [x2
] // encoding
: [0x41,0x80,0x60,0x78]
136 //CHECK
: swpal x0
, x1
, [sp
] // encoding
: [0xe1,0x83,0xe0,0xf8]
140 //CHECK-ERROR
: error
: invalid operand for instruction
141 //CHECK-ERROR
: swp x0
, x1
, [w2
]
143 //CHECK-ERROR
: error
: invalid operand for instruction
144 //CHECK-ERROR
: swp x0
, x1
, [xzr
]
148 casp x0
, x1
, x2
, x3
, [x4
]
149 casp w0
, w1
, w2
, w3
, [x4
]
150 //CHECK
: casp x0
, x1
, x2
, x3
, [x4
] // encoding
: [0x82,0x7c,0x20,0x48]
151 //CHECK
: casp w0
, w1
, w2
, w3
, [x4
] // encoding
: [0x82,0x7c,0x20,0x08]
153 casp x1
, x2
, x4
, x5
, [x6
]
154 casp x0
, x1
, x3
, x4
, [x5
]
155 casp x0
, x2
, x4
, x5
, [x6
]
156 casp x0
, x1
, x2
, x4
, [x5
]
157 casp x0
, w1
, x2
, x3
, [x5
]
158 casp w0
, x1
, x2
, x3
, [x5
]
159 casp w0
, x1
, w2
, w3
, [x5
]
160 casp x0
, x1
, w2
, w3
, [x5
]
161 //CHECK-ERROR
: error
: expected first even register of
a consecutive same-size even
/odd register pair
162 //CHECK-ERROR
: casp x1
, x2
, x4
, x5
, [x6
]
164 //CHECK-ERROR
: error
: expected first even register of
a consecutive same-size even
/odd register pair
165 //CHECK-ERROR
: casp x0
, x1
, x3
, x4
, [x5
]
167 //CHECK-ERROR
: error
: expected second odd register of
a consecutive same-size even
/odd register pair
168 //CHECK-ERROR
: casp x0
, x2
, x4
, x5
, [x6
]
170 //CHECK-ERROR
: error
: expected second odd register of
a consecutive same-size even
/odd register pair
171 //CHECK-ERROR
: casp x0
, x1
, x2
, x4
, [x5
]
173 //CHECK-ERROR
: error
: expected second odd register of
a consecutive same-size even
/odd register pair
174 //CHECK-ERROR
: casp x0
, w1
, x2
, x3
, [x5
]
176 //CHECK-ERROR
: error
: expected second odd register of
a consecutive same-size even
/odd register pair
177 //CHECK-ERROR
: casp w0
, x1
, x2
, x3
, [x5
]
179 //CHECK-ERROR
: error
: expected second odd register of
a consecutive same-size even
/odd register pair
180 //CHECK-ERROR
: casp w0
, x1
, w2
, w3
, [x5
]
182 //CHECK-ERROR
: error
: invalid operand for instruction
183 //CHECK-ERROR
: casp x0
, x1
, w2
, w3
, [x5
]