MLIR

Multi-Level IR Compiler Framework

'vcix' Dialect

The SiFive Vector Coprocessor Interface (VCIX) provides a flexible mechanism to extend application processors with custom coprocessors and variable-latency arithmetic units. The interface offers throughput comparable to that of standard RISC-V vector instructions. To accelerate performance, system designers may use VCIX as a low-latency, high-throughput interface to a coprocessor

https://www.sifive.com/document-file/sifive-vector-coprocessor-interface-vcix-software

Operations 

source

vcix.v.iv (vcix::BinaryImmOp) 

Binary VCIX operation with an immediate second operand

Binary VCIX operation with an immediate second operand.

Correponds to:

Mnemonicfunct6vmrs2rs1funct3rdDestinationSources
sf.vc.v.iv0010–0vs2simm011vdvector vdsimm[4:0] vector vs2

Attributes: 

AttributeMLIR TypeDescription
opcode::mlir::Attribute32-bit signless integer attribute or 64-bit signless integer attribute
imm::mlir::Attribute32-bit signless integer attribute or 64-bit signless integer attribute

Operands: 

OperandDescription
vs2LLVM dialect-compatible vector type
vl64-bit signless integer or 32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible vector type

vcix.v.sv (vcix::BinaryOp) 

Binary VCIX operation

Binary VCIX operation with an integer scalar, or floating pointer scalar or vector second operand.

Correponds to:

Mnemonicfunct6vmrs2rs1funct3rdDestinationSources
sf.vc.v.vv0010–0vs2vs1000vdvector vdvector vs1, vector vs
sf.vc.v.xv0010–0vs2xs1100vdvector vdscalar xs1, vector vs2
sf.vc.v.fv0010–0vs2fs1101vdvector vdscalar fs1, vector vs2

Attributes: 

AttributeMLIR TypeDescription
opcode::mlir::Attribute32-bit signless integer attribute or 64-bit signless integer attribute

Operands: 

OperandDescription
vs2LLVM dialect-compatible vector type
opLLVM dialect-compatible vector type or 64-bit signless integer or 32-bit signless integer or 16-bit float or 32-bit float or 64-bit float
vl64-bit signless integer or 32-bit signless integer

Results: 

ResultDescription
resLLVM dialect-compatible vector type