diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-16 20:23:21 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-16 20:23:21 +0800 |
| commit | e89ef1cdf4186e20469043167079dc95f14ce666 (patch) | |
| tree | 3116d7975295181e0cbfc68eb7e130f4e33aee82 /backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc | |
| parent | 3f4ebc94a0b7a6119c6f808f98f81cb907dabf15 (diff) | |
| download | rcc-project-e89ef1cdf4186e20469043167079dc95f14ce666.tar.gz rcc-project-e89ef1cdf4186e20469043167079dc95f14ce666.tar.xz | |
[RISCV][GlobalISel] Generate high multiply selections
Diffstat (limited to 'backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc')
| -rw-r--r-- | backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc b/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc index 0413007..e096993 100644 --- a/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc +++ b/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc @@ -218,6 +218,42 @@ selection_rules: root: true operands: [{ operand: 0 }, { operand: 1 }, { operand: 2 }] - + id: select_g_smulh_register + priority: 100 + match: + opcode: G_SMULH + result_type: { kind: scalar, bits: 64 } + operand_types: + - { index: 1, kind: scalar, bits: 64 } + - { index: 2, kind: scalar, bits: 64 } + operand_banks: + - { index: 0, bank: GPR } + - { index: 1, bank: GPR } + - { index: 2, bank: GPR } + apply: + instructions: + - opcode: MULH + root: true + operands: [{ operand: 0 }, { operand: 1 }, { operand: 2 }] + - + id: select_g_umulh_register + priority: 100 + match: + opcode: G_UMULH + result_type: { kind: scalar, bits: 64 } + operand_types: + - { index: 1, kind: scalar, bits: 64 } + - { index: 2, kind: scalar, bits: 64 } + operand_banks: + - { index: 0, bank: GPR } + - { index: 1, bank: GPR } + - { index: 2, bank: GPR } + apply: + instructions: + - opcode: MULHU + root: true + operands: [{ operand: 0 }, { operand: 1 }, { operand: 2 }] + - id: select_g_sdiv_register priority: 100 match: |
