1# For arch15 only. 2# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=arch15 < %s 2> %t 3# RUN: FileCheck < %t %s 4 5#CHECK: error: invalid use of indexed addressing 6#CHECK: cal %r2, 160(%r1,%r15), 160(%r15) 7#CHECK: error: invalid operand 8#CHECK: cal %r2, -1(%r1), 160(%r15) 9#CHECK: error: invalid operand 10#CHECK: cal %r2, 4096(%r1), 160(%r15) 11#CHECK: error: invalid operand 12#CHECK: cal %r2, 0(%r1), -1(%r15) 13#CHECK: error: invalid operand 14#CHECK: cal %r2, 0(%r1), 4096(%r15) 15 16 cal %r2, 160(%r1,%r15), 160(%r15) 17 cal %r2, -1(%r1), 160(%r15) 18 cal %r2, 4096(%r1), 160(%r15) 19 cal %r2, 0(%r1), -1(%r15) 20 cal %r2, 0(%r1), 4096(%r15) 21 22#CHECK: error: invalid use of indexed addressing 23#CHECK: calg %r2, 160(%r1,%r15), 160(%r15) 24#CHECK: error: invalid operand 25#CHECK: calg %r2, -1(%r1), 160(%r15) 26#CHECK: error: invalid operand 27#CHECK: calg %r2, 4096(%r1), 160(%r15) 28#CHECK: error: invalid operand 29#CHECK: calg %r2, 0(%r1), -1(%r15) 30#CHECK: error: invalid operand 31#CHECK: calg %r2, 0(%r1), 4096(%r15) 32 33 calg %r2, 160(%r1,%r15), 160(%r15) 34 calg %r2, -1(%r1), 160(%r15) 35 calg %r2, 4096(%r1), 160(%r15) 36 calg %r2, 0(%r1), -1(%r15) 37 calg %r2, 0(%r1), 4096(%r15) 38 39#CHECK: error: invalid use of indexed addressing 40#CHECK: calgf %r2, 160(%r1,%r15), 160(%r15) 41#CHECK: error: invalid operand 42#CHECK: calgf %r2, -1(%r1), 160(%r15) 43#CHECK: error: invalid operand 44#CHECK: calgf %r2, 4096(%r1), 160(%r15) 45#CHECK: error: invalid operand 46#CHECK: calgf %r2, 0(%r1), -1(%r15) 47#CHECK: error: invalid operand 48#CHECK: calgf %r2, 0(%r1), 4096(%r15) 49 50 calgf %r2, 160(%r1,%r15), 160(%r15) 51 calgf %r2, -1(%r1), 160(%r15) 52 calgf %r2, 4096(%r1), 160(%r15) 53 calgf %r2, 0(%r1), -1(%r15) 54 calgf %r2, 0(%r1), 4096(%r15) 55 56#CHECK: error: invalid operand 57#CHECK: kimd %r0, %r0, -1 58#CHECK: error: invalid operand 59#CHECK: kimd %r0, %r0, 16 60 61 kimd %r0, %r0, -1 62 kimd %r0, %r0, 16 63 64#CHECK: error: invalid operand 65#CHECK: klmd %r0, %r0, -1 66#CHECK: error: invalid operand 67#CHECK: klmd %r0, %r0, 16 68 69 klmd %r0, %r0, -1 70 klmd %r0, %r0, 16 71 72#CHECK: error: invalid operand 73#CHECK: lxab %r0, -524289 74#CHECK: error: invalid operand 75#CHECK: lxab %r0, 524288 76 77 lxab %r0, -524289 78 lxab %r0, 524288 79 80#CHECK: error: invalid operand 81#CHECK: lxah %r0, -524289 82#CHECK: error: invalid operand 83#CHECK: lxah %r0, 524288 84 85 lxah %r0, -524289 86 lxah %r0, 524288 87 88#CHECK: error: invalid operand 89#CHECK: lxaf %r0, -524289 90#CHECK: error: invalid operand 91#CHECK: lxaf %r0, 524288 92 93 lxaf %r0, -524289 94 lxaf %r0, 524288 95 96#CHECK: error: invalid operand 97#CHECK: lxag %r0, -524289 98#CHECK: error: invalid operand 99#CHECK: lxag %r0, 524288 100 101 lxag %r0, -524289 102 lxag %r0, 524288 103 104#CHECK: error: invalid operand 105#CHECK: lxaq %r0, -524289 106#CHECK: error: invalid operand 107#CHECK: lxaq %r0, 524288 108 109 lxaq %r0, -524289 110 lxaq %r0, 524288 111 112#CHECK: error: invalid operand 113#CHECK: llxab %r0, -524289 114#CHECK: error: invalid operand 115#CHECK: llxab %r0, 524288 116 117 llxab %r0, -524289 118 llxab %r0, 524288 119 120#CHECK: error: invalid operand 121#CHECK: llxah %r0, -524289 122#CHECK: error: invalid operand 123#CHECK: llxah %r0, 524288 124 125 llxah %r0, -524289 126 llxah %r0, 524288 127 128#CHECK: error: invalid operand 129#CHECK: llxaf %r0, -524289 130#CHECK: error: invalid operand 131#CHECK: llxaf %r0, 524288 132 133 llxaf %r0, -524289 134 llxaf %r0, 524288 135 136#CHECK: error: invalid operand 137#CHECK: llxag %r0, -524289 138#CHECK: error: invalid operand 139#CHECK: llxag %r0, 524288 140 141 llxag %r0, -524289 142 llxag %r0, 524288 143 144#CHECK: error: invalid operand 145#CHECK: llxaq %r0, -524289 146#CHECK: error: invalid operand 147#CHECK: llxaq %r0, 524288 148 149 llxaq %r0, -524289 150 llxaq %r0, 524288 151 152#CHECK: error: invalid operand 153#CHECK: pfcr %r0, %r0, -524289 154#CHECK: error: invalid operand 155#CHECK: pfcr %r0, %r0, 524288 156#CHECK: error: invalid use of indexed addressing 157#CHECK: pfcr %r0, %r0, 0(%r1,%r2) 158 159 pfcr %r0, %r0, -524289 160 pfcr %r0, %r0, 524288 161 pfcr %r0, %r0, 0(%r1,%r2) 162 163#CHECK: error: invalid operand 164#CHECK: vcvbq %v0, %v0, -1 165#CHECK: error: invalid operand 166#CHECK: vcvbq %v0, %v0, 16 167 168 vcvbq %v0, %v0, -1 169 vcvbq %v0, %v0, 16 170 171#CHECK: error: invalid operand 172#CHECK: vcvdq %v0, %v0, 0, -1 173#CHECK: error: invalid operand 174#CHECK: vcvdq %v0, %v0, 0, 16 175#CHECK: error: invalid operand 176#CHECK: vcvdq %v0, %v0, -1, 0 177#CHECK: error: invalid operand 178#CHECK: vcvdq %v0, %v0, 256, 0 179 180 vcvdq %v0, %v0, 0, -1 181 vcvdq %v0, %v0, 0, 16 182 vcvdq %v0, %v0, -1, 0 183 vcvdq %v0, %v0, 256, 0 184 185#CHECK: error: invalid operand 186#CHECK: vd %v0, %v0, %v0, 0, -1 187#CHECK: error: invalid operand 188#CHECK: vd %v0, %v0, %v0, 0, 16 189#CHECK: error: invalid operand 190#CHECK: vd %v0, %v0, %v0, -1, 0 191#CHECK: error: invalid operand 192#CHECK: vd %v0, %v0, %v0, 16, 0 193 194 vd %v0, %v0, %v0, 0, -1 195 vd %v0, %v0, %v0, 0, 16 196 vd %v0, %v0, %v0, -1, 0 197 vd %v0, %v0, %v0, 16, 0 198 199#CHECK: error: invalid operand 200#CHECK: vdf %v0, %v0, %v0, -1 201#CHECK: error: invalid operand 202#CHECK: vdf %v0, %v0, %v0, 16 203 204 vdf %v0, %v0, %v0, -1 205 vdf %v0, %v0, %v0, 16 206 207#CHECK: error: invalid operand 208#CHECK: vdg %v0, %v0, %v0, -1 209#CHECK: error: invalid operand 210#CHECK: vdg %v0, %v0, %v0, 16 211 212 vdg %v0, %v0, %v0, -1 213 vdg %v0, %v0, %v0, 16 214 215#CHECK: error: invalid operand 216#CHECK: vdq %v0, %v0, %v0, -1 217#CHECK: error: invalid operand 218#CHECK: vdq %v0, %v0, %v0, 16 219 220 vdq %v0, %v0, %v0, -1 221 vdq %v0, %v0, %v0, 16 222 223#CHECK: error: invalid operand 224#CHECK: vdl %v0, %v0, %v0, 0, -1 225#CHECK: error: invalid operand 226#CHECK: vdl %v0, %v0, %v0, 0, 16 227#CHECK: error: invalid operand 228#CHECK: vdl %v0, %v0, %v0, -1, 0 229#CHECK: error: invalid operand 230#CHECK: vdl %v0, %v0, %v0, 16, 0 231 232 vdl %v0, %v0, %v0, 0, -1 233 vdl %v0, %v0, %v0, 0, 16 234 vdl %v0, %v0, %v0, -1, 0 235 vdl %v0, %v0, %v0, 16, 0 236 237#CHECK: error: invalid operand 238#CHECK: vdlf %v0, %v0, %v0, -1 239#CHECK: error: invalid operand 240#CHECK: vdlf %v0, %v0, %v0, 16 241 242 vdlf %v0, %v0, %v0, -1 243 vdlf %v0, %v0, %v0, 16 244 245#CHECK: error: invalid operand 246#CHECK: vdlg %v0, %v0, %v0, -1 247#CHECK: error: invalid operand 248#CHECK: vdlg %v0, %v0, %v0, 16 249 250 vdlg %v0, %v0, %v0, -1 251 vdlg %v0, %v0, %v0, 16 252 253#CHECK: error: invalid operand 254#CHECK: vdlq %v0, %v0, %v0, -1 255#CHECK: error: invalid operand 256#CHECK: vdlq %v0, %v0, %v0, 16 257 258 vdlq %v0, %v0, %v0, -1 259 vdlq %v0, %v0, %v0, 16 260 261#CHECK: error: invalid operand 262#CHECK: veval %v0, %v0, %v0, %v0, -1 263#CHECK: error: invalid operand 264#CHECK: veval %v0, %v0, %v0, %v0, 256 265 266 veval %v0, %v0, %v0, %v0, -1 267 veval %v0, %v0, %v0, %v0, 256 268 269#CHECK: error: invalid operand 270#CHECK: vr %v0, %v0, %v0, 0, -1 271#CHECK: error: invalid operand 272#CHECK: vr %v0, %v0, %v0, 0, 16 273#CHECK: error: invalid operand 274#CHECK: vr %v0, %v0, %v0, -1, 0 275#CHECK: error: invalid operand 276#CHECK: vr %v0, %v0, %v0, 16, 0 277 278 vr %v0, %v0, %v0, 0, -1 279 vr %v0, %v0, %v0, 0, 16 280 vr %v0, %v0, %v0, -1, 0 281 vr %v0, %v0, %v0, 16, 0 282 283#CHECK: error: invalid operand 284#CHECK: vrf %v0, %v0, %v0, -1 285#CHECK: error: invalid operand 286#CHECK: vrf %v0, %v0, %v0, 16 287 288 vrf %v0, %v0, %v0, -1 289 vrf %v0, %v0, %v0, 16 290 291#CHECK: error: invalid operand 292#CHECK: vrg %v0, %v0, %v0, -1 293#CHECK: error: invalid operand 294#CHECK: vrg %v0, %v0, %v0, 16 295 296 vrg %v0, %v0, %v0, -1 297 vrg %v0, %v0, %v0, 16 298 299#CHECK: error: invalid operand 300#CHECK: vrq %v0, %v0, %v0, -1 301#CHECK: error: invalid operand 302#CHECK: vrq %v0, %v0, %v0, 16 303 304 vrq %v0, %v0, %v0, -1 305 vrq %v0, %v0, %v0, 16 306 307#CHECK: error: invalid operand 308#CHECK: vrl %v0, %v0, %v0, 0, -1 309#CHECK: error: invalid operand 310#CHECK: vrl %v0, %v0, %v0, 0, 16 311#CHECK: error: invalid operand 312#CHECK: vrl %v0, %v0, %v0, -1, 0 313#CHECK: error: invalid operand 314#CHECK: vrl %v0, %v0, %v0, 16, 0 315 316 vrl %v0, %v0, %v0, 0, -1 317 vrl %v0, %v0, %v0, 0, 16 318 vrl %v0, %v0, %v0, -1, 0 319 vrl %v0, %v0, %v0, 16, 0 320 321#CHECK: error: invalid operand 322#CHECK: vrlf %v0, %v0, %v0, -1 323#CHECK: error: invalid operand 324#CHECK: vrlf %v0, %v0, %v0, 16 325 326 vrlf %v0, %v0, %v0, -1 327 vrlf %v0, %v0, %v0, 16 328 329#CHECK: error: invalid operand 330#CHECK: vrlg %v0, %v0, %v0, -1 331#CHECK: error: invalid operand 332#CHECK: vrlg %v0, %v0, %v0, 16 333 334 vrlg %v0, %v0, %v0, -1 335 vrlg %v0, %v0, %v0, 16 336 337#CHECK: error: invalid operand 338#CHECK: vrlq %v0, %v0, %v0, -1 339#CHECK: error: invalid operand 340#CHECK: vrlq %v0, %v0, %v0, 16 341 342 vrlq %v0, %v0, %v0, -1 343 vrlq %v0, %v0, %v0, 16 344 345#CHECK: error: invalid operand 346#CHECK: vtp %v0, -1 347#CHECK: error: invalid operand 348#CHECK: vtp %v0, 65536 349 350 vtp %v0, -1 351 vtp %v0, 65536 352 353#CHECK: error: invalid operand 354#CHECK: vtz %v0, %v0, -1 355#CHECK: error: invalid operand 356#CHECK: vtz %v0, %v0, 65536 357 358 vtz %v0, %v0, -1 359 vtz %v0, %v0, 65536 360 361