|
| 1 | +# RUN: llvm-mc %s -triple=riscv32 -mattr=+experimental-xrivosvizip -riscv-no-aliases -show-encoding \ |
| 2 | +# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s |
| 3 | +# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+experimental-xrivosvizip < %s \ |
| 4 | +# RUN: | llvm-objdump --mattr=+experimental-xrivosvizip -M no-aliases -d -r - \ |
| 5 | +# RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s |
| 6 | +# RUN: llvm-mc %s -triple=riscv64 -mattr=+experimental-xrivosvizip -riscv-no-aliases -show-encoding \ |
| 7 | +# RUN: | FileCheck -check-prefixes=CHECK-ASM,CHECK-ASM-AND-OBJ %s |
| 8 | +# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+experimental-xrivosvizip < %s \ |
| 9 | +# RUN: | llvm-objdump --mattr=+experimental-xrivosvizip -M no-aliases -d -r - \ |
| 10 | +# RUN: | FileCheck --check-prefix=CHECK-ASM-AND-OBJ %s |
| 11 | + |
| 12 | +# CHECK-ASM-AND-OBJ: rv.vzipeven.vv v1, v2, v3 |
| 13 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x32] |
| 14 | +rv.vzipeven.vv v1, v2, v3 |
| 15 | +# CHECK-ASM-AND-OBJ: rv.vzipeven.vv v1, v2, v3, v0.t |
| 16 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x30] |
| 17 | +rv.vzipeven.vv v1, v2, v3, v0.t |
| 18 | +# CHECK-ASM-AND-OBJ: rv.vzipodd.vv v1, v2, v3 |
| 19 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x72] |
| 20 | +rv.vzipodd.vv v1, v2, v3 |
| 21 | +# CHECK-ASM-AND-OBJ: rv.vzipodd.vv v1, v2, v3, v0.t |
| 22 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x70] |
| 23 | +rv.vzipodd.vv v1, v2, v3, v0.t |
| 24 | + |
| 25 | +# CHECK-ASM-AND-OBJ: rv.vzip2a.vv v1, v2, v3 |
| 26 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x12] |
| 27 | +rv.vzip2a.vv v1, v2, v3 |
| 28 | +# CHECK-ASM-AND-OBJ: rv.vzip2a.vv v1, v2, v3, v0.t |
| 29 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x10] |
| 30 | +rv.vzip2a.vv v1, v2, v3, v0.t |
| 31 | +# CHECK-ASM-AND-OBJ: rv.vzip2b.vv v1, v2, v3 |
| 32 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x52] |
| 33 | +rv.vzip2b.vv v1, v2, v3 |
| 34 | +# CHECK-ASM-AND-OBJ: rv.vzip2b.vv v1, v2, v3, v0.t |
| 35 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x50] |
| 36 | +rv.vzip2b.vv v1, v2, v3, v0.t |
| 37 | + |
| 38 | +# CHECK-ASM-AND-OBJ: rv.vunzip2a.vv v1, v2, v3 |
| 39 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x22] |
| 40 | +rv.vunzip2a.vv v1, v2, v3 |
| 41 | +# CHECK-ASM-AND-OBJ: rv.vunzip2a.vv v1, v2, v3, v0.t |
| 42 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x20] |
| 43 | +rv.vunzip2a.vv v1, v2, v3, v0.t |
| 44 | +# CHECK-ASM-AND-OBJ: rv.vunzip2b.vv v1, v2, v3 |
| 45 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x62] |
| 46 | +rv.vunzip2b.vv v1, v2, v3 |
| 47 | +# CHECK-ASM-AND-OBJ: rv.vunzip2b.vv v1, v2, v3, v0.t |
| 48 | +# CHECK-ASM: encoding: [0xdb,0x80,0x21,0x60] |
| 49 | +rv.vunzip2b.vv v1, v2, v3, v0.t |
| 50 | + |
| 51 | +# Overlap between source registers *is* allowed |
| 52 | + |
| 53 | +# CHECK-ASM-AND-OBJ: rv.vzipeven.vv v1, v2, v2 |
| 54 | +# CHECK-ASM: encoding: [0xdb,0x00,0x21,0x32] |
| 55 | +rv.vzipeven.vv v1, v2, v2 |
| 56 | + |
| 57 | +# CHECK-ASM-AND-OBJ: rv.vzipeven.vv v1, v2, v0, v0.t |
| 58 | +# CHECK-ASM: encoding: [0xdb,0x00,0x20,0x30] |
| 59 | +rv.vzipeven.vv v1, v2, v0, v0.t |
0 commit comments