diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfoA.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoA.td @@ -334,15 +334,15 @@ /// 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 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