This document contains code and documentation related to RISC-V target machine configuration in LLVM. It discusses RISC-V architecture types (32-bit and 64-bit), feature strings, code generation options and relocation models for RISC-V. Code snippets show the RISC-VTargetMachine constructor and Triple class for specifying RISC-V configuration.
5. 1 2 3
• B
• F B IS VDMA
• E F B
• 13 4 : 8 : 6 : 2
• 13 , 4 : 8 : 6 : 2
• 13 4 : 8 : 6 : 2
• 13 4 : 8 : 6 : 2
• QR C B
• -
5
6. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
6https://github.com/lowRISC/riscv-llvm
7. 3 M CL M
• 0 1 0 - . 1
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
7https://github.com/lowRISC/riscv-llvm
8. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• - 3.206- 06 2 06 02 04 - 4 602 4
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
8https://github.com/lowRISC/riscv-llvm
9. 6GA 4 E DAIAED
• //80 6GA
• 4 -.6 674 8 1 4 4 6.1 6 0
• L C EHL
• AD C 6 6GA
9
class Triple {
public:
enum ArchType {
...,
riscv32, // RISC-V (32-bit): riscv32
riscv64, // RISC-V (64-bit): riscv64
...,
};
...
10. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• -- -. . 3 0
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
10https://github.com/lowRISC/riscv-llvm
12. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• . 0 -
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
12https://github.com/lowRISC/riscv-llvm
14. F 2 C - 1 MDI
• B) E) ) ) C 4 ( DF F
• ) A A C: C
• B) ) .1 B C A C ) 3F MB8DA 1 EF L
• E) ) ) 8 ED C F 8 A CB C
• ) ) A CB C D 8
• C ) D C C F : DF F
36 C 8
• 4 ( ) C IF A A CB C D ( 8 14
static std::string computeDataLayout(const Triple &TT) {
if (TT.isArch64Bit()) {
return "e-m:e-p:64:64-i64:64-i128:128-n64-S128";
} else {
assert(TT.isArch32Bit() && "only RV32 and RV64 are currently supported");
return "e-m:e-p:32:32-i64:64-n32-S128";
}
}
15. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• . - - 5 0
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
15https://github.com/lowRISC/riscv-llvm
16. + .
•
• ) + ( .
16
------------- Classes -----------------
class ALU<bits<5> ALU:opcode = { ?, ?, ?, ?, ? }, string ALU:op = ?> {
bits<5> Opcode = { ALU:opcode{4}, ALU:opcode{3}, ALU:opcode{2}, ALU:opcode{1},
ALU:opcode{0} };
string Op = ALU:op;
string NAME = ?;
}
------------- Defs -----------------
def ADD { // ALU
bits<5> Opcode = { 1, 0, 1, 0, 1 };
string Op = "add";
string NAME = ?;
}
def SUB { // ALU
bits<5> Opcode = { 1, 0, 1, 1, 1 };
string Op = "sub";
string NAME = ?;
}
class ALU<bits<5> opcode, string op> {
bits<5> Opcode = opcode;
string Op = op;
}
def ADD : ALU<0b10101, "add">;
def SUB : ALU<0b10111, "sub">;
22. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• .. 6 0 6- -
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
22https://github.com/lowRISC/riscv-llvm
23. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• .. 7 - 7 7 8-0
• .. 78 8 . 7 - 77 8 8-0
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
23https://github.com/lowRISC/riscv-llvm
25. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 332 -2 00 2 3 .
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
25https://github.com/lowRISC/riscv-llvm
27. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• - 1 0 .
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
27https://github.com/lowRISC/riscv-llvm
28. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 00 1 . 1 . 1 -
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
28https://github.com/lowRISC/riscv-llvm
29. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 221 1 2 - 00 - .- 2 2 .
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
29https://github.com/lowRISC/riscv-llvm
30. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 3 -.0. . 1
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
30https://github.com/lowRISC/riscv-llvm
37. 37
LLVM IR
Map IR instructions
to DAG
SelectionDAGBuilder
Target
Lowering
Instruction
Selection
38. ) 3 - 2 -3
• ) 3 - SI T
) 3 - SI
• ) 3 - S
• ) 3 -
• 4 36 2 (- - 2
) 3 - SI
• void setOperationAction(
unsigned Op, // S
MVT VT, //
LegalizeAction Action) // TL Target
// I S
38
39. 3
• 3
• O T
• L T
• 3 LA T PC L
• L
• 3
39
setOperationAction(ISD::ADD, MVT::i32, Legal)
setOperationAction(ISD::ADD, MVT::i8, Promote)
AddPromotedToType(ISD::ADD, MVT::i8, MVT::i32)
// P T L shift T PC L E
setOperationAction(ISD::MUL, MVT::i32, Expand);
setOperationAction(ISD::GlobalAddress, i32, Custom);
45. . . - .
• -
45
void RISCVDAGToDAGISel::Select(SDNode *Node) {
// If we have a custom node, we have already selected
if (Node->isMachineOpcode()) {
DEBUG(dbgs() << "== "; Node->dump(CurDAG); dbgs() << "n");
Node->setNodeId(-1);
return;
}
// C
if (Node->getOpcode() == ISD::AND) {
...
return;
}
// A .td pattern
SelectCode(Node);
}
// RISCVInstrInto.td
def Pat<(add GPR:$rs1, GPR:$rs2), (ADD GPR:$rs1, GPR:$rs2)>;
46. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• - 44 1 0 - 4 .
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
46https://github.com/lowRISC/riscv-llvm
48. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• - 1 5 0 0 15 .
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
48https://github.com/lowRISC/riscv-llvm
51. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• . 6 - 6 6 6 0 .1
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
51https://github.com/lowRISC/riscv-llvm
53. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• . - 070 1 7
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
53https://github.com/lowRISC/riscv-llvm
55. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 00 1 1 . . -- 0
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
55https://github.com/lowRISC/riscv-llvm
58. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• . . 9 . 0 9-1
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
58https://github.com/lowRISC/riscv-llvm
60. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 02 02 2- 0 - -0 .
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
60https://github.com/lowRISC/riscv-llvm
61. 29 I
• 3 L I 9D 3 4 7 9E I 9
• 3 4 7 3 F EAI AI L 9E AI L AE A C 9 IAE 9
• 3 4 7 3 4 7 -0. AE I 9
• 3 4 7 I 9 E 9
• 3 4 7 9IA 3 4 7 EI .F D9 I EI E F 3 AI 9
• 3 4 7 9 FE I 3 4 7 1 59 I 9
• 3 4 7 9IA 3 4 7 ID29 I 9
• 3 4 7 3 4 7 EI 2 AE 9E 9IA 1 9II D C 9
• 3 4 7 I F F 9CC 37 AEI AFEI 9
• 3 4 7 I F F AI9II D C 9
• 3 4 7 FDDFE A I 9E CF 9 AFEI 9
• 3 4 7 I F F 9 8CC 8 I 8 I 9
• 3 4 7 EA A9C F E I F F 06 F 9 AFEI 9
• 3 4 7 F E I F F D9 A9CAPAE FEI 9E I 9
• 3 4 7 F E I F F D DF F 9 AFEI 9
• 3 4 7 F E I F F D DF F 9 AFEI FE CF 9 9
• 3 4 7 F E F FE A AFE9C 9E I 9
• 3 4 7 4 F F E AFE 9CCI 9
• 3 4 7 D C D E CFM AE F 4 4-0- 5 9
• 3 4 7 4 F 9E I I F 9 L9 A F 9 A AFE9C 9
• 1 0 . - - .2
• 3 4 7 4 F CFM AE . 9D E 9
• 3 4 7 D C D E FCF 9E ACF AEI AFE 9
• 3 4 7 CCFM CFM AE F E9DA 8I 9 9CCF I 9 I9L 9
• 3 4 7 I FD 83 4 7 9CCAE FEL E AFE 9E AD 9
• 3 4 7 4 F F L9 9 I 9
• 3 4 7 4 F I 9 9D I 9E F I I F A I 9
• 3 4 7 9IA I F F AECAE 9ID FEI 9AE I 9
• 3 4 7 I F F CCLD 9D 9 II E9 9
• 3 4 7 D C D E 9E 9E9C IAI 9
61https://github.com/lowRISC/riscv-llvm
addi a1, zero, 0
sub a0, a1, a0
sub a0, zero, a0
62. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 2 2 . 0 -
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
62https://github.com/lowRISC/riscv-llvm
64. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 03 0 3 2 2 3. 2 . .2 3 -
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
64https://github.com/lowRISC/riscv-llvm
67. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• - . 4 2 2 - 0
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
67https://github.com/lowRISC/riscv-llvm
68. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 2 0 . - 0 025 5
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
68https://github.com/lowRISC/riscv-llvm
69. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 2..- - 0 .
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
69https://github.com/lowRISC/riscv-llvm
70. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 7 . 2-7 3 ..7- 7 0 7
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
70https://github.com/lowRISC/riscv-llvm
71. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 0 8 . 0 0 - 2 8 0 8 8
• 4 5 8 L I M AI FFO A LL M M C
• 4 5 8 F M C FRLDL M C
71https://github.com/lowRISC/riscv-llvm
72. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 2 -2 0 - 0 .
• 4 5 8 F M C FRLDL M C
72https://github.com/lowRISC/riscv-llvm
73. 3 M CL M
• 4 O M LM 4 5 8 C L M C
• 4 5 8 4 I DL DL O DL O D M D F LD M C
• 4 5 8 4 5 8 -0. AD L M C
• 4 5 8 LM E M C
• 4 5 8 LD 4 5 8 LM .I ML LM AI 4 DLM M C
• 4 5 8 I L 4 5 8 1 6 M L M C
• 4 5 8 LD 4 5 8 L 3 L M C
• 4 5 8 4 5 8 LM3 D M LD 1 LL F M M C
• 4 5 8 L I M AI FF 48 D LM MDI L M C
• 4 5 8 L I M AI DL LL FR M C
• 4 5 8 I I AD L FI MDI L M C
• 4 5 8 L I M MI M FF M LM C EL R M C
• 4 5 8 DMD F I L I M AI 07 I MDI L M C
• 4 5 8 I L I M AI M D FDSD I LM ML M C
• 4 5 8 I L I M AI I R I MDI L M C
• 4 5 8 I L I M AI I R I MDI L I FI M C
• 4 5 8 I AI I DMDI F C L M C
• 4 5 8 5 I M AI A MDI FFL M C
• 4 5 8 F M FIP D IA 5 5-0- 6 M C
• 4 5 8 5 I M M LML AI O D MR IA DMDI F M C
• 4 5 8 7L DLM 9 -42 AI I LM M M C
• 4 5 8 5 I M FIP D . M C
• 4 5 8 F M IFI DFI D L MDI M C
• 4 5 8 FFIP FIP D IA R D LM E FFI LM EL O M C
• 4 5 8 LMI 4 5 8 FFD I O MDI D M C
• 4 5 8 5 I M AI O L M C
• 4 5 8 5 I M LM E A L IAAL ML MI DML M C
• 4 5 8 LD L I M AI D FD L I LM D ML M C
• 4 5 8 L I M AI FFO A LL M M C
• .0- . 3 - 0 3
73https://github.com/lowRISC/riscv-llvm