diff options
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcInstr64Bit.td')
-rw-r--r-- | llvm/lib/Target/Sparc/SparcInstr64Bit.td | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/llvm/lib/Target/Sparc/SparcInstr64Bit.td b/llvm/lib/Target/Sparc/SparcInstr64Bit.td index 419e8ccb102..299f00e5247 100644 --- a/llvm/lib/Target/Sparc/SparcInstr64Bit.td +++ b/llvm/lib/Target/Sparc/SparcInstr64Bit.td @@ -510,39 +510,6 @@ def : Pat<(atomic_store ADDRri:$dst, i64:$val), (STXri ADDRri:$dst, $val)>; } // Predicates = [Is64Bit] -let usesCustomInserter = 1, hasCtrlDep = 1, mayLoad = 1, mayStore = 1, - Defs = [ICC] in -multiclass AtomicRMW<SDPatternOperator op32, SDPatternOperator op64> { - - def _32 : Pseudo<(outs IntRegs:$rd), - (ins ptr_rc:$addr, IntRegs:$rs2), "", - [(set i32:$rd, (op32 iPTR:$addr, i32:$rs2))]>; - - let Predicates = [Is64Bit] in - def _64 : Pseudo<(outs I64Regs:$rd), - (ins ptr_rc:$addr, I64Regs:$rs2), "", - [(set i64:$rd, (op64 iPTR:$addr, i64:$rs2))]>; -} - -defm ATOMIC_LOAD_ADD : AtomicRMW<atomic_load_add_32, atomic_load_add_64>; -defm ATOMIC_LOAD_SUB : AtomicRMW<atomic_load_sub_32, atomic_load_sub_64>; -defm ATOMIC_LOAD_AND : AtomicRMW<atomic_load_and_32, atomic_load_and_64>; -defm ATOMIC_LOAD_OR : AtomicRMW<atomic_load_or_32, atomic_load_or_64>; -defm ATOMIC_LOAD_XOR : AtomicRMW<atomic_load_xor_32, atomic_load_xor_64>; -defm ATOMIC_LOAD_NAND : AtomicRMW<atomic_load_nand_32, atomic_load_nand_64>; -defm ATOMIC_LOAD_MIN : AtomicRMW<atomic_load_min_32, atomic_load_min_64>; -defm ATOMIC_LOAD_MAX : AtomicRMW<atomic_load_max_32, atomic_load_max_64>; -defm ATOMIC_LOAD_UMIN : AtomicRMW<atomic_load_umin_32, atomic_load_umin_64>; -defm ATOMIC_LOAD_UMAX : AtomicRMW<atomic_load_umax_32, atomic_load_umax_64>; - -// There is no 64-bit variant of SWAP, so use a pseudo. -let usesCustomInserter = 1, hasCtrlDep = 1, mayLoad = 1, mayStore = 1, - Defs = [ICC], Predicates = [Is64Bit] in -def ATOMIC_SWAP_64 : Pseudo<(outs I64Regs:$rd), - (ins ptr_rc:$addr, I64Regs:$rs2), "", - [(set i64:$rd, - (atomic_swap_64 iPTR:$addr, i64:$rs2))]>; - let Predicates = [Is64Bit], hasSideEffects = 1, Uses = [ICC], cc = 0b10 in defm TXCC : TRAP<"%xcc">; |