Launching on RISCV machine llvm-exegesis to measure latency, I faced with troubles like: 'Operand is not set: ... <MCOperand INVALID>>; ... OpInfo.OperandType: 0'
(explanation: OperandType 0 means Unknown type).
Find out that this problem occurs with instructions:
C_ADDI
C_ADDIW
C_ADDI_HINT_IMM_ZERO
C_ANDI
C_FLD
C_FLW
C_LD
C_LW
C_SLLI
C_SRAI
C_SRLI
SHFLI
UNSHFLI
VADC_VIM
VADD_VI
VAND_VI
VMADC_VI
VMADC_VIM
VMERGE_VIM
VMSEQ_VI
VMSGTU_VI
VMSGT_VI
VMSLEU_VI
VMSLE_VI
VMSNE_VI
VOR_VI
VRSUB_VI
VSADDU_VI
VSADD_VI
VSETVLI
VXOR_VI
llvm-exegesis uses operand type information provided in tablegen files to initialize immediate arguments of the instruction. Some of them (listed above) simply don't have such information. Thus we should set into relevant immediate operands their specific type. Also create verification methods for them.
Stray blank line?