1# RUN: llvm-mc -triple=riscv32 -show-encoding -mattr=+zvfbfwma %s \ 2# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 3# RUN: not llvm-mc -triple=riscv32 -show-encoding -mattr=+v,+f %s 2>&1 \ 4# RUN: | FileCheck %s --check-prefix=CHECK-ERROR 5# RUN: llvm-mc -triple=riscv32 -filetype=obj -mattr=+zvfbfwma %s \ 6# RUN: | llvm-objdump -d --mattr=+zvfbfwma --no-print-imm-hex - \ 7# RUN: | FileCheck %s --check-prefix=CHECK-INST 8# RUN: llvm-mc -triple=riscv32 -filetype=obj -mattr=+zvfbfwma %s \ 9# RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN 10# RUN: llvm-mc -triple=riscv64 -show-encoding -mattr=+zvfbfwma %s \ 11# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 12# RUN: not llvm-mc -triple=riscv64 -show-encoding -mattr=+v,+f %s 2>&1 \ 13# RUN: | FileCheck %s --check-prefix=CHECK-ERROR 14# RUN: llvm-mc -triple=riscv64 -filetype=obj -mattr=+zvfbfwma %s \ 15# RUN: | llvm-objdump -d --mattr=+zvfbfwma --no-print-imm-hex - \ 16# RUN: | FileCheck %s --check-prefix=CHECK-INST 17# RUN: llvm-mc -triple=riscv64 -filetype=obj -mattr=+zvfbfwma %s \ 18# RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN 19 20# CHECK-INST: vfwmaccbf16.vv v8, v20, v4, v0.t 21# CHECK-ENCODING: [0x57,0x14,0x4a,0xec] 22# CHECK-ERROR: instruction requires the following: 'Zvfbfwma' (Vector BF16 widening mul-add){{$}} 23# CHECK-UNKNOWN: ec4a1457 <unknown> 24vfwmaccbf16.vv v8, v20, v4, v0.t 25 26# CHECK-INST: vfwmaccbf16.vv v8, v20, v4 27# CHECK-ENCODING: [0x57,0x14,0x4a,0xee] 28# CHECK-ERROR: instruction requires the following: 'Zvfbfwma' (Vector BF16 widening mul-add){{$}} 29# CHECK-UNKNOWN: ee4a1457 <unknown> 30vfwmaccbf16.vv v8, v20, v4 31 32# CHECK-INST: vfwmaccbf16.vf v8, fa0, v4, v0.t 33# CHECK-ENCODING: [0x57,0x54,0x45,0xec] 34# CHECK-ERROR: instruction requires the following: 'Zvfbfwma' (Vector BF16 widening mul-add){{$}} 35# CHECK-UNKNOWN: ec455457 <unknown> 36vfwmaccbf16.vf v8, fa0, v4, v0.t 37 38# CHECK-INST: vfwmaccbf16.vf v8, fa0, v4 39# CHECK-ENCODING: [0x57,0x54,0x45,0xee] 40# CHECK-ERROR: instruction requires the following: 'Zvfbfwma' (Vector BF16 widening mul-add){{$}} 41# CHECK-UNKNOWN: ee455457 <unknown> 42vfwmaccbf16.vf v8, fa0, v4 43 44# Check scalar half FP load/store/move included in this extension. 45 46# CHECK-INST: flh ft0, 12(a0) 47# CHECK-ENCODING: [0x07,0x10,0xc5,0x00] 48# CHECK-ERROR: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal) or 'Zfbfmin' (Scalar BF16 Converts){{$}} 49# CHECK-UNKNOWN: 00c51007 <unknown> 50flh f0, 12(a0) 51 52# CHECK-INST: fsh ft6, 2047(s4) 53# CHECK-ENCODING: [0xa7,0x1f,0x6a,0x7e] 54# CHECK-ERROR: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal) or 'Zfbfmin' (Scalar BF16 Converts){{$}} 55# CHECK-UNKNOWN: 7e6a1fa7 <unknown> 56fsh f6, 2047(s4) 57 58# CHECK-INST: fmv.x.h a2, fs7 59# CHECK-ENCODING: [0x53,0x86,0x0b,0xe4] 60# CHECK-ERROR: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal) or 'Zfbfmin' (Scalar BF16 Converts){{$}} 61# CHECK-UNKNOWN: e40b8653 <unknown> 62fmv.x.h a2, fs7 63 64# CHECK-INST: fmv.h.x ft1, a6 65# CHECK-ENCODING: [0xd3,0x00,0x08,0xf4] 66# CHECK-ERROR: instruction requires the following: 'Zfh' (Half-Precision Floating-Point) or 'Zfhmin' (Half-Precision Floating-Point Minimal) or 'Zfbfmin' (Scalar BF16 Converts){{$}} 67# CHECK-UNKNOWN: f40800d3 <unknown> 68fmv.h.x ft1, a6 69