diff options
author | Jim Lin <tclin914@gmail.com> | 2021-04-09 09:36:33 +0800 |
---|---|---|
committer | Jim Lin <tclin914@gmail.com> | 2021-04-09 09:37:04 +0800 |
commit | 49c79e3b56448dbcd34aaf61e3678f7d6f5fcf80 (patch) | |
tree | 0a0f55b9753766bc0bf2857df9826493ef47da2a | |
parent | f47a4c071376c32d970bb26fbfca5a2fb08c164e (diff) | |
download | llvm-49c79e3b56448dbcd34aaf61e3678f7d6f5fcf80.tar.gz |
[RISCV][NFC] Add explicit type i64 to RV64 only patterns.
Add explicit type i64 to RV64 only patterns to stop emitting unneeded i32 patterns.
It can reduce the isel table size.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D100089
-rw-r--r-- | llvm/lib/Target/RISCV/RISCVInstrInfoA.td | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td index 787092b7206c..ee10c3a54b2f 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td @@ -334,15 +334,15 @@ defm : AMOPat<"atomic_load_umin_64", "AMOMINU_D">; /// 64-bit AMOs -def : Pat<(atomic_load_sub_64_monotonic GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_sub_64_monotonic GPR:$addr, GPR:$incr)), (AMOADD_D GPR:$addr, (SUB X0, GPR:$incr))>; -def : Pat<(atomic_load_sub_64_acquire GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_sub_64_acquire GPR:$addr, GPR:$incr)), (AMOADD_D_AQ GPR:$addr, (SUB X0, GPR:$incr))>; -def : Pat<(atomic_load_sub_64_release GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_sub_64_release GPR:$addr, GPR:$incr)), (AMOADD_D_RL GPR:$addr, (SUB X0, GPR:$incr))>; -def : Pat<(atomic_load_sub_64_acq_rel GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_sub_64_acq_rel GPR:$addr, GPR:$incr)), (AMOADD_D_AQ_RL GPR:$addr, (SUB X0, GPR:$incr))>; -def : Pat<(atomic_load_sub_64_seq_cst GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_sub_64_seq_cst GPR:$addr, GPR:$incr)), (AMOADD_D_AQ_RL GPR:$addr, (SUB X0, GPR:$incr))>; /// 64-bit pseudo AMOs @@ -350,15 +350,15 @@ def : Pat<(atomic_load_sub_64_seq_cst GPR:$addr, GPR:$incr), def PseudoAtomicLoadNand64 : PseudoAMO; // Ordering constants must be kept in sync with the AtomicOrdering enum in // AtomicOrdering.h. -def : Pat<(atomic_load_nand_64_monotonic GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_nand_64_monotonic GPR:$addr, GPR:$incr)), (PseudoAtomicLoadNand64 GPR:$addr, GPR:$incr, 2)>; -def : Pat<(atomic_load_nand_64_acquire GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_nand_64_acquire GPR:$addr, GPR:$incr)), (PseudoAtomicLoadNand64 GPR:$addr, GPR:$incr, 4)>; -def : Pat<(atomic_load_nand_64_release GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_nand_64_release GPR:$addr, GPR:$incr)), (PseudoAtomicLoadNand64 GPR:$addr, GPR:$incr, 5)>; -def : Pat<(atomic_load_nand_64_acq_rel GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_nand_64_acq_rel GPR:$addr, GPR:$incr)), (PseudoAtomicLoadNand64 GPR:$addr, GPR:$incr, 6)>; -def : Pat<(atomic_load_nand_64_seq_cst GPR:$addr, GPR:$incr), +def : Pat<(i64 (atomic_load_nand_64_seq_cst GPR:$addr, GPR:$incr)), (PseudoAtomicLoadNand64 GPR:$addr, GPR:$incr, 7)>; def : PseudoMaskedAMOPat<int_riscv_masked_atomicrmw_xchg_i64, |