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 11vmul.vv v8, v4, v20, v0.t 12# CHECK-INST: vmul.vv v8, v4, v20, v0.t 13# CHECK-ENCODING: [0x57,0x24,0x4a,0x94] 14# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 15# CHECK-UNKNOWN: 944a2457 <unknown> 16 17vmul.vv v8, v4, v20 18# CHECK-INST: vmul.vv v8, v4, v20 19# CHECK-ENCODING: [0x57,0x24,0x4a,0x96] 20# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 21# CHECK-UNKNOWN: 964a2457 <unknown> 22 23vmul.vx v8, v4, a0, v0.t 24# CHECK-INST: vmul.vx v8, v4, a0, v0.t 25# CHECK-ENCODING: [0x57,0x64,0x45,0x94] 26# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 27# CHECK-UNKNOWN: 94456457 <unknown> 28 29vmul.vx v8, v4, a0 30# CHECK-INST: vmul.vx v8, v4, a0 31# CHECK-ENCODING: [0x57,0x64,0x45,0x96] 32# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 33# CHECK-UNKNOWN: 96456457 <unknown> 34 35vmulh.vv v8, v4, v20, v0.t 36# CHECK-INST: vmulh.vv v8, v4, v20, v0.t 37# CHECK-ENCODING: [0x57,0x24,0x4a,0x9c] 38# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 39# CHECK-UNKNOWN: 9c4a2457 <unknown> 40 41vmulh.vv v8, v4, v20 42# CHECK-INST: vmulh.vv v8, v4, v20 43# CHECK-ENCODING: [0x57,0x24,0x4a,0x9e] 44# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 45# CHECK-UNKNOWN: 9e4a2457 <unknown> 46 47vmulh.vx v8, v4, a0, v0.t 48# CHECK-INST: vmulh.vx v8, v4, a0, v0.t 49# CHECK-ENCODING: [0x57,0x64,0x45,0x9c] 50# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 51# CHECK-UNKNOWN: 9c456457 <unknown> 52 53vmulh.vx v8, v4, a0 54# CHECK-INST: vmulh.vx v8, v4, a0 55# CHECK-ENCODING: [0x57,0x64,0x45,0x9e] 56# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 57# CHECK-UNKNOWN: 9e456457 <unknown> 58 59vmulhu.vv v8, v4, v20, v0.t 60# CHECK-INST: vmulhu.vv v8, v4, v20, v0.t 61# CHECK-ENCODING: [0x57,0x24,0x4a,0x90] 62# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 63# CHECK-UNKNOWN: 904a2457 <unknown> 64 65vmulhu.vv v8, v4, v20 66# CHECK-INST: vmulhu.vv v8, v4, v20 67# CHECK-ENCODING: [0x57,0x24,0x4a,0x92] 68# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 69# CHECK-UNKNOWN: 924a2457 <unknown> 70 71vmulhu.vx v8, v4, a0, v0.t 72# CHECK-INST: vmulhu.vx v8, v4, a0, v0.t 73# CHECK-ENCODING: [0x57,0x64,0x45,0x90] 74# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 75# CHECK-UNKNOWN: 90456457 <unknown> 76 77vmulhu.vx v8, v4, a0 78# CHECK-INST: vmulhu.vx v8, v4, a0 79# CHECK-ENCODING: [0x57,0x64,0x45,0x92] 80# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 81# CHECK-UNKNOWN: 92456457 <unknown> 82 83vmulhsu.vv v8, v4, v20, v0.t 84# CHECK-INST: vmulhsu.vv v8, v4, v20, v0.t 85# CHECK-ENCODING: [0x57,0x24,0x4a,0x98] 86# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 87# CHECK-UNKNOWN: 984a2457 <unknown> 88 89vmulhsu.vv v8, v4, v20 90# CHECK-INST: vmulhsu.vv v8, v4, v20 91# CHECK-ENCODING: [0x57,0x24,0x4a,0x9a] 92# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 93# CHECK-UNKNOWN: 9a4a2457 <unknown> 94 95vmulhsu.vx v8, v4, a0, v0.t 96# CHECK-INST: vmulhsu.vx v8, v4, a0, v0.t 97# CHECK-ENCODING: [0x57,0x64,0x45,0x98] 98# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 99# CHECK-UNKNOWN: 98456457 <unknown> 100 101vmulhsu.vx v8, v4, a0 102# CHECK-INST: vmulhsu.vx v8, v4, a0 103# CHECK-ENCODING: [0x57,0x64,0x45,0x9a] 104# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 105# CHECK-UNKNOWN: 9a456457 <unknown> 106 107vwmul.vv v8, v4, v20, v0.t 108# CHECK-INST: vwmul.vv v8, v4, v20, v0.t 109# CHECK-ENCODING: [0x57,0x24,0x4a,0xec] 110# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 111# CHECK-UNKNOWN: ec4a2457 <unknown> 112 113vwmul.vv v8, v4, v20 114# CHECK-INST: vwmul.vv v8, v4, v20 115# CHECK-ENCODING: [0x57,0x24,0x4a,0xee] 116# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 117# CHECK-UNKNOWN: ee4a2457 <unknown> 118 119vwmul.vx v8, v4, a0, v0.t 120# CHECK-INST: vwmul.vx v8, v4, a0, v0.t 121# CHECK-ENCODING: [0x57,0x64,0x45,0xec] 122# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 123# CHECK-UNKNOWN: ec456457 <unknown> 124 125vwmul.vx v8, v4, a0 126# CHECK-INST: vwmul.vx v8, v4, a0 127# CHECK-ENCODING: [0x57,0x64,0x45,0xee] 128# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 129# CHECK-UNKNOWN: ee456457 <unknown> 130 131vwmulu.vv v8, v4, v20, v0.t 132# CHECK-INST: vwmulu.vv v8, v4, v20, v0.t 133# CHECK-ENCODING: [0x57,0x24,0x4a,0xe0] 134# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 135# CHECK-UNKNOWN: e04a2457 <unknown> 136 137vwmulu.vv v8, v4, v20 138# CHECK-INST: vwmulu.vv v8, v4, v20 139# CHECK-ENCODING: [0x57,0x24,0x4a,0xe2] 140# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 141# CHECK-UNKNOWN: e24a2457 <unknown> 142 143vwmulu.vx v8, v4, a0, v0.t 144# CHECK-INST: vwmulu.vx v8, v4, a0, v0.t 145# CHECK-ENCODING: [0x57,0x64,0x45,0xe0] 146# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 147# CHECK-UNKNOWN: e0456457 <unknown> 148 149vwmulu.vx v8, v4, a0 150# CHECK-INST: vwmulu.vx v8, v4, a0 151# CHECK-ENCODING: [0x57,0x64,0x45,0xe2] 152# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 153# CHECK-UNKNOWN: e2456457 <unknown> 154 155vwmulsu.vv v8, v4, v20, v0.t 156# CHECK-INST: vwmulsu.vv v8, v4, v20, v0.t 157# CHECK-ENCODING: [0x57,0x24,0x4a,0xe8] 158# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 159# CHECK-UNKNOWN: e84a2457 <unknown> 160 161vwmulsu.vv v8, v4, v20 162# CHECK-INST: vwmulsu.vv v8, v4, v20 163# CHECK-ENCODING: [0x57,0x24,0x4a,0xea] 164# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 165# CHECK-UNKNOWN: ea4a2457 <unknown> 166 167vwmulsu.vx v8, v4, a0, v0.t 168# CHECK-INST: vwmulsu.vx v8, v4, a0, v0.t 169# CHECK-ENCODING: [0x57,0x64,0x45,0xe8] 170# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 171# CHECK-UNKNOWN: e8456457 <unknown> 172 173vwmulsu.vx v8, v4, a0 174# CHECK-INST: vwmulsu.vx v8, v4, a0 175# CHECK-ENCODING: [0x57,0x64,0x45,0xea] 176# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 177# CHECK-UNKNOWN: ea456457 <unknown> 178 179vsmul.vv v8, v4, v20, v0.t 180# CHECK-INST: vsmul.vv v8, v4, v20, v0.t 181# CHECK-ENCODING: [0x57,0x04,0x4a,0x9c] 182# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 183# CHECK-UNKNOWN: 9c4a0457 <unknown> 184 185vsmul.vv v8, v4, v20 186# CHECK-INST: vsmul.vv v8, v4, v20 187# CHECK-ENCODING: [0x57,0x04,0x4a,0x9e] 188# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 189# CHECK-UNKNOWN: 9e4a0457 <unknown> 190 191vsmul.vx v8, v4, a0, v0.t 192# CHECK-INST: vsmul.vx v8, v4, a0, v0.t 193# CHECK-ENCODING: [0x57,0x44,0x45,0x9c] 194# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 195# CHECK-UNKNOWN: 9c454457 <unknown> 196 197vsmul.vx v8, v4, a0 198# CHECK-INST: vsmul.vx v8, v4, a0 199# CHECK-ENCODING: [0x57,0x44,0x45,0x9e] 200# CHECK-ERROR: instruction requires the following: 'V' (Vector Extension for Application Processors), 'Zve32x' (Vector Extensions for Embedded Processors){{$}} 201# CHECK-UNKNOWN: 9e454457 <unknown> 202