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