1# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zbp -riscv-no-aliases \ 2# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ-NOALIAS %s 3# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-zbp \ 4# RUN: | FileCheck -check-prefixes=CHECK-S-OBJ %s 5# RUN: llvm-mc -filetype=obj -triple riscv32 -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 riscv32 -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: grevi t0, t1, 7 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 t0, t1 64rev16 x5, x6 65 66# CHECK-S-OBJ-NOALIAS: rev8 t0, t1 67# CHECK-S-OBJ: rev8 t0, t1 68rev8 x5, x6 69 70# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 28 71# CHECK-S-OBJ: rev4 t0, t1 72rev4 x5, x6 73 74# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 30 75# CHECK-S-OBJ: rev2 t0, t1 76rev2 x5, x6 77 78# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 31 79# CHECK-S-OBJ: rev t0, t1 80rev x5, x6 81 82# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 1 83# CHECK-S-OBJ: zip.n t0, t1 84zip.n x5, x6 85 86# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 1 87# CHECK-S-OBJ: unzip.n t0, t1 88unzip.n x5, x6 89 90# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 2 91# CHECK-S-OBJ: zip2.b t0, t1 92zip2.b x5, x6 93 94# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 2 95# CHECK-S-OBJ: unzip2.b t0, t1 96unzip2.b x5, x6 97 98# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 3 99# CHECK-S-OBJ: zip.b t0, t1 100zip.b x5, x6 101 102# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 3 103# CHECK-S-OBJ: unzip.b t0, t1 104unzip.b x5, x6 105 106# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 4 107# CHECK-S-OBJ: zip4.h t0, t1 108zip4.h x5, x6 109 110# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 4 111# CHECK-S-OBJ: unzip4.h t0, t1 112unzip4.h x5, x6 113 114# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 6 115# CHECK-S-OBJ: zip2.h t0, t1 116zip2.h x5, x6 117 118# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 6 119# CHECK-S-OBJ: unzip2.h t0, t1 120unzip2.h x5, x6 121 122# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 7 123# CHECK-S-OBJ: zip.h t0, t1 124zip.h x5, x6 125 126# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 7 127# CHECK-S-OBJ: unzip.h t0, t1 128unzip.h x5, x6 129 130# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 8 131# CHECK-S-OBJ: zip8 t0, t1 132zip8 x5, x6 133 134# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 8 135# CHECK-S-OBJ: unzip8 t0, t1 136unzip8 x5, x6 137 138# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 12 139# CHECK-S-OBJ: zip4 t0, t1 140zip4 x5, x6 141 142# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 12 143# CHECK-S-OBJ: unzip4 t0, t1 144unzip4 x5, x6 145 146# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 14 147# CHECK-S-OBJ: zip2 t0, t1 148zip2 x5, x6 149 150# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 14 151# CHECK-S-OBJ: unzip2 t0, t1 152unzip2 x5, x6 153 154# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 15 155# CHECK-S-OBJ: zip t0, t1 156zip x5, x6 157 158# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 15 159# CHECK-S-OBJ: unzip t0, t1 160unzip x5, x6 161 162# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 1 163# CHECK-S-OBJ: orc.p t0, t1 164orc.p x5, x6 165 166# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 2 167# CHECK-S-OBJ: orc2.n t0, t1 168orc2.n x5, x6 169 170# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 3 171# CHECK-S-OBJ: orc.n t0, t1 172orc.n x5, x6 173 174# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 4 175# CHECK-S-OBJ: orc4.b t0, t1 176orc4.b x5, x6 177 178# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 6 179# CHECK-S-OBJ: orc2.b t0, t1 180orc2.b x5, x6 181 182# CHECK-S-OBJ-NOALIAS: orc.b t0, t1 183# CHECK-S-OBJ: orc.b t0, t1 184orc.b x5, x6 185 186# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 8 187# CHECK-S-OBJ: orc8.h t0, t1 188orc8.h x5, x6 189 190# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 12 191# CHECK-S-OBJ: orc4.h t0, t1 192orc4.h x5, x6 193 194# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 14 195# CHECK-S-OBJ: orc2.h t0, t1 196orc2.h x5, x6 197 198# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 15 199# CHECK-S-OBJ: orc.h t0, t1 200orc.h x5, x6 201 202# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 16 203# CHECK-S-OBJ: orc16 t0, t1 204orc16 x5, x6 205 206# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 24 207# CHECK-S-OBJ: orc8 t0, t1 208orc8 x5, x6 209 210# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 28 211# CHECK-S-OBJ: orc4 t0, t1 212orc4 x5, x6 213 214# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 30 215# CHECK-S-OBJ: orc2 t0, t1 216orc2 x5, x6 217 218# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 31 219# CHECK-S-OBJ: orc t0, t1 220orc x5, x6 221 222# CHECK-S-OBJ-NOALIAS: rori t0, t1, 8 223# CHECK-S-OBJ: rori t0, t1, 8 224ror x5, x6, 8 225 226# CHECK-S-OBJ-NOALIAS: grevi t0, t1, 13 227# CHECK-S-OBJ: grevi t0, t1, 13 228grev x5, x6, 13 229 230# CHECK-S-OBJ-NOALIAS: gorci t0, t1, 13 231# CHECK-S-OBJ: gorci t0, t1, 13 232gorc x5, x6, 13 233 234# CHECK-S-OBJ-NOALIAS: shfli t0, t1, 13 235# CHECK-S-OBJ: shfli t0, t1, 13 236shfl x5, x6, 13 237 238# CHECK-S-OBJ-NOALIAS: unshfli t0, t1, 13 239# CHECK-S-OBJ: unshfli t0, t1, 13 240unshfl x5, x6, 13 241