1# RUN: llvm-mc -triple=riscv64 -show-encoding --mattr=+v %s \ 2# RUN: --mattr=+f \ 3# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 4# RUN: not llvm-mc -triple=riscv64 -show-encoding %s 2>&1 \ 5# RUN: | FileCheck %s --check-prefix=CHECK-ERROR 6# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v %s \ 7# RUN: --mattr=+f \ 8# RUN: | llvm-objdump -d --mattr=+v --mattr=+f - \ 9# RUN: | FileCheck %s --check-prefix=CHECK-INST 10# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v %s \ 11# RUN: --mattr=+f \ 12# RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN 13 14vfmacc.vv v8, v20, v4, v0.t 15# CHECK-INST: vfmacc.vv v8, v20, v4, v0.t 16# CHECK-ENCODING: [0x57,0x14,0x4a,0xb0] 17# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 18# CHECK-UNKNOWN: b04a1457 <unknown> 19 20vfmacc.vv v8, v20, v4 21# CHECK-INST: vfmacc.vv v8, v20, v4 22# CHECK-ENCODING: [0x57,0x14,0x4a,0xb2] 23# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 24# CHECK-UNKNOWN: b24a1457 <unknown> 25 26vfmacc.vf v8, fa0, v4, v0.t 27# CHECK-INST: vfmacc.vf v8, fa0, v4, v0.t 28# CHECK-ENCODING: [0x57,0x54,0x45,0xb0] 29# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 30# CHECK-UNKNOWN: b0455457 <unknown> 31 32vfmacc.vf v8, fa0, v4 33# CHECK-INST: vfmacc.vf v8, fa0, v4 34# CHECK-ENCODING: [0x57,0x54,0x45,0xb2] 35# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 36# CHECK-UNKNOWN: b2455457 <unknown> 37 38vfnmacc.vv v8, v20, v4, v0.t 39# CHECK-INST: vfnmacc.vv v8, v20, v4, v0.t 40# CHECK-ENCODING: [0x57,0x14,0x4a,0xb4] 41# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 42# CHECK-UNKNOWN: b44a1457 <unknown> 43 44vfnmacc.vv v8, v20, v4 45# CHECK-INST: vfnmacc.vv v8, v20, v4 46# CHECK-ENCODING: [0x57,0x14,0x4a,0xb6] 47# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 48# CHECK-UNKNOWN: b64a1457 <unknown> 49 50vfnmacc.vf v8, fa0, v4, v0.t 51# CHECK-INST: vfnmacc.vf v8, fa0, v4, v0.t 52# CHECK-ENCODING: [0x57,0x54,0x45,0xb4] 53# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 54# CHECK-UNKNOWN: b4455457 <unknown> 55 56vfnmacc.vf v8, fa0, v4 57# CHECK-INST: vfnmacc.vf v8, fa0, v4 58# CHECK-ENCODING: [0x57,0x54,0x45,0xb6] 59# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 60# CHECK-UNKNOWN: b6455457 <unknown> 61 62vfmsac.vv v8, v20, v4, v0.t 63# CHECK-INST: vfmsac.vv v8, v20, v4, v0.t 64# CHECK-ENCODING: [0x57,0x14,0x4a,0xb8] 65# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 66# CHECK-UNKNOWN: b84a1457 <unknown> 67 68vfmsac.vv v8, v20, v4 69# CHECK-INST: vfmsac.vv v8, v20, v4 70# CHECK-ENCODING: [0x57,0x14,0x4a,0xba] 71# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 72# CHECK-UNKNOWN: ba4a1457 <unknown> 73 74vfmsac.vf v8, fa0, v4, v0.t 75# CHECK-INST: vfmsac.vf v8, fa0, v4, v0.t 76# CHECK-ENCODING: [0x57,0x54,0x45,0xb8] 77# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 78# CHECK-UNKNOWN: b8455457 <unknown> 79 80vfmsac.vf v8, fa0, v4 81# CHECK-INST: vfmsac.vf v8, fa0, v4 82# CHECK-ENCODING: [0x57,0x54,0x45,0xba] 83# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 84# CHECK-UNKNOWN: ba455457 <unknown> 85 86vfnmsac.vv v8, v20, v4, v0.t 87# CHECK-INST: vfnmsac.vv v8, v20, v4, v0.t 88# CHECK-ENCODING: [0x57,0x14,0x4a,0xbc] 89# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 90# CHECK-UNKNOWN: bc4a1457 <unknown> 91 92vfnmsac.vv v8, v20, v4 93# CHECK-INST: vfnmsac.vv v8, v20, v4 94# CHECK-ENCODING: [0x57,0x14,0x4a,0xbe] 95# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 96# CHECK-UNKNOWN: be4a1457 <unknown> 97 98vfnmsac.vf v8, fa0, v4, v0.t 99# CHECK-INST: vfnmsac.vf v8, fa0, v4, v0.t 100# CHECK-ENCODING: [0x57,0x54,0x45,0xbc] 101# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 102# CHECK-UNKNOWN: bc455457 <unknown> 103 104vfnmsac.vf v8, fa0, v4 105# CHECK-INST: vfnmsac.vf v8, fa0, v4 106# CHECK-ENCODING: [0x57,0x54,0x45,0xbe] 107# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 108# CHECK-UNKNOWN: be455457 <unknown> 109 110vfmadd.vv v8, v20, v4, v0.t 111# CHECK-INST: vfmadd.vv v8, v20, v4, v0.t 112# CHECK-ENCODING: [0x57,0x14,0x4a,0xa0] 113# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 114# CHECK-UNKNOWN: a04a1457 <unknown> 115 116vfmadd.vv v8, v20, v4 117# CHECK-INST: vfmadd.vv v8, v20, v4 118# CHECK-ENCODING: [0x57,0x14,0x4a,0xa2] 119# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 120# CHECK-UNKNOWN: a24a1457 <unknown> 121 122vfmadd.vf v8, fa0, v4, v0.t 123# CHECK-INST: vfmadd.vf v8, fa0, v4, v0.t 124# CHECK-ENCODING: [0x57,0x54,0x45,0xa0] 125# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 126# CHECK-UNKNOWN: a0455457 <unknown> 127 128vfmadd.vf v8, fa0, v4 129# CHECK-INST: vfmadd.vf v8, fa0, v4 130# CHECK-ENCODING: [0x57,0x54,0x45,0xa2] 131# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 132# CHECK-UNKNOWN: a2455457 <unknown> 133 134vfnmadd.vv v8, v20, v4, v0.t 135# CHECK-INST: vfnmadd.vv v8, v20, v4, v0.t 136# CHECK-ENCODING: [0x57,0x14,0x4a,0xa4] 137# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 138# CHECK-UNKNOWN: a44a1457 <unknown> 139 140vfnmadd.vv v8, v20, v4 141# CHECK-INST: vfnmadd.vv v8, v20, v4 142# CHECK-ENCODING: [0x57,0x14,0x4a,0xa6] 143# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 144# CHECK-UNKNOWN: a64a1457 <unknown> 145 146vfnmadd.vf v8, fa0, v4, v0.t 147# CHECK-INST: vfnmadd.vf v8, fa0, v4, v0.t 148# CHECK-ENCODING: [0x57,0x54,0x45,0xa4] 149# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 150# CHECK-UNKNOWN: a4455457 <unknown> 151 152vfnmadd.vf v8, fa0, v4 153# CHECK-INST: vfnmadd.vf v8, fa0, v4 154# CHECK-ENCODING: [0x57,0x54,0x45,0xa6] 155# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 156# CHECK-UNKNOWN: a6455457 <unknown> 157 158vfmsub.vv v8, v20, v4, v0.t 159# CHECK-INST: vfmsub.vv v8, v20, v4, v0.t 160# CHECK-ENCODING: [0x57,0x14,0x4a,0xa8] 161# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 162# CHECK-UNKNOWN: a84a1457 <unknown> 163 164vfmsub.vv v8, v20, v4 165# CHECK-INST: vfmsub.vv v8, v20, v4 166# CHECK-ENCODING: [0x57,0x14,0x4a,0xaa] 167# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 168# CHECK-UNKNOWN: aa4a1457 <unknown> 169 170vfmsub.vf v8, fa0, v4, v0.t 171# CHECK-INST: vfmsub.vf v8, fa0, v4, v0.t 172# CHECK-ENCODING: [0x57,0x54,0x45,0xa8] 173# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 174# CHECK-UNKNOWN: a8455457 <unknown> 175 176vfmsub.vf v8, fa0, v4 177# CHECK-INST: vfmsub.vf v8, fa0, v4 178# CHECK-ENCODING: [0x57,0x54,0x45,0xaa] 179# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 180# CHECK-UNKNOWN: aa455457 <unknown> 181 182vfnmsub.vv v8, v20, v4, v0.t 183# CHECK-INST: vfnmsub.vv v8, v20, v4, v0.t 184# CHECK-ENCODING: [0x57,0x14,0x4a,0xac] 185# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 186# CHECK-UNKNOWN: ac4a1457 <unknown> 187 188vfnmsub.vv v8, v20, v4 189# CHECK-INST: vfnmsub.vv v8, v20, v4 190# CHECK-ENCODING: [0x57,0x14,0x4a,0xae] 191# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 192# CHECK-UNKNOWN: ae4a1457 <unknown> 193 194vfnmsub.vf v8, fa0, v4, v0.t 195# CHECK-INST: vfnmsub.vf v8, fa0, v4, v0.t 196# CHECK-ENCODING: [0x57,0x54,0x45,0xac] 197# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 198# CHECK-UNKNOWN: ac455457 <unknown> 199 200vfnmsub.vf v8, fa0, v4 201# CHECK-INST: vfnmsub.vf v8, fa0, v4 202# CHECK-ENCODING: [0x57,0x54,0x45,0xae] 203# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 204# CHECK-UNKNOWN: ae455457 <unknown> 205 206vfwmacc.vv v8, v20, v4, v0.t 207# CHECK-INST: vfwmacc.vv v8, v20, v4, v0.t 208# CHECK-ENCODING: [0x57,0x14,0x4a,0xf0] 209# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 210# CHECK-UNKNOWN: f04a1457 <unknown> 211 212vfwmacc.vv v8, v20, v4 213# CHECK-INST: vfwmacc.vv v8, v20, v4 214# CHECK-ENCODING: [0x57,0x14,0x4a,0xf2] 215# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 216# CHECK-UNKNOWN: f24a1457 <unknown> 217 218vfwmacc.vf v8, fa0, v4, v0.t 219# CHECK-INST: vfwmacc.vf v8, fa0, v4, v0.t 220# CHECK-ENCODING: [0x57,0x54,0x45,0xf0] 221# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 222# CHECK-UNKNOWN: f0455457 <unknown> 223 224vfwmacc.vf v8, fa0, v4 225# CHECK-INST: vfwmacc.vf v8, fa0, v4 226# CHECK-ENCODING: [0x57,0x54,0x45,0xf2] 227# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 228# CHECK-UNKNOWN: f2455457 <unknown> 229 230vfwnmacc.vv v8, v20, v4, v0.t 231# CHECK-INST: vfwnmacc.vv v8, v20, v4, v0.t 232# CHECK-ENCODING: [0x57,0x14,0x4a,0xf4] 233# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 234# CHECK-UNKNOWN: f44a1457 <unknown> 235 236vfwnmacc.vv v8, v20, v4 237# CHECK-INST: vfwnmacc.vv v8, v20, v4 238# CHECK-ENCODING: [0x57,0x14,0x4a,0xf6] 239# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 240# CHECK-UNKNOWN: f64a1457 <unknown> 241 242vfwnmacc.vf v8, fa0, v4, v0.t 243# CHECK-INST: vfwnmacc.vf v8, fa0, v4, v0.t 244# CHECK-ENCODING: [0x57,0x54,0x45,0xf4] 245# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 246# CHECK-UNKNOWN: f4455457 <unknown> 247 248vfwnmacc.vf v8, fa0, v4 249# CHECK-INST: vfwnmacc.vf v8, fa0, v4 250# CHECK-ENCODING: [0x57,0x54,0x45,0xf6] 251# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 252# CHECK-UNKNOWN: f6455457 <unknown> 253 254vfwmsac.vv v8, v20, v4, v0.t 255# CHECK-INST: vfwmsac.vv v8, v20, v4, v0.t 256# CHECK-ENCODING: [0x57,0x14,0x4a,0xf8] 257# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 258# CHECK-UNKNOWN: f84a1457 <unknown> 259 260vfwmsac.vv v8, v20, v4 261# CHECK-INST: vfwmsac.vv v8, v20, v4 262# CHECK-ENCODING: [0x57,0x14,0x4a,0xfa] 263# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 264# CHECK-UNKNOWN: fa4a1457 <unknown> 265 266vfwmsac.vf v8, fa0, v4, v0.t 267# CHECK-INST: vfwmsac.vf v8, fa0, v4, v0.t 268# CHECK-ENCODING: [0x57,0x54,0x45,0xf8] 269# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 270# CHECK-UNKNOWN: f8455457 <unknown> 271 272vfwmsac.vf v8, fa0, v4 273# CHECK-INST: vfwmsac.vf v8, fa0, v4 274# CHECK-ENCODING: [0x57,0x54,0x45,0xfa] 275# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 276# CHECK-UNKNOWN: fa455457 <unknown> 277 278vfwnmsac.vv v8, v20, v4, v0.t 279# CHECK-INST: vfwnmsac.vv v8, v20, v4, v0.t 280# CHECK-ENCODING: [0x57,0x14,0x4a,0xfc] 281# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 282# CHECK-UNKNOWN: fc4a1457 <unknown> 283 284vfwnmsac.vv v8, v20, v4 285# CHECK-INST: vfwnmsac.vv v8, v20, v4 286# CHECK-ENCODING: [0x57,0x14,0x4a,0xfe] 287# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 288# CHECK-UNKNOWN: fe4a1457 <unknown> 289 290vfwnmsac.vf v8, fa0, v4, v0.t 291# CHECK-INST: vfwnmsac.vf v8, fa0, v4, v0.t 292# CHECK-ENCODING: [0x57,0x54,0x45,0xfc] 293# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 294# CHECK-UNKNOWN: fc455457 <unknown> 295 296vfwnmsac.vf v8, fa0, v4 297# CHECK-INST: vfwnmsac.vf v8, fa0, v4 298# CHECK-ENCODING: [0x57,0x54,0x45,0xfe] 299# CHECK-ERROR: instruction requires the following: 'V'{{.*}}'Zve32f' (Vector Extensions for Embedded Processors){{$}} 300# CHECK-UNKNOWN: fe455457 <unknown> 301