1# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zbp -riscv-no-aliases \ 2# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s 3# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-zbp \ 4# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ %s 5# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-zbp < %s \ 6# RUN: | llvm-objdump -d -r -M no-aliases --mattr=+experimental-zbp - \ 7# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s 8# RUN: llvm-mc -filetype=obj -triple riscv64 -mattr=+experimental-zbp < %s \ 9# RUN: | llvm-objdump -d -r --mattr=+experimental-zbp - \ 10# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ %s 11 12# The following check prefixes are used in this test: 13# CHECK-S-OBJ Match both the .s and objdumped object output with 14# aliases enabled 15# CHECK-S-OBJ-NOALIAS Match both the .s and objdumped object output with 16# aliases disabled 17 18# CHECK-S-OBJ-NOALIAS: zext.h t0, t1 19# CHECK-S-OBJ: zext.h t0, t1 20zext.h x5, x6 21 22# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 1 23# CHECK-S-OBJ: rev.p t0, t1 24rev.p x5, x6 25 26# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 2 27# CHECK-S-OBJ: rev2.n t0, t1 28rev2.n x5, x6 29 30# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 3 31# CHECK-S-OBJ: rev.n t0, t1 32rev.n x5, x6 33 34# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 4 35# CHECK-S-OBJ: rev4.b t0, t1 36rev4.b x5, x6 37 38# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 6 39# CHECK-S-OBJ: rev2.b t0, t1 40rev2.b x5, x6 41 42# CHECK-S-OBJ-NOALIAS: brev8 t0, t1 43# CHECK-S-OBJ: rev.b t0, t1 44rev.b x5, x6 45 46# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 8 47# CHECK-S-OBJ: rev8.h t0, t1 48rev8.h x5, x6 49 50# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 12 51# CHECK-S-OBJ: rev4.h t0, t1 52rev4.h x5, x6 53 54# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 14 55# CHECK-S-OBJ: rev2.h t0, t1 56rev2.h x5, x6 57 58# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 15 59# CHECK-S-OBJ: rev.h t0, t1 60rev.h x5, x6 61 62# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 16 63# CHECK-S-OBJ: rev16.w t0, t1 64rev16.w x5, x6 65 66# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 24 67# CHECK-S-OBJ: rev8.w t0, t1 68rev8.w x5, x6 69 70# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 28 71# CHECK-S-OBJ: rev4.w t0, t1 72rev4.w x5, x6 73 74# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 30 75# CHECK-S-OBJ: rev2.w t0, t1 76rev2.w x5, x6 77 78# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 31 79# CHECK-S-OBJ: rev.w t0, t1 80rev.w x5, x6 81 82# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 32 83# CHECK-S-OBJ: rev32 t0, t1 84rev32 x5, x6 85 86# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 48 87# CHECK-S-OBJ: rev16 t0, t1 88rev16 x5, x6 89 90# CHECK-S-OBJ-NOALIAS: rev8 t0, t1 91# CHECK-S-OBJ: rev8 t0, t1 92rev8 x5, x6 93 94# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 60 95# CHECK-S-OBJ: rev4 t0, t1 96rev4 x5, x6 97 98# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 62 99# CHECK-S-OBJ: rev2 t0, t1 100rev2 x5, x6 101 102# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 63 103# CHECK-S-OBJ: rev t0, t1 104rev x5, x6 105 106# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 1 107# CHECK-S-OBJ: zip.n t0, t1 108zip.n x5, x6 109 110# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 1 111# CHECK-S-OBJ: unzip.n t0, t1 112unzip.n x5, x6 113 114# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 2 115# CHECK-S-OBJ: zip2.b t0, t1 116zip2.b x5, x6 117 118# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 2 119# CHECK-S-OBJ: unzip2.b t0, t1 120unzip2.b x5, x6 121 122# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 3 123# CHECK-S-OBJ: zip.b t0, t1 124zip.b x5, x6 125 126# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 3 127# CHECK-S-OBJ: unzip.b t0, t1 128unzip.b x5, x6 129 130# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 4 131# CHECK-S-OBJ: zip4.h t0, t1 132zip4.h x5, x6 133 134# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 4 135# CHECK-S-OBJ: unzip4.h t0, t1 136unzip4.h x5, x6 137 138# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 6 139# CHECK-S-OBJ: zip2.h t0, t1 140zip2.h x5, x6 141 142# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 6 143# CHECK-S-OBJ: unzip2.h t0, t1 144unzip2.h x5, x6 145 146# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 7 147# CHECK-S-OBJ: zip.h t0, t1 148zip.h x5, x6 149 150# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 7 151# CHECK-S-OBJ: unzip.h t0, t1 152unzip.h x5, x6 153 154# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 8 155# CHECK-S-OBJ: zip8.w t0, t1 156zip8.w x5, x6 157 158# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 8 159# CHECK-S-OBJ: unzip8.w t0, t1 160unzip8.w x5, x6 161 162# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 12 163# CHECK-S-OBJ: zip4.w t0, t1 164zip4.w x5, x6 165 166# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 12 167# CHECK-S-OBJ: unzip4.w t0, t1 168unzip4.w x5, x6 169 170# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 14 171# CHECK-S-OBJ: zip2.w t0, t1 172zip2.w x5, x6 173 174# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 14 175# CHECK-S-OBJ: unzip2.w t0, t1 176unzip2.w x5, x6 177 178# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 15 179# CHECK-S-OBJ: zip.w t0, t1 180zip.w x5, x6 181 182# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 15 183# CHECK-S-OBJ: unzip.w t0, t1 184unzip.w x5, x6 185 186# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 16 187# CHECK-S-OBJ: zip16 t0, t1 188zip16 x5, x6 189 190# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 16 191# CHECK-S-OBJ: unzip16 t0, t1 192unzip16 x5, x6 193 194# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 24 195# CHECK-S-OBJ: zip8 t0, t1 196zip8 x5, x6 197 198# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 24 199# CHECK-S-OBJ: unzip8 t0, t1 200unzip8 x5, x6 201 202# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 28 203# CHECK-S-OBJ: zip4 t0, t1 204zip4 x5, x6 205 206# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 28 207# CHECK-S-OBJ: unzip4 t0, t1 208unzip4 x5, x6 209 210# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 30 211# CHECK-S-OBJ: zip2 t0, t1 212zip2 x5, x6 213 214# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 30 215# CHECK-S-OBJ: unzip2 t0, t1 216unzip2 x5, x6 217 218# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 31 219# CHECK-S-OBJ: zip t0, t1 220zip x5, x6 221 222# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 31 223# CHECK-S-OBJ: unzip t0, t1 224unzip x5, x6 225 226# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 1 227# CHECK-S-OBJ: orc.p t0, t1 228orc.p x5, x6 229 230# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 2 231# CHECK-S-OBJ: orc2.n t0, t1 232orc2.n x5, x6 233 234# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 3 235# CHECK-S-OBJ: orc.n t0, t1 236orc.n x5, x6 237 238# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 4 239# CHECK-S-OBJ: orc4.b t0, t1 240orc4.b x5, x6 241 242# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 6 243# CHECK-S-OBJ: orc2.b t0, t1 244orc2.b x5, x6 245 246# CHECK-S-OBJ-NOALIAS: orc.b t0, t1 247# CHECK-S-OBJ: orc.b t0, t1 248orc.b x5, x6 249 250# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 8 251# CHECK-S-OBJ: orc8.h t0, t1 252orc8.h x5, x6 253 254# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 12 255# CHECK-S-OBJ: orc4.h t0, t1 256orc4.h x5, x6 257 258# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 14 259# CHECK-S-OBJ: orc2.h t0, t1 260orc2.h x5, x6 261 262# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 15 263# CHECK-S-OBJ: orc.h t0, t1 264orc.h x5, x6 265 266# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 16 267# CHECK-S-OBJ: orc16.w t0, t1 268orc16.w x5, x6 269 270# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 24 271# CHECK-S-OBJ: orc8.w t0, t1 272orc8.w x5, x6 273 274# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 28 275# CHECK-S-OBJ: orc4.w t0, t1 276orc4.w x5, x6 277 278# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 30 279# CHECK-S-OBJ: orc2.w t0, t1 280orc2.w x5, x6 281 282# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 31 283# CHECK-S-OBJ: orc.w t0, t1 284orc.w x5, x6 285 286# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 32 287# CHECK-S-OBJ: orc32 t0, t1 288orc32 x5, x6 289 290# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 48 291# CHECK-S-OBJ: orc16 t0, t1 292orc16 x5, x6 293 294# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 56 295# CHECK-S-OBJ: orc8 t0, t1 296orc8 x5, x6 297 298# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 60 299# CHECK-S-OBJ: orc4 t0, t1 300orc4 x5, x6 301 302# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 62 303# CHECK-S-OBJ: orc2 t0, t1 304orc2 x5, x6 305 306# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 63 307# CHECK-S-OBJ: orc t0, t1 308orc x5, x6 309 310# CHECK-S-OBJ-NOALIAS: rori t0, t1, 8 311# CHECK-S-OBJ: rori t0, t1, 8 312ror x5, x6, 8 313 314# CHECK-S-OBJ-NOALIAS: roriw t0, t1, 8 315# CHECK-S-OBJ: roriw t0, t1, 8 316rorw x5, x6, 8 317 318# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 13 319# CHECK-S-OBJ: grevi t0, t1, 13 320grev x5, x6, 13 321 322# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 13 323# CHECK-S-OBJ: gorci t0, t1, 13 324gorc x5, x6, 13 325 326# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 13 327# CHECK-S-OBJ: shfli t0, t1, 13 328shfl x5, x6, 13 329 330# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 13 331# CHECK-S-OBJ: unshfli t0, t1, 13 332unshfl x5, x6, 13 333 334# CHECK-S-OBJ-NOALIAS: greviw t0, t1, 13 335# CHECK-S-OBJ: greviw t0, t1, 13 336grevw x5, x6, 13 337 338# CHECK-S-OBJ-NOALIAS: gorciw t0, t1, 13 339# CHECK-S-OBJ: gorciw t0, t1, 13 340gorcw x5, x6, 13 341