R600/SI: Add a generic pseudo EXP instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218767 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tom Stellard 2014-10-01 14:44:45 +00:00
parent cbb63311cd
commit f7082f9bd7
3 changed files with 30 additions and 8 deletions

View File

@ -589,14 +589,6 @@ class MIMG <bits<7> op, dag outs, dag ins, string asm, list<dag> pattern> :
let MIMG = 1;
}
def EXP : InstSI<
(outs),
(ins i32imm:$en, i32imm:$tgt, i32imm:$compr, i32imm:$done, i32imm:$vm,
VReg_32:$src0, VReg_32:$src1, VReg_32:$src2, VReg_32:$src3),
"EXP $en, $tgt, $compr, $done, $vm, $src0, $src1, $src2, $src3",
[] >, EXPe {
let EXP_CNT = 1;
}
} // End Uses = [EXEC]

View File

@ -255,6 +255,30 @@ class SIMCInstr <string pseudo, int subtarget> {
int Subtarget = subtarget;
}
//===----------------------------------------------------------------------===//
// EXP classes
//===----------------------------------------------------------------------===//
class EXPCommon : InstSI<
(outs),
(ins i32imm:$en, i32imm:$tgt, i32imm:$compr, i32imm:$done, i32imm:$vm,
VReg_32:$src0, VReg_32:$src1, VReg_32:$src2, VReg_32:$src3),
"EXP $en, $tgt, $compr, $done, $vm, $src0, $src1, $src2, $src3",
[] > {
let EXP_CNT = 1;
let Uses = [EXEC];
}
multiclass EXP_m {
let isPseudo = 1 in {
def "" : EXPCommon, SIMCInstr <"EXP", SISubtarget.NONE> ;
}
def _si : EXPCommon, SIMCInstr <"EXP", SISubtarget.SI>, EXPe;
}
//===----------------------------------------------------------------------===//
// Scalar classes
//===----------------------------------------------------------------------===//

View File

@ -37,6 +37,12 @@ def WAIT_FLAG : InstFlag<"printWaitFlag">;
let SubtargetPredicate = isSI in {
//===----------------------------------------------------------------------===//
// EXP Instructions
//===----------------------------------------------------------------------===//
defm EXP : EXP_m;
//===----------------------------------------------------------------------===//
// SMRD Instructions
//===----------------------------------------------------------------------===//