1## Test out of range immediates which are used by lasx instructions. 2 3# RUN: not llvm-mc --triple=loongarch64 %s 2>&1 | FileCheck %s 4 5## uimm1 6xvrepl128vei.d $xr0, $xr1, -1 7# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 1] 8 9xvrepl128vei.d $xr0, $xr1, 2 10# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 1] 11 12## uimm2 13xvpickve.d $xr0, $xr1, -1 14# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3] 15 16xvpickve.d $xr0, $xr1, 4 17# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3] 18 19xvinsve0.d $xr0, $xr1, -1 20# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3] 21 22xvinsve0.d $xr0, $xr1, 4 23# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3] 24 25xvinsgr2vr.d $xr0, $a0, -1 26# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3] 27 28xvinsgr2vr.d $xr0, $a0, 4 29# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3] 30 31xvpickve2gr.d $a0, $xr1, -1 32# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 3] 33 34xvpickve2gr.d $a0, $xr1, 4 35# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 3] 36 37xvpickve2gr.du $a0, $xr1, -1 38# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 3] 39 40xvpickve2gr.du $a0, $xr1, 4 41# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 3] 42 43xvstelm.d $xr0, $a0, 8, -1 44# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3] 45 46xvstelm.d $xr0, $a0, 8, 4 47# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3] 48 49xvrepl128vei.w $xr0, $xr1, -1 50# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 3] 51 52xvrepl128vei.w $xr0, $xr1, 4 53# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 3] 54 55## uimm3 56xvpickve.w $xr0, $xr1, -1 57# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7] 58 59xvpickve.w $xr0, $xr1, 8 60# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7] 61 62xvinsve0.w $xr0, $xr1, -1 63# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7] 64 65xvinsve0.w $xr0, $xr1, 8 66# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7] 67 68xvinsgr2vr.w $xr0, $a0, -1 69# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 70 71xvinsgr2vr.w $xr0, $a0, 8 72# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 73 74xvpickve2gr.wu $a0, $xr1, -1 75# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 7] 76 77xvpickve2gr.wu $a0, $xr1, 8 78# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 7] 79 80xvpickve2gr.w $a0, $xr1, -1 81# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7] 82 83xvpickve2gr.w $a0, $xr1, 8 84# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7] 85 86xvstelm.w $xr0, $a0, 4, -1 87# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 88 89xvstelm.w $xr0, $a0, 4, 8 90# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 91 92xvrepl128vei.h $xr0, $xr1, -1 93# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 7] 94 95xvrepl128vei.h $xr0, $xr1, 8 96# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 7] 97 98xvbitrevi.b $xr0, $xr1, -1 99# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 100 101xvbitrevi.b $xr0, $xr1, 8 102# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 103 104xvbitseti.b $xr0, $xr1, -1 105# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 106 107xvbitseti.b $xr0, $xr1, 8 108# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 109 110xvbitclri.b $xr0, $xr1, -1 111# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 112 113xvbitclri.b $xr0, $xr1, 8 114# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7] 115 116xvsrari.b $xr0, $xr1, -1 117# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 7] 118 119xvsrari.b $xr0, $xr1, 8 120# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 7] 121 122xvsrlri.b $xr0, $xr1, -1 123# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 7] 124 125xvsrlri.b $xr0, $xr1, 8 126# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 7] 127 128xvsllwil.hu.bu $xr0, $xr1, -1 129# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 7] 130 131xvsllwil.hu.bu $xr0, $xr1, 8 132# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 7] 133 134xvsllwil.h.b $xr0, $xr1, -1 135# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7] 136 137xvsllwil.h.b $xr0, $xr1, 8 138# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7] 139 140xvrotri.b $xr0, $xr1, -1 141# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 7] 142 143xvrotri.b $xr0, $xr1, 8 144# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 7] 145 146xvsrai.b $xr0, $xr1, -1 147# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 148 149xvsrai.b $xr0, $xr1, 8 150# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 151 152xvsrli.b $xr0, $xr1, -1 153# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 154 155xvsrli.b $xr0, $xr1, 8 156# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 157 158xvslli.b $xr0, $xr1, -1 159# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 160 161xvslli.b $xr0, $xr1, 8 162# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 163 164xvsat.b $xr0, $xr1, -1 165# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7] 166 167xvsat.b $xr0, $xr1, 8 168# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7] 169 170xvsat.bu $xr0, $xr1, -1 171# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 172 173xvsat.bu $xr0, $xr1, 8 174# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7] 175 176## uimm4 177xvstelm.h $xr0, $a0, 2, -1 178# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 179 180xvstelm.h $xr0, $a0, 2, 16 181# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 182 183xvrepl128vei.b $xr0, $xr1, -1 184# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 185 186xvrepl128vei.b $xr0, $xr1, 16 187# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 188 189xvbitrevi.h $xr0, $xr1, -1 190# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 191 192xvbitrevi.h $xr0, $xr1, 16 193# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 194 195xvbitseti.h $xr0, $xr1, -1 196# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 197 198xvbitseti.h $xr0, $xr1, 16 199# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 200 201xvbitclri.h $xr0, $xr1, -1 202# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 203 204xvbitclri.h $xr0, $xr1, 16 205# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 206 207xvssrarni.bu.h $xr0, $xr1, -1 208# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 209 210xvssrarni.bu.h $xr0, $xr1, 16 211# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 212 213xvssrlrni.bu.h $xr0, $xr1, -1 214# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 215 216xvssrlrni.bu.h $xr0, $xr1, 16 217# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 218 219xvssrarni.b.h $xr0, $xr1, -1 220# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 221 222xvssrarni.b.h $xr0, $xr1, 16 223# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 224 225xvssrlrni.b.h $xr0, $xr1, -1 226# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 227 228xvssrlrni.b.h $xr0, $xr1, 16 229# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 230 231xvssrani.bu.h $xr0, $xr1, -1 232# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 233 234xvssrani.bu.h $xr0, $xr1, 16 235# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 236 237xvssrlni.bu.h $xr0, $xr1, -1 238# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 239 240xvssrlni.bu.h $xr0, $xr1, 16 241# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15] 242 243xvssrani.b.h $xr0, $xr1, -1 244# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 245 246xvssrani.b.h $xr0, $xr1, 16 247# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 248 249xvssrlni.b.h $xr0, $xr1, -1 250# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 251 252xvssrlni.b.h $xr0, $xr1, 16 253# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 254 255xvsrarni.b.h $xr0, $xr1, -1 256# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 257 258xvsrarni.b.h $xr0, $xr1, 16 259# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 260 261xvsrlrni.b.h $xr0, $xr1, -1 262# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 263 264xvsrlrni.b.h $xr0, $xr1, 16 265# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 266 267xvsrani.b.h $xr0, $xr1, -1 268# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 269 270xvsrani.b.h $xr0, $xr1, 16 271# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 272 273xvsrlni.b.h $xr0, $xr1, -1 274# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 275 276xvsrlni.b.h $xr0, $xr1, 16 277# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15] 278 279xvsrari.h $xr0, $xr1, -1 280# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 15] 281 282xvsrari.h $xr0, $xr1, 16 283# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 15] 284 285xvsrlri.h $xr0, $xr1, -1 286# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 15] 287 288xvsrlri.h $xr0, $xr1, 16 289# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 15] 290 291xvsllwil.wu.hu $xr0, $xr1, -1 292# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 293 294xvsllwil.wu.hu $xr0, $xr1, 16 295# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 15] 296 297xvsllwil.w.h $xr0, $xr1, -1 298# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 299 300xvsllwil.w.h $xr0, $xr1, 16 301# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15] 302 303xvrotri.h $xr0, $xr1, -1 304# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 15] 305 306xvrotri.h $xr0, $xr1, 16 307# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 15] 308 309xvsrai.h $xr0, $xr1, -1 310# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 311 312xvsrai.h $xr0, $xr1, 16 313# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 314 315xvsrli.h $xr0, $xr1, -1 316# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 317 318xvsrli.h $xr0, $xr1, 16 319# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 320 321xvslli.h $xr0, $xr1, -1 322# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 323 324xvslli.h $xr0, $xr1, 16 325# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 326 327xvsat.h $xr0, $xr1, -1 328# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15] 329 330xvsat.h $xr0, $xr1, 16 331# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15] 332 333xvsat.hu $xr0, $xr1, -1 334# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 335 336xvsat.hu $xr0, $xr1, 16 337# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15] 338 339## uimm5 340xvstelm.b $xr0, $a0, 1, -1 341# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 342 343xvstelm.b $xr0, $a0, 1, 32 344# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 345 346xvbsrl.v $xr0, $xr1, -1 347# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 348 349xvbsrl.v $xr0, $xr1, 32 350# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 351 352xvbsll.v $xr0, $xr1, -1 353# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 354 355xvbsll.v $xr0, $xr1, 32 356# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 357 358xvslti.du $xr0, $xr1, -1 359# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 360 361xvslti.du $xr0, $xr1, 32 362# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 363 364xvslti.wu $xr0, $xr1, -1 365# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 366 367xvslti.wu $xr0, $xr1, 32 368# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 369 370xvslti.hu $xr0, $xr1, -1 371# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 372 373xvslti.hu $xr0, $xr1, 32 374# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 375 376xvslti.bu $xr0, $xr1, -1 377# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 378 379xvslti.bu $xr0, $xr1, 32 380# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 381 382xvslei.du $xr0, $xr1, -1 383# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 384 385xvslei.du $xr0, $xr1, 32 386# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 387 388xvslei.wu $xr0, $xr1, -1 389# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 390 391xvslei.wu $xr0, $xr1, 32 392# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 393 394xvslei.hu $xr0, $xr1, -1 395# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 396 397xvslei.hu $xr0, $xr1, 32 398# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 399 400xvslei.bu $xr0, $xr1, -1 401# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 402 403xvslei.bu $xr0, $xr1, 32 404# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 405 406xvfrstpi.h $xr0, $xr1, -1 407# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31] 408 409xvfrstpi.h $xr0, $xr1, 32 410# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31] 411 412xvfrstpi.b $xr0, $xr1, -1 413# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31] 414 415xvfrstpi.b $xr0, $xr1, 32 416# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31] 417 418xvbitrevi.w $xr0, $xr1, -1 419# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 420 421xvbitrevi.w $xr0, $xr1, 32 422# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 423 424xvbitseti.w $xr0, $xr1, -1 425# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 426 427xvbitseti.w $xr0, $xr1, 32 428# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 429 430xvbitclri.w $xr0, $xr1, -1 431# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 432 433xvbitclri.w $xr0, $xr1, 32 434# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 435 436xvssrarni.hu.w $xr0, $xr1, -1 437# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 31] 438 439xvssrarni.hu.w $xr0, $xr1, 32 440# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 31] 441 442xvssrlrni.hu.w $xr0, $xr1, -1 443# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 31] 444 445xvssrlrni.hu.w $xr0, $xr1, 32 446# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 31] 447 448xvssrarni.h.w $xr0, $xr1, -1 449# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 450 451xvssrarni.h.w $xr0, $xr1, 32 452# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 453 454xvssrlrni.h.w $xr0, $xr1, -1 455# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 456 457xvssrlrni.h.w $xr0, $xr1, 32 458# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 459 460xvssrani.hu.w $xr0, $xr1, -1 461# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 462 463xvssrani.hu.w $xr0, $xr1, 32 464# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 465 466xvssrlni.hu.w $xr0, $xr1, -1 467# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 468 469xvssrlni.hu.w $xr0, $xr1, 32 470# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31] 471 472xvssrani.h.w $xr0, $xr1, -1 473# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 474 475xvssrani.h.w $xr0, $xr1, 32 476# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 477 478xvssrlni.h.w $xr0, $xr1, -1 479# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 480 481xvssrlni.h.w $xr0, $xr1, 32 482# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 483 484xvsrarni.h.w $xr0, $xr1, -1 485# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 486 487xvsrarni.h.w $xr0, $xr1, 32 488# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 489 490xvsrlrni.h.w $xr0, $xr1, -1 491# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 492 493xvsrlrni.h.w $xr0, $xr1, 32 494# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 495 496xvsrani.h.w $xr0, $xr1, -1 497# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 498 499xvsrani.h.w $xr0, $xr1, 32 500# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 501 502xvsrlni.h.w $xr0, $xr1, -1 503# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 504 505xvsrlni.h.w $xr0, $xr1, 32 506# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31] 507 508xvsrari.w $xr0, $xr1, -1 509# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 510 511xvsrari.w $xr0, $xr1, 32 512# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 513 514xvsrlri.w $xr0, $xr1, -1 515# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 516 517xvsrlri.w $xr0, $xr1, 32 518# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 519 520xvsllwil.du.wu $xr0, $xr1, -1 521# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 31] 522 523xvsllwil.du.wu $xr0, $xr1, 32 524# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 31] 525 526xvsllwil.d.w $xr0, $xr1, -1 527# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 528 529xvsllwil.d.w $xr0, $xr1, 32 530# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31] 531 532xvrotri.w $xr0, $xr1, -1 533# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 534 535xvrotri.w $xr0, $xr1, 32 536# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 537 538xvsrai.w $xr0, $xr1, -1 539# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 540 541xvsrai.w $xr0, $xr1, 32 542# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 543 544xvsrli.w $xr0, $xr1, -1 545# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 546 547xvsrli.w $xr0, $xr1, 32 548# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 549 550xvslli.w $xr0, $xr1, -1 551# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 552 553xvslli.w $xr0, $xr1, 32 554# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 555 556xvaddi.bu $xr0, $xr1, -1 557# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 558 559xvaddi.bu $xr0, $xr1, 32 560# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 561 562xvaddi.hu $xr0, $xr1, -1 563# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 564 565xvaddi.hu $xr0, $xr1, 32 566# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 567 568xvaddi.wu $xr0, $xr1, -1 569# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 570 571xvaddi.wu $xr0, $xr1, 32 572# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 573 574xvaddi.du $xr0, $xr1, -1 575# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 576 577xvaddi.du $xr0, $xr1, 32 578# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 579 580xvsubi.bu $xr0, $xr1, -1 581# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 582 583xvsubi.bu $xr0, $xr1, 32 584# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 585 586xvsubi.hu $xr0, $xr1, -1 587# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 588 589xvsubi.hu $xr0, $xr1, 32 590# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 591 592xvsubi.wu $xr0, $xr1, -1 593# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 594 595xvsubi.wu $xr0, $xr1, 32 596# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 597 598xvsubi.du $xr0, $xr1, -1 599# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 600 601xvsubi.du $xr0, $xr1, 32 602# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 603 604xvmaxi.bu $xr0, $xr1, -1 605# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 606 607xvmaxi.bu $xr0, $xr1, 32 608# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 609 610xvmaxi.hu $xr0, $xr1, -1 611# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 612 613xvmaxi.hu $xr0, $xr1, 32 614# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 615 616xvmaxi.wu $xr0, $xr1, -1 617# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 618 619xvmaxi.wu $xr0, $xr1, 32 620# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 621 622xvmaxi.du $xr0, $xr1, -1 623# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 624 625xvmaxi.du $xr0, $xr1, 32 626# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 627 628xvmini.bu $xr0, $xr1, -1 629# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 630 631xvmini.bu $xr0, $xr1, 32 632# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 633 634xvmini.hu $xr0, $xr1, -1 635# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 636 637xvmini.hu $xr0, $xr1, 32 638# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 639 640xvmini.wu $xr0, $xr1, -1 641# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 642 643xvmini.wu $xr0, $xr1, 32 644# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 645 646xvmini.du $xr0, $xr1, -1 647# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 648 649xvmini.du $xr0, $xr1, 32 650# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31] 651 652xvsat.w $xr0, $xr1, -1 653# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31] 654 655xvsat.w $xr0, $xr1, 32 656# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31] 657 658xvsat.wu $xr0, $xr1, -1 659# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 660 661xvsat.wu $xr0, $xr1, 32 662# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31] 663 664## simm5 665xvslti.d $xr0, $xr1, -17 666# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 667 668xvslti.d $xr0, $xr1, 16 669# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 670 671xvslti.w $xr0, $xr1, -17 672# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 673 674xvslti.w $xr0, $xr1, 16 675# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 676 677xvslti.h $xr0, $xr1, -17 678# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 679 680xvslti.h $xr0, $xr1, 16 681# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 682 683xvslti.b $xr0, $xr1, -17 684# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 685 686xvslti.b $xr0, $xr1, 16 687# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 688 689xvslei.d $xr0, $xr1, -17 690# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 691 692xvslei.d $xr0, $xr1, 16 693# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 694 695xvslei.w $xr0, $xr1, -17 696# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 697 698xvslei.w $xr0, $xr1, 16 699# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 700 701xvslei.h $xr0, $xr1, -17 702# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 703 704xvslei.h $xr0, $xr1, 16 705# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 706 707xvslei.b $xr0, $xr1, -17 708# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 709 710xvslei.b $xr0, $xr1, 16 711# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 712 713xvseqi.d $xr0, $xr1, -17 714# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 715 716xvseqi.d $xr0, $xr1, 16 717# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 718 719xvseqi.w $xr0, $xr1, -17 720# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 721 722xvseqi.w $xr0, $xr1, 16 723# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 724 725xvseqi.h $xr0, $xr1, -17 726# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 727 728xvseqi.h $xr0, $xr1, 16 729# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 730 731xvseqi.b $xr0, $xr1, -17 732# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 733 734xvseqi.b $xr0, $xr1, 16 735# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 736 737xvmaxi.b $xr0, $xr1, -17 738# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 739 740xvmaxi.b $xr0, $xr1, 16 741# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 742 743xvmaxi.h $xr0, $xr1, -17 744# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 745 746xvmaxi.h $xr0, $xr1, 16 747# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 748 749xvmaxi.w $xr0, $xr1, -17 750# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 751 752xvmaxi.w $xr0, $xr1, 16 753# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 754 755xvmaxi.d $xr0, $xr1, -17 756# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 757 758xvmaxi.d $xr0, $xr1, 16 759# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 760 761xvmini.b $xr0, $xr1, -17 762# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 763 764xvmini.b $xr0, $xr1, 16 765# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 766 767xvmini.h $xr0, $xr1, -17 768# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 769 770xvmini.h $xr0, $xr1, 16 771# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 772 773xvmini.w $xr0, $xr1, -17 774# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 775 776xvmini.w $xr0, $xr1, 16 777# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 778 779xvmini.d $xr0, $xr1, -17 780# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 781 782xvmini.d $xr0, $xr1, 16 783# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-16, 15] 784 785## uimm6 786xvbitrevi.d $xr0, $xr1, -1 787# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 788 789xvbitrevi.d $xr0, $xr1, 64 790# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 791 792xvbitseti.d $xr0, $xr1, -1 793# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 794 795xvbitseti.d $xr0, $xr1, 64 796# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 797 798xvbitclri.d $xr0, $xr1, -1 799# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 800 801xvbitclri.d $xr0, $xr1, 64 802# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 803 804xvssrarni.wu.d $xr0, $xr1, -1 805# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 63] 806 807xvssrarni.wu.d $xr0, $xr1, 64 808# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 63] 809 810xvssrlrni.wu.d $xr0, $xr1, -1 811# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 63] 812 813xvssrlrni.wu.d $xr0, $xr1, 64 814# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 63] 815 816xvssrarni.w.d $xr0, $xr1, -1 817# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 818 819xvssrarni.w.d $xr0, $xr1, 64 820# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 821 822xvssrlrni.w.d $xr0, $xr1, -1 823# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 824 825xvssrlrni.w.d $xr0, $xr1, 64 826# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 827 828xvssrani.wu.d $xr0, $xr1, -1 829# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 830 831xvssrani.wu.d $xr0, $xr1, 64 832# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 833 834xvssrlni.wu.d $xr0, $xr1, -1 835# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 836 837xvssrlni.wu.d $xr0, $xr1, 64 838# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63] 839 840xvssrani.w.d $xr0, $xr1, -1 841# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 842 843xvssrani.w.d $xr0, $xr1, 64 844# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 845 846xvssrlni.w.d $xr0, $xr1, -1 847# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 848 849xvssrlni.w.d $xr0, $xr1, 64 850# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 851 852xvsrarni.w.d $xr0, $xr1, -1 853# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 854 855xvsrarni.w.d $xr0, $xr1, 64 856# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 857 858xvsrlrni.w.d $xr0, $xr1, -1 859# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 860 861xvsrlrni.w.d $xr0, $xr1, 64 862# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63] 863 864xvsrani.w.d $xr0, $xr1, -1 865# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 866 867xvsrani.w.d $xr0, $xr1, 64 868# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 869 870xvsrlni.w.d $xr0, $xr1, -1 871# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 872 873xvsrlni.w.d $xr0, $xr1, 64 874# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63] 875 876xvsrari.d $xr0, $xr1, -1 877# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 63] 878 879xvsrari.d $xr0, $xr1, 64 880# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 63] 881 882xvsrlri.d $xr0, $xr1, -1 883# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 63] 884 885xvsrlri.d $xr0, $xr1, 64 886# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 63] 887 888xvrotri.d $xr0, $xr1, -1 889# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 63] 890 891xvrotri.d $xr0, $xr1, 64 892# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 63] 893 894xvsrai.d $xr0, $xr1, -1 895# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 896 897xvsrai.d $xr0, $xr1, 64 898# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 899 900xvsrli.d $xr0, $xr1, -1 901# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 902 903xvsrli.d $xr0, $xr1, 64 904# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 905 906xvslli.d $xr0, $xr1, -1 907# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 908 909xvslli.d $xr0, $xr1, 64 910# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 911 912xvsat.d $xr0, $xr1, -1 913# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63] 914 915xvsat.d $xr0, $xr1, 64 916# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63] 917 918xvsat.du $xr0, $xr1, -1 919# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 920 921xvsat.du $xr0, $xr1, 64 922# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63] 923 924## uimm7 925xvssrarni.du.q $xr0, $xr1, -1 926# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 127] 927 928xvssrarni.du.q $xr0, $xr1, 128 929# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 127] 930 931xvssrlrni.du.q $xr0, $xr1, -1 932# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 127] 933 934xvssrlrni.du.q $xr0, $xr1, 128 935# CHECK: :[[#@LINE-1]]:28: error: immediate must be an integer in the range [0, 127] 936 937xvssrarni.d.q $xr0, $xr1, -1 938# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 939 940xvssrarni.d.q $xr0, $xr1, 128 941# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 942 943xvssrlrni.d.q $xr0, $xr1, -1 944# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 945 946xvssrlrni.d.q $xr0, $xr1, 128 947# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 948 949xvssrani.du.q $xr0, $xr1, -1 950# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 951 952xvssrani.du.q $xr0, $xr1, 128 953# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 954 955xvssrlni.du.q $xr0, $xr1, -1 956# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 957 958xvssrlni.du.q $xr0, $xr1, 128 959# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127] 960 961xvssrani.d.q $xr0, $xr1, -1 962# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 963 964xvssrani.d.q $xr0, $xr1, 128 965# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 966 967xvssrlni.d.q $xr0, $xr1, -1 968# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 969 970xvssrlni.d.q $xr0, $xr1, 128 971# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 972 973xvsrarni.d.q $xr0, $xr1, -1 974# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 975 976xvsrarni.d.q $xr0, $xr1, 128 977# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 978 979xvsrlrni.d.q $xr0, $xr1, -1 980# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 981 982xvsrlrni.d.q $xr0, $xr1, 128 983# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127] 984 985xvsrani.d.q $xr0, $xr1, -1 986# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127] 987 988xvsrani.d.q $xr0, $xr1, 128 989# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127] 990 991xvsrlni.d.q $xr0, $xr1, -1 992# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127] 993 994xvsrlni.d.q $xr0, $xr1, 128 995# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127] 996 997## uimm8 998xvextrins.d $xr0, $xr1, -1 999# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1000 1001xvextrins.d $xr0, $xr1, 256 1002# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1003 1004xvextrins.w $xr0, $xr1, -1 1005# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1006 1007xvextrins.w $xr0, $xr1, 256 1008# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1009 1010xvextrins.h $xr0, $xr1, -1 1011# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1012 1013xvextrins.h $xr0, $xr1, 256 1014# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1015 1016xvextrins.b $xr0, $xr1, -1 1017# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1018 1019xvextrins.b $xr0, $xr1, 256 1020# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1021 1022xvpermi.q $xr0, $xr1, -1 1023# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255] 1024 1025xvpermi.q $xr0, $xr1, 256 1026# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255] 1027 1028xvpermi.d $xr0, $xr1, -1 1029# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255] 1030 1031xvpermi.d $xr0, $xr1, 256 1032# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255] 1033 1034xvpermi.w $xr0, $xr1, -1 1035# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255] 1036 1037xvpermi.w $xr0, $xr1, 256 1038# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255] 1039 1040xvshuf4i.d $xr0, $xr1, -1 1041# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1042 1043xvshuf4i.d $xr0, $xr1, 256 1044# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1045 1046xvshuf4i.w $xr0, $xr1, -1 1047# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1048 1049xvshuf4i.w $xr0, $xr1, 256 1050# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1051 1052xvshuf4i.h $xr0, $xr1, -1 1053# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1054 1055xvshuf4i.h $xr0, $xr1, 256 1056# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1057 1058xvshuf4i.b $xr0, $xr1, -1 1059# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1060 1061xvshuf4i.b $xr0, $xr1, 256 1062# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255] 1063 1064xvbitseli.b $xr0, $xr1, -1 1065# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1066 1067xvbitseli.b $xr0, $xr1, 256 1068# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 255] 1069 1070xvandi.b $xr0, $xr1, -1 1071# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255] 1072 1073xvandi.b $xr0, $xr1, 256 1074# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255] 1075 1076xvori.b $xr0, $xr1, -1 1077# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255] 1078 1079xvori.b $xr0, $xr1, 256 1080# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255] 1081 1082xvxori.b $xr0, $xr1, -1 1083# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255] 1084 1085xvxori.b $xr0, $xr1, 256 1086# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255] 1087 1088xvnori.b $xr0, $xr1, -1 1089# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255] 1090 1091xvnori.b $xr0, $xr1, 256 1092# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255] 1093 1094## simm8 1095xvstelm.b $xr0, $a0, -129, 1 1096# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-128, 127] 1097 1098xvstelm.b $xr0, $a0, 128, 1 1099# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-128, 127] 1100 1101## simm8_lsl1 1102xvstelm.h $xr0, $a0, -258, 1 1103# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 2 in the range [-256, 254] 1104 1105xvstelm.h $xr0, $a0, 256, 1 1106# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 2 in the range [-256, 254] 1107 1108## simm8_lsl2 1109xvstelm.w $xr0, $a0, -516, 1 1110# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 4 in the range [-512, 508] 1111 1112xvstelm.w $xr0, $a0, 512, 1 1113# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 4 in the range [-512, 508] 1114 1115## simm8_lsl3 1116xvstelm.d $xr0, $a0, -1032, 1 1117# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 8 in the range [-1024, 1016] 1118 1119xvstelm.d $xr0, $a0, 1024, 1 1120# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 8 in the range [-1024, 1016] 1121 1122## simm9_lsl3 1123xvldrepl.d $xr0, $a0, -2056 1124# CHECK: :[[#@LINE-1]]:23: error: immediate must be a multiple of 8 in the range [-2048, 2040] 1125 1126xvldrepl.d $xr0, $a0, 2048 1127# CHECK: :[[#@LINE-1]]:23: error: immediate must be a multiple of 8 in the range [-2048, 2040] 1128 1129## simm10_lsl2 1130xvldrepl.w $xr0, $a0, -2052 1131# CHECK: :[[#@LINE-1]]:23: error: immediate must be a multiple of 4 in the range [-2048, 2044] 1132 1133xvldrepl.w $xr0, $a0, 2048 1134# CHECK: :[[#@LINE-1]]:23: error: immediate must be a multiple of 4 in the range [-2048, 2044] 1135 1136## simm10 1137xvrepli.b $xr0, -513 1138# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1139 1140xvrepli.b $xr0, 512 1141# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1142 1143xvrepli.h $xr0, -513 1144# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1145 1146xvrepli.h $xr0, 512 1147# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1148 1149xvrepli.w $xr0, -513 1150# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1151 1152xvrepli.w $xr0, 512 1153# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1154 1155xvrepli.d $xr0, -513 1156# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1157 1158xvrepli.d $xr0, 512 1159# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-512, 511] 1160 1161## simm11_lsl1 1162xvldrepl.h $xr0, $a0, -2050 1163# CHECK: :[[#@LINE-1]]:23: error: immediate must be a multiple of 2 in the range [-2048, 2046] 1164 1165xvldrepl.h $xr0, $a0, 2048 1166# CHECK: :[[#@LINE-1]]:23: error: immediate must be a multiple of 2 in the range [-2048, 2046] 1167 1168## simm12 1169xvldrepl.b $xr0, $a0, -2049 1170# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [-2048, 2047] 1171 1172xvldrepl.b $xr0, $a0, 2048 1173# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [-2048, 2047] 1174 1175xvst $xr0, $a0, -2049 1176# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-2048, 2047] 1177 1178xvst $xr0, $a0, 2048 1179# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-2048, 2047] 1180 1181xvld $xr0, $a0, -2049 1182# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-2048, 2047] 1183 1184xvld $xr0, $a0, 2048 1185# CHECK: :[[#@LINE-1]]:17: error: immediate must be an integer in the range [-2048, 2047] 1186 1187## simm13 1188xvldi $xr0, -4097 1189# CHECK: :[[#@LINE-1]]:13: error: immediate must be an integer in the range [-4096, 4095] 1190 1191xvldi $xr0, 4096 1192# CHECK: :[[#@LINE-1]]:13: error: immediate must be an integer in the range [-4096, 4095] 1193