1# RUN: llvm-mc -triple=riscv32 -show-encoding --mattr=+v,+xsfvcp %s \ 2# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 3# RUN: llvm-mc -triple=riscv64 -show-encoding --mattr=+v,+xsfvcp %s \ 4# RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST 5# RUN: not llvm-mc -triple=riscv32 -show-encoding %s 2>&1 \ 6# RUN: | FileCheck %s --check-prefix=CHECK-ERROR 7# RUN: not llvm-mc -triple=riscv64 -show-encoding %s 2>&1 \ 8# RUN: | FileCheck %s --check-prefix=CHECK-ERROR 9# RUN: llvm-mc -triple=riscv32 -filetype=obj --mattr=+v,+xsfvcp %s \ 10# RUN: | llvm-objdump -d --mattr=+v,+xsfvcp --no-print-imm-hex - \ 11# RUN: | FileCheck %s --check-prefix=CHECK-INST 12# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v,+xsfvcp %s \ 13# RUN: | llvm-objdump -d --mattr=+v,+xsfvcp --no-print-imm-hex - \ 14# RUN: | FileCheck %s --check-prefix=CHECK-INST 15# RUN: llvm-mc -triple=riscv32 -filetype=obj --mattr=+v,+xsfvcp %s \ 16# RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN 17# RUN: llvm-mc -triple=riscv64 -filetype=obj --mattr=+v,+xsfvcp %s \ 18# RUN: | llvm-objdump -d - | FileCheck %s --check-prefix=CHECK-UNKNOWN 19 20sf.vc.x 0x3, 0xf, 0x1f, a1 21# CHECK-INST: sf.vc.x 3, 15, 31, a1 22# CHECK-ENCODING: [0xdb,0xcf,0xf5,0x0e] 23# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 24# CHECK-UNKNOWN: 0ef5cfdb <unknown> 25 26sf.vc.i 0x3, 0xf, 0x1f, 15 27# CHECK-INST: sf.vc.i 3, 15, 31, 15 28# CHECK-ENCODING: [0xdb,0xbf,0xf7,0x0e] 29# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 30# CHECK-UNKNOWN: 0ef7bfdb <unknown> 31 32sf.vc.vv 0x3, 0x1f, v2, v1 33# CHECK-INST: sf.vc.vv 3, 31, v2, v1 34# CHECK-ENCODING: [0xdb,0x8f,0x20,0x2e] 35# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 36# CHECK-UNKNOWN: 2e208fdb <unknown> 37 38sf.vc.xv 0x3, 0x1f, v2, a1 39# CHECK-INST: sf.vc.xv 3, 31, v2, a1 40# CHECK-ENCODING: [0xdb,0xcf,0x25,0x2e] 41# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 42# CHECK-UNKNOWN: 2e25cfdb <unknown> 43 44sf.vc.iv 0x3, 0x1f, v2, 15 45# CHECK-INST: sf.vc.iv 3, 31, v2, 15 46# CHECK-ENCODING: [0xdb,0xbf,0x27,0x2e] 47# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 48# CHECK-UNKNOWN: 2e27bfdb <unknown> 49 50sf.vc.fv 0x1, 0x1f, v2, fa1 51# CHECK-INST: sf.vc.fv 1, 31, v2, fa1 52# CHECK-ENCODING: [0xdb,0xdf,0x25,0x2e] 53# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 54# CHECK-UNKNOWN: 2e25dfdb <unknown> 55 56sf.vc.vvv 0x3, v0, v2, v1 57# CHECK-INST: sf.vc.vvv 3, v0, v2, v1 58# CHECK-ENCODING: [0x5b,0x80,0x20,0xae] 59# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 60# CHECK-UNKNOWN: ae20805b <unknown> 61 62sf.vc.xvv 0x3, v0, v2, a1 63# CHECK-INST: sf.vc.xvv 3, v0, v2, a1 64# CHECK-ENCODING: [0x5b,0xc0,0x25,0xae] 65# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 66# CHECK-UNKNOWN: ae25c05b <unknown> 67 68sf.vc.ivv 0x3, v0, v2, 15 69# CHECK-INST: sf.vc.ivv 3, v0, v2, 15 70# CHECK-ENCODING: [0x5b,0xb0,0x27,0xae] 71# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 72# CHECK-UNKNOWN: ae27b05b <unknown> 73 74sf.vc.fvv 0x1, v0, v2, fa1 75# CHECK-INST: sf.vc.fvv 1, v0, v2, fa1 76# CHECK-ENCODING: [0x5b,0xd0,0x25,0xae] 77# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 78# CHECK-UNKNOWN: ae25d05b <unknown> 79 80sf.vc.vvw 0x3, v0, v2, v1 81# CHECK-INST: sf.vc.vvw 3, v0, v2, v1 82# CHECK-ENCODING: [0x5b,0x80,0x20,0xfe] 83# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 84# CHECK-UNKNOWN: fe20805b <unknown> 85 86sf.vc.xvw 0x3, v0, v2, a1 87# CHECK-INST: sf.vc.xvw 3, v0, v2, a1 88# CHECK-ENCODING: [0x5b,0xc0,0x25,0xfe] 89# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 90# CHECK-UNKNOWN: fe25c05b <unknown> 91 92sf.vc.ivw 0x3, v0, v2, 15 93# CHECK-INST: sf.vc.ivw 3, v0, v2, 15 94# CHECK-ENCODING: [0x5b,0xb0,0x27,0xfe] 95# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 96# CHECK-UNKNOWN: fe27b05b <unknown> 97 98sf.vc.fvw 0x1, v0, v2, fa1 99# CHECK-INST: sf.vc.fvw 1, v0, v2, fa1 100# CHECK-ENCODING: [0x5b,0xd0,0x25,0xfe] 101# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 102# CHECK-UNKNOWN: fe25d05b <unknown> 103 104sf.vc.v.x 0x3, 0xf, v0, a1 105# CHECK-INST: sf.vc.v.x 3, 15, v0, a1 106# CHECK-ENCODING: [0x5b,0xc0,0xf5,0x0c] 107# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 108# CHECK-UNKNOWN: 0cf5c05b <unknown> 109 110sf.vc.v.i 0x3, 0xf, v0, 15 111# CHECK-INST: sf.vc.v.i 3, 15, v0, 15 112# CHECK-ENCODING: [0x5b,0xb0,0xf7,0x0c] 113# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 114# CHECK-UNKNOWN: 0cf7b05b <unknown> 115 116sf.vc.v.vv 0x3, v0, v2, v1 117# CHECK-INST: sf.vc.v.vv 3, v0, v2, v1 118# CHECK-ENCODING: [0x5b,0x80,0x20,0x2c] 119# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 120# CHECK-UNKNOWN: 2c20805b <unknown> 121 122sf.vc.v.xv 0x3, v0, v2, a1 123# CHECK-INST: sf.vc.v.xv 3, v0, v2, a1 124# CHECK-ENCODING: [0x5b,0xc0,0x25,0x2c] 125# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 126# CHECK-UNKNOWN: 2c25c05b <unknown> 127 128sf.vc.v.iv 0x3, v0, v2, 15 129# CHECK-INST: sf.vc.v.iv 3, v0, v2, 15 130# CHECK-ENCODING: [0x5b,0xb0,0x27,0x2c] 131# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 132# CHECK-UNKNOWN: 2c27b05b <unknown> 133 134sf.vc.v.fv 0x1, v0, v2, fa1 135# CHECK-INST: sf.vc.v.fv 1, v0, v2, fa1 136# CHECK-ENCODING: [0x5b,0xd0,0x25,0x2c] 137# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 138# CHECK-UNKNOWN: 2c25d05b <unknown> 139 140sf.vc.v.vvv 0x3, v0, v2, v1 141# CHECK-INST: sf.vc.v.vvv 3, v0, v2, v1 142# CHECK-ENCODING: [0x5b,0x80,0x20,0xac] 143# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 144# CHECK-UNKNOWN: ac20805b <unknown> 145 146sf.vc.v.xvv 0x3, v0, v2, a1 147# CHECK-INST: sf.vc.v.xvv 3, v0, v2, a1 148# CHECK-ENCODING: [0x5b,0xc0,0x25,0xac] 149# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 150# CHECK-UNKNOWN: ac25c05b <unknown> 151 152sf.vc.v.ivv 0x3, v0, v2, 15 153# CHECK-INST: sf.vc.v.ivv 3, v0, v2, 15 154# CHECK-ENCODING: [0x5b,0xb0,0x27,0xac] 155# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 156# CHECK-UNKNOWN: ac27b05b <unknown> 157 158sf.vc.v.fvv 0x1, v0, v2, fa1 159# CHECK-INST: sf.vc.v.fvv 1, v0, v2, fa1 160# CHECK-ENCODING: [0x5b,0xd0,0x25,0xac] 161# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 162# CHECK-UNKNOWN: ac25d05b <unknown> 163 164sf.vc.v.vvw 0x3, v0, v2, v1 165# CHECK-INST: sf.vc.v.vvw 3, v0, v2, v1 166# CHECK-ENCODING: [0x5b,0x80,0x20,0xfc] 167# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 168# CHECK-UNKNOWN: fc20805b <unknown> 169 170sf.vc.v.xvw 0x3, v0, v2, a1 171# CHECK-INST: sf.vc.v.xvw 3, v0, v2, a1 172# CHECK-ENCODING: [0x5b,0xc0,0x25,0xfc] 173# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 174# CHECK-UNKNOWN: fc25c05b <unknown> 175 176sf.vc.v.ivw 0x3, v0, v2, 15 177# CHECK-INST: sf.vc.v.ivw 3, v0, v2, 15 178# CHECK-ENCODING: [0x5b,0xb0,0x27,0xfc] 179# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 180# CHECK-UNKNOWN: fc27b05b <unknown> 181 182sf.vc.v.fvw 0x1, v0, v2, fa1 183# CHECK-INST: sf.vc.v.fvw 1, v0, v2, fa1 184# CHECK-ENCODING: [0x5b,0xd0,0x25,0xfc] 185# CHECK-ERROR: instruction requires the following: 'XSfvcp' (SiFive Custom Vector Coprocessor Interface Instructions){{$}} 186# CHECK-UNKNOWN: fc25d05b <unknown> 187