summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2018-11-07 21:21:32 +0000
committerKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2018-11-07 21:21:32 +0000
commit7f1959ebb3739274ef01f397bfc5d4b746585f34 (patch)
treebdd1019d8ced8137e21c7ef6f2643a5b589ef6ca /llvm/lib/Target
parentdb22af0f45c4782d8488e191f406b7aa65e4b62e (diff)
downloadbcm5719-llvm-7f1959ebb3739274ef01f397bfc5d4b746585f34.tar.gz
bcm5719-llvm-7f1959ebb3739274ef01f397bfc5d4b746585f34.zip
AMDGPU/NFC: Split MUBUF_Pseudo_Atomics into RTN/NO_RTN multiclasses
llvm-svn: 346357
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/AMDGPU/BUFInstructions.td21
1 files changed, 16 insertions, 5 deletions
diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td
index 18a59729faa..e48b73b0f1e 100644
--- a/llvm/lib/Target/AMDGPU/BUFInstructions.td
+++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td
@@ -656,11 +656,10 @@ class MUBUF_AtomicRet_Pseudo<string opName, int addrKind,
let AsmMatchConverter = "cvtMubufAtomicReturn";
}
-multiclass MUBUF_Pseudo_Atomics <string opName,
- RegisterClass vdataClass,
- ValueType vdataType,
- SDPatternOperator atomic> {
-
+multiclass MUBUF_Pseudo_Atomics_NO_RTN <string opName,
+ RegisterClass vdataClass,
+ ValueType vdataType,
+ SDPatternOperator atomic> {
def _OFFSET : MUBUF_AtomicNoRet_Pseudo <opName, BUFAddrKind.Offset, vdataClass>,
MUBUFAddr64Table <0, NAME>;
def _ADDR64 : MUBUF_AtomicNoRet_Pseudo <opName, BUFAddrKind.Addr64, vdataClass>,
@@ -668,7 +667,12 @@ multiclass MUBUF_Pseudo_Atomics <string opName,
def _OFFEN : MUBUF_AtomicNoRet_Pseudo <opName, BUFAddrKind.OffEn, vdataClass>;
def _IDXEN : MUBUF_AtomicNoRet_Pseudo <opName, BUFAddrKind.IdxEn, vdataClass>;
def _BOTHEN : MUBUF_AtomicNoRet_Pseudo <opName, BUFAddrKind.BothEn, vdataClass>;
+}
+multiclass MUBUF_Pseudo_Atomics_RTN <string opName,
+ RegisterClass vdataClass,
+ ValueType vdataType,
+ SDPatternOperator atomic> {
def _OFFSET_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.Offset, vdataClass,
[(set vdataType:$vdata,
(atomic (MUBUFOffsetAtomic v4i32:$srsrc, i32:$soffset, i16:$offset, i1:$slc),
@@ -686,6 +690,13 @@ multiclass MUBUF_Pseudo_Atomics <string opName,
def _BOTHEN_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.BothEn, vdataClass>;
}
+multiclass MUBUF_Pseudo_Atomics <string opName,
+ RegisterClass vdataClass,
+ ValueType vdataType,
+ SDPatternOperator atomic> :
+ MUBUF_Pseudo_Atomics_NO_RTN<opName, vdataClass, vdataType, atomic>,
+ MUBUF_Pseudo_Atomics_RTN<opName, vdataClass, vdataType, atomic>;
+
//===----------------------------------------------------------------------===//
// MUBUF Instructions
OpenPOWER on IntegriCloud