aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-19 02:59:49 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-19 02:59:49 +0800
commit0461d2ba6bf1aedbd0d39e5da4daf90137bf61a7 (patch)
tree650bf61dba401fd4200f108cb99c80183724402b /backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc
parent6c97d54954112be9a5badacaec8efa1d05bd7d15 (diff)
downloadrcc-project-0461d2ba6bf1aedbd0d39e5da4daf90137bf61a7.tar.gz
rcc-project-0461d2ba6bf1aedbd0d39e5da4daf90137bf61a7.tar.xz
[RISCV][GlobalISel] Generate select instruction matching
Diffstat (limited to 'backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc')
-rw-r--r--backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc21
1 files changed, 21 insertions, 0 deletions
diff --git a/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc b/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc
index f40e5d4..d217460 100644
--- a/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc
+++ b/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc
@@ -914,6 +914,27 @@ selection_rules:
- { immediate: 1 }
erase_operand_definitions: [3]
-
+ id: select_g_select_gpr
+ priority: 100
+ match:
+ opcode: G_SELECT
+ operand_banks:
+ - { index: 0, bank: GPR }
+ - { index: 1, bank: GPR }
+ - { index: 2, bank: GPR }
+ - { index: 3, bank: GPR }
+ apply:
+ instructions:
+ - opcode: Select_GPR_Using_CC_GPR
+ root: true
+ operands:
+ - { operand: 0 }
+ - { complex: select_condition_lhs, operand: 1 }
+ - { complex: select_condition_rhs, operand: 1 }
+ - { complex: select_condition_code, operand: 1 }
+ - { operand: 2 }
+ - { operand: 3 }
+ -
id: select_g_icmp_sgt_immediate
priority: 400
match: