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