1# RUN: not llvm-mc -triple=riscv64 --mattr=+v --mattr=+f %s 2>&1 \ 2# RUN: | FileCheck %s --check-prefix=CHECK-ERROR 3 4vsetivli a2, 32, e8,m1 5# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 6 7vsetivli a2, zero, e8,m1 8# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 9 10vsetivli a2, 5, (1 << 10) 11# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 12 13vsetivli a2, 5, 0x400 14# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 15 16vsetivli a2, 5, e31 17# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 18 19vsetvli a2, a0, (1 << 11) 20# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 21 22vsetvli a2, a0, 0x800 23# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 24 25 26vsetvli a2, a0, e31 27# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 28 29vsetvli a2, a0, e32,m3 30# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 31 32vsetvli a2, a0, m1,e32 33# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 34 35vsetvli a2, a0, e32,m16 36# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 37 38vsetvli a2, a0, e128,m8 39# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 40 41vsetvli a2, a0, e256,m8 42# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 43 44vsetvli a2, a0, e512,m8 45# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 46 47vsetvli a2, a0, e1024,m8 48# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 49 50vsetvli a2, a0, e2048,m8 51# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 52 53vsetvli a2, a0, e1,m8 54# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 55 56vsetvli a2, a0, e8,m1,tx 57# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 58 59vsetvli a2, a0, e8,m1,ta,mx 60# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 61 62vsetvli a2, a0, e8,m1,ma 63# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 64 65vsetvli a2, a0, e8,m1,mu 66# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 67 68vsetvli a2, a0, e8x,m1,tu,mu 69# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 70 71vsetvli a2, a0, e8,m1z,tu,mu 72# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 73 74vsetvli a2, a0, e8,mf1,tu,mu 75# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 76 77vsetvli a2, a0, e8,m1,tu,mut 78# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 79 80vsetvli a2, a0, e8,m1,tut,mu 81# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 82 83vsetvli a2, a0, e8 84# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 85 86vsetvli a2, a0, e8,m1 87# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 88 89vsetvli a2, a0, e8,m1,ta 90# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 91 92vsetvli a2, a0, e8,1,ta,ma 93# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu] 94 95vadd.vv v1, v3, v2, v4.t 96# CHECK-ERROR: operand must be v0.t 97 98vadd.vv v1, v3, v2, v0 99# CHECK-ERROR: expected '.t' suffix 100 101vadd.vv v1, v3, a0 102# CHECK-ERROR: invalid operand for instruction 103 104vmslt.vi v1, v2, -16 105# CHECK-ERROR: immediate must be in the range [-15, 16] 106 107vmslt.vi v1, v2, 17 108# CHECK-ERROR: immediate must be in the range [-15, 16] 109 110viota.m v0, v2, v0.t 111# CHECK-ERROR: the destination vector register group cannot overlap the mask register 112# CHECK-ERROR-LABEL: viota.m v0, v2, v0.t 113 114viota.m v2, v2 115# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 116# CHECK-ERROR-LABEL: viota.m v2, v2 117 118vfwcvt.xu.f.v v0, v2, v0.t 119# CHECK-ERROR: the destination vector register group cannot overlap the mask register 120# CHECK-ERROR-LABEL: vfwcvt.xu.f.v v0, v2, v0.t 121 122vfwcvt.xu.f.v v2, v2 123# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 124# CHECK-ERROR-LABEL: vfwcvt.xu.f.v v2, v2 125 126vfwcvt.x.f.v v0, v2, v0.t 127# CHECK-ERROR: the destination vector register group cannot overlap the mask register 128# CHECK-ERROR-LABEL: vfwcvt.x.f.v v0, v2, v0.t 129 130vfwcvt.x.f.v v2, v2 131# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 132# CHECK-ERROR-LABEL: vfwcvt.x.f.v v2, v2 133 134vfwcvt.f.xu.v v0, v2, v0.t 135# CHECK-ERROR: the destination vector register group cannot overlap the mask register 136# CHECK-ERROR-LABEL: vfwcvt.f.xu.v v0, v2, v0.t 137 138vfwcvt.f.xu.v v2, v2 139# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 140# CHECK-ERROR-LABEL: vfwcvt.f.xu.v v2, v2 141 142vfwcvt.f.x.v v0, v2, v0.t 143# CHECK-ERROR: the destination vector register group cannot overlap the mask register 144# CHECK-ERROR-LABEL: vfwcvt.f.x.v v0, v2, v0.t 145 146vfwcvt.f.x.v v2, v2 147# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 148# CHECK-ERROR-LABEL: vfwcvt.f.x.v v2, v2 149 150vfwcvt.f.f.v v0, v2, v0.t 151# CHECK-ERROR: the destination vector register group cannot overlap the mask register 152# CHECK-ERROR-LABEL: vfwcvt.f.f.v v0, v2, v0.t 153 154vfwcvt.f.f.v v2, v2 155# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 156# CHECK-ERROR-LABEL: vfwcvt.f.f.v v2, v2 157 158vslideup.vx v0, v2, a0, v0.t 159# CHECK-ERROR: the destination vector register group cannot overlap the mask register 160# CHECK-ERROR-LABEL: vslideup.vx v0, v2, a0, v0.t 161 162vslideup.vx v2, v2, a0 163# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 164# CHECK-ERROR-LABEL: vslideup.vx v2, v2, a0 165 166vslideup.vi v0, v2, 31, v0.t 167# CHECK-ERROR: the destination vector register group cannot overlap the mask register 168# CHECK-ERROR-LABEL: vslideup.vi v0, v2, 31, v0.t 169 170vslideup.vi v2, v2, 31 171# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 172# CHECK-ERROR-LABEL: vslideup.vi v2, v2, 31 173 174vslide1up.vx v0, v2, a0, v0.t 175# CHECK-ERROR: the destination vector register group cannot overlap the mask register 176# CHECK-ERROR-LABEL: vslide1up.vx v0, v2, a0, v0.t 177 178vslide1up.vx v2, v2, a0 179# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 180# CHECK-ERROR-LABEL: vslide1up.vx v2, v2, a0 181 182vrgather.vv v0, v2, v4, v0.t 183# CHECK-ERROR: the destination vector register group cannot overlap the mask register 184# CHECK-ERROR-LABEL: vrgather.vv v0, v2, v4, v0.t 185 186vrgather.vv v2, v2, v4 187# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 188# CHECK-ERROR-LABEL: vrgather.vv v2, v2, v4 189 190vrgather.vx v0, v2, a0, v0.t 191# CHECK-ERROR: the destination vector register group cannot overlap the mask register 192# CHECK-ERROR-LABEL: vrgather.vx v0, v2, a0, v0.t 193 194vrgather.vx v2, v2, a0 195# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 196# CHECK-ERROR-LABEL: vrgather.vx v2, v2, a0 197 198vrgather.vi v0, v2, 31, v0.t 199# CHECK-ERROR: the destination vector register group cannot overlap the mask register 200# CHECK-ERROR-LABEL: vrgather.vi v0, v2, 31, v0.t 201 202vrgather.vi v2, v2, 31 203# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 204# CHECK-ERROR-LABEL: vrgather.vi v2, v2, 31 205 206vwaddu.vv v0, v2, v4, v0.t 207# CHECK-ERROR: the destination vector register group cannot overlap the mask register 208# CHECK-ERROR-LABEL: vwaddu.vv v0, v2, v4, v0.t 209 210vwaddu.vv v2, v2, v4 211# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 212# CHECK-ERROR-LABEL: vwaddu.vv v2, v2, v4 213 214vwsubu.vv v0, v2, v4, v0.t 215# CHECK-ERROR: the destination vector register group cannot overlap the mask register 216# CHECK-ERROR-LABEL: vwsubu.vv v0, v2, v4, v0.t 217 218vwsubu.vv v2, v2, v4 219# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 220# CHECK-ERROR-LABEL: vwsubu.vv v2, v2, v4 221 222vwadd.vv v0, v2, v4, v0.t 223# CHECK-ERROR: the destination vector register group cannot overlap the mask register 224# CHECK-ERROR-LABEL: vwadd.vv v0, v2, v4, v0.t 225 226vwadd.vv v2, v2, v4 227# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 228# CHECK-ERROR-LABEL: vwadd.vv v2, v2, v4 229 230vwsub.vv v0, v2, v4, v0.t 231# CHECK-ERROR: the destination vector register group cannot overlap the mask register 232# CHECK-ERROR-LABEL: vwsub.vv v0, v2, v4, v0.t 233 234vwsub.vv v2, v2, v4 235# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 236# CHECK-ERROR-LABEL: vwsub.vv v2, v2, v4 237 238vwmul.vv v0, v2, v4, v0.t 239# CHECK-ERROR: the destination vector register group cannot overlap the mask register 240# CHECK-ERROR-LABEL: vwmul.vv v0, v2, v4, v0.t 241 242vwmul.vv v2, v2, v4 243# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 244# CHECK-ERROR-LABEL: vwmul.vv v2, v2, v4 245 246vwmulu.vv v0, v2, v4, v0.t 247# CHECK-ERROR: the destination vector register group cannot overlap the mask register 248# CHECK-ERROR-LABEL: vwmulu.vv v0, v2, v4, v0.t 249 250vwmulu.vv v2, v2, v4 251# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 252# CHECK-ERROR-LABEL: vwmulu.vv v2, v2, v4 253 254vwmulsu.vv v0, v2, v4, v0.t 255# CHECK-ERROR: the destination vector register group cannot overlap the mask register 256# CHECK-ERROR-LABEL: vwmulsu.vv v0, v2, v4, v0.t 257 258vwmulsu.vv v2, v2, v4 259# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 260# CHECK-ERROR-LABEL: vwmulsu.vv v2, v2, v4 261 262vwmaccu.vv v0, v4, v2, v0.t 263# CHECK-ERROR: the destination vector register group cannot overlap the mask register 264# CHECK-ERROR-LABEL: vwmaccu.vv v0, v4, v2, v0.t 265 266vwmaccu.vv v2, v4, v2 267# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 268# CHECK-ERROR-LABEL: vwmaccu.vv v2, v4, v2 269 270vwmacc.vv v0, v4, v2, v0.t 271# CHECK-ERROR: the destination vector register group cannot overlap the mask register 272# CHECK-ERROR-LABEL: vwmacc.vv v0, v4, v2, v0.t 273 274vwmacc.vv v2, v4, v2 275# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 276# CHECK-ERROR-LABEL: vwmacc.vv v2, v4, v2 277 278vwmaccsu.vv v0, v4, v2, v0.t 279# CHECK-ERROR: the destination vector register group cannot overlap the mask register 280# CHECK-ERROR-LABEL: vwmaccsu.vv v0, v4, v2, v0.t 281 282vwmaccsu.vv v2, v4, v2 283# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 284# CHECK-ERROR-LABEL: vwmaccsu.vv v2, v4, v2 285 286vfwadd.vv v0, v2, v4, v0.t 287# CHECK-ERROR: the destination vector register group cannot overlap the mask register 288# CHECK-ERROR-LABEL: vfwadd.vv v0, v2, v4, v0.t 289 290vfwadd.vv v2, v2, v4 291# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 292# CHECK-ERROR-LABEL: vfwadd.vv v2, v2, v4 293 294vfwsub.vv v0, v2, v4, v0.t 295# CHECK-ERROR: the destination vector register group cannot overlap the mask register 296# CHECK-ERROR-LABEL: vfwsub.vv v0, v2, v4, v0.t 297 298vfwsub.vv v2, v2, v4 299# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 300# CHECK-ERROR-LABEL: vfwsub.vv v2, v2, v4 301 302vfwmul.vv v0, v2, v4, v0.t 303# CHECK-ERROR: the destination vector register group cannot overlap the mask register 304# CHECK-ERROR-LABEL: vfwmul.vv v0, v2, v4, v0.t 305 306vfwmul.vv v2, v2, v4 307# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 308# CHECK-ERROR-LABEL: vfwmul.vv v2, v2, v4 309 310vfwmacc.vv v0, v4, v2, v0.t 311# CHECK-ERROR: the destination vector register group cannot overlap the mask register 312# CHECK-ERROR-LABEL: vfwmacc.vv v0, v4, v2, v0.t 313 314vfwmacc.vv v2, v4, v2 315# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 316# CHECK-ERROR-LABEL: vfwmacc.vv v2, v4, v2 317 318vfwnmacc.vv v0, v4, v2, v0.t 319# CHECK-ERROR: the destination vector register group cannot overlap the mask register 320# CHECK-ERROR-LABEL: vfwnmacc.vv v0, v4, v2, v0.t 321 322vfwnmacc.vv v2, v4, v2 323# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 324# CHECK-ERROR-LABEL: vfwnmacc.vv v2, v4, v2 325 326vfwmsac.vv v0, v4, v2, v0.t 327# CHECK-ERROR: the destination vector register group cannot overlap the mask register 328# CHECK-ERROR-LABEL: vfwmsac.vv v0, v4, v2, v0.t 329 330vfwmsac.vv v2, v4, v2 331# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 332# CHECK-ERROR-LABEL: vfwmsac.vv v2, v4, v2 333 334vfwnmsac.vv v0, v4, v2, v0.t 335# CHECK-ERROR: the destination vector register group cannot overlap the mask register 336# CHECK-ERROR-LABEL: vfwnmsac.vv v0, v4, v2, v0.t 337 338vfwnmsac.vv v2, v4, v2 339# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 340# CHECK-ERROR-LABEL: vfwnmsac.vv v2, v4, v2 341 342vwaddu.vx v0, v2, a0, v0.t 343# CHECK-ERROR: the destination vector register group cannot overlap the mask register 344# CHECK-ERROR-LABEL: vwaddu.vx v0, v2, a0, v0.t 345 346vwaddu.vx v2, v2, a0 347# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 348# CHECK-ERROR-LABEL: vwaddu.vx v2, v2, a0 349 350vwsubu.vx v0, v2, a0, v0.t 351# CHECK-ERROR: the destination vector register group cannot overlap the mask register 352# CHECK-ERROR-LABEL: vwsubu.vx v0, v2, a0, v0.t 353 354vwsubu.vx v2, v2, a0 355# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 356# CHECK-ERROR-LABEL: vwsubu.vx v2, v2, a0 357 358vwadd.vx v0, v2, a0, v0.t 359# CHECK-ERROR: the destination vector register group cannot overlap the mask register 360# CHECK-ERROR-LABEL: vwadd.vx v0, v2, a0, v0.t 361 362vwadd.vx v2, v2, a0 363# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 364# CHECK-ERROR-LABEL: vwadd.vx v2, v2, a0 365 366vwsub.vx v0, v2, a0, v0.t 367# CHECK-ERROR: the destination vector register group cannot overlap the mask register 368# CHECK-ERROR-LABEL: vwsub.vx v0, v2, a0, v0.t 369 370vwsub.vx v2, v2, a0 371# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 372# CHECK-ERROR-LABEL: vwsub.vx v2, v2, a0 373 374vwmul.vx v0, v2, a0, v0.t 375# CHECK-ERROR: the destination vector register group cannot overlap the mask register 376# CHECK-ERROR-LABEL: vwmul.vx v0, v2, a0, v0.t 377 378vwmul.vx v2, v2, a0 379# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 380# CHECK-ERROR-LABEL: vwmul.vx v2, v2, a0 381 382vwmulu.vx v0, v2, a0, v0.t 383# CHECK-ERROR: the destination vector register group cannot overlap the mask register 384# CHECK-ERROR-LABEL: vwmulu.vx v0, v2, a0, v0.t 385 386vwmulu.vx v2, v2, a0 387# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 388# CHECK-ERROR-LABEL: vwmulu.vx v2, v2, a0 389 390vwmulsu.vx v0, v2, a0, v0.t 391# CHECK-ERROR: the destination vector register group cannot overlap the mask register 392# CHECK-ERROR-LABEL: vwmulsu.vx v0, v2, a0, v0.t 393 394vwmulsu.vx v2, v2, a0 395# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 396# CHECK-ERROR-LABEL: vwmulsu.vx v2, v2, a0 397 398vwmaccu.vx v0, a0, v2, v0.t 399# CHECK-ERROR: the destination vector register group cannot overlap the mask register 400# CHECK-ERROR-LABEL: vwmaccu.vx v0, a0, v2, v0.t 401 402vwmaccu.vx v2, a0, v2 403# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 404# CHECK-ERROR-LABEL: vwmaccu.vx v2, a0, v2 405 406vwmacc.vx v0, a0, v2, v0.t 407# CHECK-ERROR: the destination vector register group cannot overlap the mask register 408# CHECK-ERROR-LABEL: vwmacc.vx v0, a0, v2, v0.t 409 410vwmacc.vx v2, a0, v2 411# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 412# CHECK-ERROR-LABEL: vwmacc.vx v2, a0, v2 413 414vwmaccsu.vx v0, a0, v2, v0.t 415# CHECK-ERROR: the destination vector register group cannot overlap the mask register 416# CHECK-ERROR-LABEL: vwmaccsu.vx v0, a0, v2, v0.t 417 418vwmaccsu.vx v2, a0, v2 419# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 420# CHECK-ERROR-LABEL: vwmaccsu.vx v2, a0, v2 421 422vwmaccus.vx v0, a0, v2, v0.t 423# CHECK-ERROR: the destination vector register group cannot overlap the mask register 424# CHECK-ERROR-LABEL: vwmaccus.vx v0, a0, v2, v0.t 425 426vwmaccus.vx v2, a0, v2 427# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 428# CHECK-ERROR-LABEL: vwmaccus.vx v2, a0, v2 429 430vfwadd.vf v0, v2, fa0, v0.t 431# CHECK-ERROR: the destination vector register group cannot overlap the mask register 432# CHECK-ERROR-LABEL: vfwadd.vf v0, v2, fa0, v0.t 433 434vfwadd.vf v2, v2, fa0 435# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 436# CHECK-ERROR-LABEL: vfwadd.vf v2, v2, fa0 437 438vfwsub.vf v0, v2, fa0, v0.t 439# CHECK-ERROR: the destination vector register group cannot overlap the mask register 440# CHECK-ERROR-LABEL: vfwsub.vf v0, v2, fa0, v0.t 441 442vfwsub.vf v2, v2, fa0 443# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 444# CHECK-ERROR-LABEL: vfwsub.vf v2, v2, fa0 445 446vfwmul.vf v0, v2, fa0, v0.t 447# CHECK-ERROR: the destination vector register group cannot overlap the mask register 448# CHECK-ERROR-LABEL: vfwmul.vf v0, v2, fa0, v0.t 449 450vfwmul.vf v2, v2, fa0 451# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 452# CHECK-ERROR-LABEL: vfwmul.vf v2, v2, fa0 453 454vfwmacc.vf v0, fa0, v2, v0.t 455# CHECK-ERROR: the destination vector register group cannot overlap the mask register 456# CHECK-ERROR-LABEL: vfwmacc.vf v0, fa0, v2, v0.t 457 458vfwmacc.vf v2, fa0, v2 459# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 460# CHECK-ERROR-LABEL: vfwmacc.vf v2, fa0, v2 461 462vfwnmacc.vf v0, fa0, v2, v0.t 463# CHECK-ERROR: the destination vector register group cannot overlap the mask register 464# CHECK-ERROR-LABEL: vfwnmacc.vf v0, fa0, v2, v0.t 465 466vfwnmacc.vf v2, fa0, v2 467# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 468# CHECK-ERROR-LABEL: vfwnmacc.vf v2, fa0, v2 469 470vfwmsac.vf v0, fa0, v2, v0.t 471# CHECK-ERROR: the destination vector register group cannot overlap the mask register 472# CHECK-ERROR-LABEL: vfwmsac.vf v0, fa0, v2, v0.t 473 474vfwmsac.vf v2, fa0, v2 475# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 476# CHECK-ERROR-LABEL: vfwmsac.vf v2, fa0, v2 477 478vfwnmsac.vf v0, fa0, v2, v0.t 479# CHECK-ERROR: the destination vector register group cannot overlap the mask register 480# CHECK-ERROR-LABEL: vfwnmsac.vf v0, fa0, v2, v0.t 481 482vfwnmsac.vf v2, fa0, v2 483# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 484# CHECK-ERROR-LABEL: vfwnmsac.vf v2, fa0, v2 485 486vcompress.vm v2, v2, v4 487# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 488# CHECK-ERROR-LABEL: vcompress.vm v2, v2, v4 489 490vwaddu.wv v0, v2, v4, v0.t 491# CHECK-ERROR: the destination vector register group cannot overlap the mask register 492# CHECK-ERROR-LABEL: vwaddu.wv v0, v2, v4, v0.t 493 494vwaddu.wv v2, v4, v2 495# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 496# CHECK-ERROR-LABEL: vwaddu.wv v2, v4, v2 497 498vwsubu.wv v0, v2, v4, v0.t 499# CHECK-ERROR: the destination vector register group cannot overlap the mask register 500# CHECK-ERROR-LABEL: vwsubu.wv v0, v2, v4, v0.t 501 502vwsubu.wv v2, v4, v2 503# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 504# CHECK-ERROR-LABEL: vwsubu.wv v2, v4, v2 505 506vwadd.wv v0, v2, v4, v0.t 507# CHECK-ERROR: the destination vector register group cannot overlap the mask register 508# CHECK-ERROR-LABEL: vwadd.wv v0, v2, v4, v0.t 509 510vwadd.wv v2, v4, v2 511# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 512# CHECK-ERROR-LABEL: vwadd.wv v2, v4, v2 513 514vwsub.wv v0, v2, v4, v0.t 515# CHECK-ERROR: the destination vector register group cannot overlap the mask register 516# CHECK-ERROR-LABEL: vwsub.wv v0, v2, v4, v0.t 517 518vwsub.wv v2, v4, v2 519# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 520# CHECK-ERROR-LABEL: vwsub.wv v2, v4, v2 521 522vfwadd.wv v0, v2, v4, v0.t 523# CHECK-ERROR: the destination vector register group cannot overlap the mask register 524# CHECK-ERROR-LABEL: vfwadd.wv v0, v2, v4, v0.t 525 526vfwadd.wv v2, v4, v2 527# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 528# CHECK-ERROR-LABEL: vfwadd.wv v2, v4, v2 529 530vfwsub.wv v0, v2, v4, v0.t 531# CHECK-ERROR: the destination vector register group cannot overlap the mask register 532# CHECK-ERROR-LABEL: vfwsub.wv v0, v2, v4, v0.t 533 534vfwsub.wv v2, v4, v2 535# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group 536# CHECK-ERROR-LABEL: vfwsub.wv v2, v4, v2 537 538vwaddu.wx v0, v2, a0, v0.t 539# CHECK-ERROR: the destination vector register group cannot overlap the mask register 540# CHECK-ERROR-LABEL: vwaddu.wx v0, v2, a0, v0.t 541 542vwsubu.wx v0, v2, a0, v0.t 543# CHECK-ERROR: the destination vector register group cannot overlap the mask register 544# CHECK-ERROR-LABEL: vwsubu.wx v0, v2, a0, v0.t 545 546vwadd.wx v0, v2, a0, v0.t 547# CHECK-ERROR: the destination vector register group cannot overlap the mask register 548# CHECK-ERROR-LABEL: vwadd.wx v0, v2, a0, v0.t 549 550vwsub.wx v0, v2, a0, v0.t 551# CHECK-ERROR: the destination vector register group cannot overlap the mask register 552# CHECK-ERROR-LABEL: vwsub.wx v0, v2, a0, v0.t 553 554vfwadd.wf v0, v2, fa0, v0.t 555# CHECK-ERROR: the destination vector register group cannot overlap the mask register 556# CHECK-ERROR-LABEL: vfwadd.wf v0, v2, fa0, v0.t 557 558vfwsub.wf v0, v2, fa0, v0.t 559# CHECK-ERROR: the destination vector register group cannot overlap the mask register 560# CHECK-ERROR-LABEL: vfwsub.wf v0, v2, fa0, v0.t 561 562vadc.vvm v0, v2, v4, v0 563# CHECK-ERROR: the destination vector register group cannot be V0 564# CHECK-ERROR-LABEL: vadc.vvm v0, v2, v4, v0 565 566vadd.vv v0, v2, v4, v0.t 567# CHECK-ERROR: the destination vector register group cannot overlap the mask register 568# CHECK-ERROR-LABEL: vadd.vv v0, v2, v4, v0.t 569 570vadd.vx v0, v2, a0, v0.t 571# CHECK-ERROR: the destination vector register group cannot overlap the mask register 572# CHECK-ERROR-LABEL: vadd.vx v0, v2, a0, v0.t 573 574vadd.vi v0, v2, 1, v0.t 575# CHECK-ERROR: the destination vector register group cannot overlap the mask register 576# CHECK-ERROR-LABEL: vadd.vi v0, v2, 1, v0.t 577 578vmsge.vx v0, v4, a0, v0.t 579# CHECK-ERROR: too few operands for instruction 580# CHECK-ERROR-LABEL: vmsge.vx v0, v4, a0, v0.t 581 582vmerge.vim v0, v1, 1, v0 583# CHECK-ERROR: the destination vector register group cannot be V0 584# CHECK-ERROR-LABEL: vmerge.vim v0, v1, 1, v0 585 586vmerge.vvm v0, v1, v2, v0 587# CHECK-ERROR: the destination vector register group cannot be V0 588# CHECK-ERROR-LABEL: vmerge.vvm v0, v1, v2, v0 589 590vmerge.vxm v0, v1, x1, v0 591# CHECK-ERROR: the destination vector register group cannot be V0 592# CHECK-ERROR-LABEL: vmerge.vxm v0, v1, x1, v0 593 594vfmerge.vfm v0, v1, f1, v0 595# CHECK-ERROR: the destination vector register group cannot be V0 596# CHECK-ERROR-LABEL: vfmerge.vfm v0, v1, f1, v0 597 598vle8.v v0, (a0), v0.t 599# CHECK-ERROR: the destination vector register group cannot overlap the mask register 600# CHECK-ERROR-LABEL: vle8.v v0, (a0), v0.t 601 602vfclass.v v0, v1, v0.t 603# CHECK-ERROR: the destination vector register group cannot overlap the mask register 604# CHECK-ERROR-LABEL: vfclass.v v0, v1, v0.t 605 606vfsqrt.v v0, v1, v0.t 607# CHECK-ERROR: the destination vector register group cannot overlap the mask register 608# CHECK-ERROR-LABEL: vfsqrt.v v0, v1, v0.t 609 610vzext.vf2 v0, v1, v0.t 611# CHECK-ERROR: the destination vector register group cannot overlap the mask register 612# CHECK-ERROR-LABEL: vzext.vf2 v0, v1, v0.t 613 614vid.v v0, v0.t 615# CHECK-ERROR: the destination vector register group cannot overlap the mask register 616# CHECK-ERROR-LABEL: vid.v v0, v0.t 617 618vnsrl.wv v0, v4, v20, v0.t 619# CHECK-ERROR: the destination vector register group cannot overlap the mask register 620# CHECK-ERROR-LABEL: vnsrl.wv v0, v4, v20, v0.t 621 622vfncvt.xu.f.w v0, v4, v0.t 623# CHECK-ERROR: the destination vector register group cannot overlap the mask register 624# CHECK-ERROR-LABEL: vfncvt.xu.f.w v0, v4, v0.t 625 626vl2re8.v v1, (a0) 627# CHECK-ERROR: invalid operand for instruction 628 629vl4re8.v v1, (a0) 630# CHECK-ERROR: invalid operand for instruction 631 632vl4re8.v v2, (a0) 633# CHECK-ERROR: invalid operand for instruction 634 635vl4re8.v v3, (a0) 636# CHECK-ERROR: invalid operand for instruction 637 638vl8re8.v v1, (a0) 639# CHECK-ERROR: invalid operand for instruction 640 641vl8re8.v v2, (a0) 642# CHECK-ERROR: invalid operand for instruction 643 644vl8re8.v v3, (a0) 645# CHECK-ERROR: invalid operand for instruction 646 647vl8re8.v v4, (a0) 648# CHECK-ERROR: invalid operand for instruction 649 650vl8re8.v v5, (a0) 651# CHECK-ERROR: invalid operand for instruction 652 653vl8re8.v v6, (a0) 654# CHECK-ERROR: invalid operand for instruction 655 656vl8re8.v v7, (a0) 657# CHECK-ERROR: invalid operand for instruction 658 659vs2r.v v1, (a0) 660# CHECK-ERROR: invalid operand for instruction 661 662vs4r.v v1, (a0) 663# CHECK-ERROR: invalid operand for instruction 664 665vs4r.v v2, (a0) 666# CHECK-ERROR: invalid operand for instruction 667 668vs4r.v v3, (a0) 669# CHECK-ERROR: invalid operand for instruction 670 671vs8r.v v1, (a0) 672# CHECK-ERROR: invalid operand for instruction 673 674vs8r.v v2, (a0) 675# CHECK-ERROR: invalid operand for instruction 676 677vs8r.v v3, (a0) 678# CHECK-ERROR: invalid operand for instruction 679 680vs8r.v v4, (a0) 681# CHECK-ERROR: invalid operand for instruction 682 683vs8r.v v5, (a0) 684# CHECK-ERROR: invalid operand for instruction 685 686vs8r.v v6, (a0) 687# CHECK-ERROR: invalid operand for instruction 688 689vs8r.v v7, (a0) 690# CHECK-ERROR: invalid operand for instruction 691 692vmv2r.v v1, v0 693# CHECK-ERROR: invalid operand for instruction 694 695vmv2r.v v0, v1 696# CHECK-ERROR: invalid operand for instruction 697 698vmv4r.v v1, v0 699# CHECK-ERROR: invalid operand for instruction 700 701vmv4r.v v2, v0 702# CHECK-ERROR: invalid operand for instruction 703 704vmv4r.v v3, v0 705# CHECK-ERROR: invalid operand for instruction 706 707vmv4r.v v0, v1 708# CHECK-ERROR: invalid operand for instruction 709 710vmv4r.v v0, v2 711# CHECK-ERROR: invalid operand for instruction 712 713vmv4r.v v0, v3 714# CHECK-ERROR: invalid operand for instruction 715 716vmv8r.v v1, v0 717# CHECK-ERROR: invalid operand for instruction 718 719vmv8r.v v2, v0 720# CHECK-ERROR: invalid operand for instruction 721 722vmv8r.v v3, v0 723# CHECK-ERROR: invalid operand for instruction 724 725vmv8r.v v4, v0 726# CHECK-ERROR: invalid operand for instruction 727 728vmv8r.v v5, v0 729# CHECK-ERROR: invalid operand for instruction 730 731vmv8r.v v6, v0 732# CHECK-ERROR: invalid operand for instruction 733 734vmv8r.v v7, v0 735# CHECK-ERROR: invalid operand for instruction 736 737vmv8r.v v0, v1 738# CHECK-ERROR: invalid operand for instruction 739 740vmv8r.v v0, v2 741# CHECK-ERROR: invalid operand for instruction 742 743vmv8r.v v0, v3 744# CHECK-ERROR: invalid operand for instruction 745 746vmv8r.v v0, v4 747# CHECK-ERROR: invalid operand for instruction 748 749vmv8r.v v0, v5 750# CHECK-ERROR: invalid operand for instruction 751 752vmv8r.v v0, v6 753# CHECK-ERROR: invalid operand for instruction 754 755vmv8r.v v0, v7 756# CHECK-ERROR: invalid operand for instruction 757 758vmsge.vx v2, v4, a0, v0.t, v0 759# CHECK-ERROR: invalid operand for instruction 760 761vmsgeu.vx v2, v4, a0, v0.t, v0 762# CHECK-ERROR: invalid operand for instruction 763 764vmsge.vx v2, v4, a0, v0.t, v2 765# CHECK-ERROR: the temporary vector register cannot be the same as the destination register 766 767vmsgeu.vx v2, v4, a0, v0.t, v2 768# CHECK-ERROR: the temporary vector register cannot be the same as the destination register 769