1# RUN: llvm-mc -triple=riscv64 -show-encoding --mattr=+v %s \ 2# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 3# RUN: not llvm-mc -triple=riscv64 -show-encoding %s 2>&1 \ 4# RUN: | FileCheck %s --check-prefix=CHECK-ERROR 5# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v %s \ 6# RUN: | llvm-objdump -d --mattr=+v - \ 7# RUN: | FileCheck %s --check-prefix=CHECK-INST 8# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v %s \ 9# RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN 10 11vmand.mm v8, v4, v20 12# CHECK-INST: vmand.mm v8, v4, v20 13# CHECK-ENCODING: [0x57,0x24,0x4a,0x66] 14# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 15# CHECK-UNKNOWN: 664a2457 <unknown> 16 17vmnand.mm v8, v4, v20 18# CHECK-INST: vmnand.mm v8, v4, v20 19# CHECK-ENCODING: [0x57,0x24,0x4a,0x76] 20# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 21# CHECK-UNKNOWN: 764a2457 <unknown> 22 23vmandn.mm v8, v4, v20 24# CHECK-INST: vmandn.mm v8, v4, v20 25# CHECK-ENCODING: [0x57,0x24,0x4a,0x62] 26# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 27# CHECK-UNKNOWN: 624a2457 <unknown> 28 29vmxor.mm v8, v4, v20 30# CHECK-INST: vmxor.mm v8, v4, v20 31# CHECK-ENCODING: [0x57,0x24,0x4a,0x6e] 32# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 33# CHECK-UNKNOWN: 6e4a2457 <unknown> 34 35vmor.mm v8, v4, v20 36# CHECK-INST: vmor.mm v8, v4, v20 37# CHECK-ENCODING: [0x57,0x24,0x4a,0x6a] 38# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 39# CHECK-UNKNOWN: 6a4a2457 <unknown> 40 41vmnor.mm v8, v4, v20 42# CHECK-INST: vmnor.mm v8, v4, v20 43# CHECK-ENCODING: [0x57,0x24,0x4a,0x7a] 44# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 45# CHECK-UNKNOWN: 7a4a2457 <unknown> 46 47vmorn.mm v8, v4, v20 48# CHECK-INST: vmorn.mm v8, v4, v20 49# CHECK-ENCODING: [0x57,0x24,0x4a,0x72] 50# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 51# CHECK-UNKNOWN: 724a2457 <unknown> 52 53vmxnor.mm v8, v4, v20 54# CHECK-INST: vmxnor.mm v8, v4, v20 55# CHECK-ENCODING: [0x57,0x24,0x4a,0x7e] 56# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 57# CHECK-UNKNOWN: 7e4a2457 <unknown> 58 59vcpop.m a2, v4, v0.t 60# CHECK-INST: vcpop.m a2, v4, v0.t 61# CHECK-ENCODING: [0x57,0x26,0x48,0x40] 62# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 63# CHECK-UNKNOWN: 40482657 <unknown> 64 65vcpop.m a2, v4 66# CHECK-INST: vcpop.m a2, v4 67# CHECK-ENCODING: [0x57,0x26,0x48,0x42] 68# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 69# CHECK-UNKNOWN: 42482657 <unknown> 70 71vfirst.m a2, v4, v0.t 72# CHECK-INST: vfirst.m a2, v4, v0.t 73# CHECK-ENCODING: [0x57,0xa6,0x48,0x40] 74# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 75# CHECK-UNKNOWN: 4048a657 <unknown> 76 77vfirst.m a2, v4 78# CHECK-INST: vfirst.m a2, v4 79# CHECK-ENCODING: [0x57,0xa6,0x48,0x42] 80# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 81# CHECK-UNKNOWN: 4248a657 <unknown> 82 83vmsbf.m v8, v4, v0.t 84# CHECK-INST: vmsbf.m v8, v4, v0.t 85# CHECK-ENCODING: [0x57,0xa4,0x40,0x50] 86# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 87# CHECK-UNKNOWN: 5040a457 <unknown> 88 89vmsbf.m v8, v4 90# CHECK-INST: vmsbf.m v8, v4 91# CHECK-ENCODING: [0x57,0xa4,0x40,0x52] 92# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 93# CHECK-UNKNOWN: 5240a457 <unknown> 94 95vmsif.m v8, v4, v0.t 96# CHECK-INST: vmsif.m v8, v4, v0.t 97# CHECK-ENCODING: [0x57,0xa4,0x41,0x50] 98# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 99# CHECK-UNKNOWN: 5041a457 <unknown> 100 101vmsif.m v8, v4 102# CHECK-INST: vmsif.m v8, v4 103# CHECK-ENCODING: [0x57,0xa4,0x41,0x52] 104# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 105# CHECK-UNKNOWN: 5241a457 <unknown> 106 107vmsof.m v8, v4, v0.t 108# CHECK-INST: vmsof.m v8, v4, v0.t 109# CHECK-ENCODING: [0x57,0x24,0x41,0x50] 110# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 111# CHECK-UNKNOWN: 50412457 <unknown> 112 113vmsof.m v8, v4 114# CHECK-INST: vmsof.m v8, v4 115# CHECK-ENCODING: [0x57,0x24,0x41,0x52] 116# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 117# CHECK-UNKNOWN: 52412457 <unknown> 118 119viota.m v8, v4, v0.t 120# CHECK-INST: viota.m v8, v4, v0.t 121# CHECK-ENCODING: [0x57,0x24,0x48,0x50] 122# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 123# CHECK-UNKNOWN: 50482457 <unknown> 124 125viota.m v8, v4 126# CHECK-INST: viota.m v8, v4 127# CHECK-ENCODING: [0x57,0x24,0x48,0x52] 128# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 129# CHECK-UNKNOWN: 52482457 <unknown> 130 131vid.v v8, v0.t 132# CHECK-INST: vid.v v8, v0.t 133# CHECK-ENCODING: [0x57,0xa4,0x08,0x50] 134# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 135# CHECK-UNKNOWN: 5008a457 <unknown> 136 137vid.v v8 138# CHECK-INST: vid.v v8 139# CHECK-ENCODING: [0x57,0xa4,0x08,0x52] 140# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 141# CHECK-UNKNOWN: 5208a457 <unknown> 142 143vmmv.m v8, v4 144# CHECK-INST: vmmv.m v8, v4 145# CHECK-ENCODING: [0x57,0x24,0x42,0x66] 146# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 147# CHECK-UNKNOWN: 66422457 <unknown> 148 149vmclr.m v8 150# CHECK-INST: vmclr.m v8 151# CHECK-ENCODING: [0x57,0x24,0x84,0x6e] 152# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 153# CHECK-UNKNOWN: 6e842457 <unknown> 154 155vmset.m v8 156# CHECK-INST: vmset.m v8 157# CHECK-ENCODING: [0x57,0x24,0x84,0x7e] 158# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 159# CHECK-UNKNOWN: 7e842457 <unknown> 160 161vmnot.m v8, v4 162# CHECK-INST: vmnot.m v8, v4 163# CHECK-ENCODING: [0x57,0x24,0x42,0x76] 164# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 165# CHECK-UNKNOWN: 76422457 <unknown> 166