mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-25 12:50:00 +00:00
[PATCH 2/2] PTXInstrInfo.td PTXIntrinsicInstrInfo.td 80 columns
From 5936c03172e251f12a0332d1033de5718e6e2091 Mon Sep 17 00:00:00 2001 --- lib/Target/PTX/PTXInstrInfo.td | 165 ++++++++++++++++++++---------- lib/Target/PTX/PTXIntrinsicInstrInfo.td | 88 +++++++++++------ 2 files changed, 167 insertions(+), 86 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140376 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
27f08fc619
commit
1cde87d202
@ -404,53 +404,73 @@ multiclass PTX_SETP_I<RegisterClass RC, string regclsname, Operand immcls,
|
||||
|
||||
def rr_and_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname, "\t$p, $a, $b, $c"),
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, cmp), RegPred:$c))]>;
|
||||
def ri_and_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, immcls:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname, "\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, imm:$b, cmp), RegPred:$c))]>;
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, imm:$b, cmp),
|
||||
RegPred:$c))]>;
|
||||
def rr_or_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname, "\t$p, $a, $b, $c"),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, cmp), RegPred:$c))]>;
|
||||
def ri_or_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, immcls:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname, "\t$p, $a, $b, $c"),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, imm:$b, cmp), RegPred:$c))]>;
|
||||
def rr_xor_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname, "\t$p, $a, $b, $c"),
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, cmp), RegPred:$c))]>;
|
||||
def ri_xor_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, immcls:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname, "\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, imm:$b, cmp), RegPred:$c))]>;
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, imm:$b, cmp),
|
||||
RegPred:$c))]>;
|
||||
|
||||
def rr_and_not_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, cmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, cmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def ri_and_not_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, immcls:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, imm:$b, cmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, imm:$b, cmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def rr_or_not_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, cmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, cmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def ri_or_not_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, immcls:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, imm:$b, cmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, imm:$b, cmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def rr_xor_not_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, cmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, cmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def ri_xor_not_r
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, immcls:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, imm:$b, cmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, imm:$b, cmp),
|
||||
(not RegPred:$c)))]>;
|
||||
}
|
||||
|
||||
multiclass PTX_SETP_FP<RegisterClass RC, string regclsname,
|
||||
@ -468,57 +488,79 @@ multiclass PTX_SETP_FP<RegisterClass RC, string regclsname,
|
||||
|
||||
def rr_and_r_u
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, "u.and.", regclsname, "\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ucmp), RegPred:$c))]>;
|
||||
!strconcat("setp.", cmpstr, "u.and.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ucmp),
|
||||
RegPred:$c))]>;
|
||||
def rr_and_r_o
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname, "\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ocmp), RegPred:$c))]>;
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ocmp),
|
||||
RegPred:$c))]>;
|
||||
|
||||
def rr_or_r_u
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, "u.or.", regclsname, "\t$p, $a, $b, $c"),
|
||||
!strconcat("setp.", cmpstr, "u.or.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, ucmp), RegPred:$c))]>;
|
||||
def rr_or_r_o
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname, "\t$p, $a, $b, $c"),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, ocmp), RegPred:$c))]>;
|
||||
|
||||
def rr_xor_r_u
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, "u.xor.", regclsname, "\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ucmp), RegPred:$c))]>;
|
||||
!strconcat("setp.", cmpstr, "u.xor.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ucmp),
|
||||
RegPred:$c))]>;
|
||||
def rr_xor_r_o
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname, "\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ocmp), RegPred:$c))]>;
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname,
|
||||
"\t$p, $a, $b, $c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ocmp),
|
||||
RegPred:$c))]>;
|
||||
|
||||
def rr_and_not_r_u
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, "u.and.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ucmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, "u.and.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ucmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def rr_and_not_r_o
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ocmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".and.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (and (setcc RC:$a, RC:$b, ocmp),
|
||||
(not RegPred:$c)))]>;
|
||||
|
||||
def rr_or_not_r_u
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, "u.or.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, ucmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, "u.or.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, ucmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def rr_or_not_r_o
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, ocmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".or.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (or (setcc RC:$a, RC:$b, ocmp),
|
||||
(not RegPred:$c)))]>;
|
||||
|
||||
def rr_xor_not_r_u
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, "u.xor.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ucmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, "u.xor.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ucmp),
|
||||
(not RegPred:$c)))]>;
|
||||
def rr_xor_not_r_o
|
||||
: InstPTX<(outs RegPred:$p), (ins RC:$a, RC:$b, RegPred:$c),
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname, "\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ocmp), (not RegPred:$c)))]>;
|
||||
!strconcat("setp.", cmpstr, ".xor.", regclsname,
|
||||
"\t$p, $a, $b, !$c"),
|
||||
[(set RegPred:$p, (xor (setcc RC:$a, RC:$b, ocmp),
|
||||
(not RegPred:$c)))]>;
|
||||
}
|
||||
|
||||
multiclass PTX_SELP<RegisterClass RC, string regclsname> {
|
||||
@ -528,31 +570,38 @@ multiclass PTX_SELP<RegisterClass RC, string regclsname> {
|
||||
[(set RC:$r, (select RegPred:$a, RC:$b, RC:$c))]>;
|
||||
}
|
||||
|
||||
multiclass PTX_LD<string opstr, string typestr, RegisterClass RC, PatFrag pat_load> {
|
||||
multiclass PTX_LD<string opstr, string typestr,
|
||||
RegisterClass RC, PatFrag pat_load> {
|
||||
def rr32 : InstPTX<(outs RC:$d),
|
||||
(ins MEMri32:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t$d, [$a]")),
|
||||
[(set RC:$d, (pat_load ADDRrr32:$a))]>, Requires<[Use32BitAddresses]>;
|
||||
[(set RC:$d, (pat_load ADDRrr32:$a))]>,
|
||||
Requires<[Use32BitAddresses]>;
|
||||
def rr64 : InstPTX<(outs RC:$d),
|
||||
(ins MEMri64:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t$d, [$a]")),
|
||||
[(set RC:$d, (pat_load ADDRrr64:$a))]>, Requires<[Use64BitAddresses]>;
|
||||
[(set RC:$d, (pat_load ADDRrr64:$a))]>,
|
||||
Requires<[Use64BitAddresses]>;
|
||||
def ri32 : InstPTX<(outs RC:$d),
|
||||
(ins MEMri32:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t$d, [$a]")),
|
||||
[(set RC:$d, (pat_load ADDRri32:$a))]>, Requires<[Use32BitAddresses]>;
|
||||
[(set RC:$d, (pat_load ADDRri32:$a))]>,
|
||||
Requires<[Use32BitAddresses]>;
|
||||
def ri64 : InstPTX<(outs RC:$d),
|
||||
(ins MEMri64:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t$d, [$a]")),
|
||||
[(set RC:$d, (pat_load ADDRri64:$a))]>, Requires<[Use64BitAddresses]>;
|
||||
[(set RC:$d, (pat_load ADDRri64:$a))]>,
|
||||
Requires<[Use64BitAddresses]>;
|
||||
def ii32 : InstPTX<(outs RC:$d),
|
||||
(ins MEMii32:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t$d, [$a]")),
|
||||
[(set RC:$d, (pat_load ADDRii32:$a))]>, Requires<[Use32BitAddresses]>;
|
||||
[(set RC:$d, (pat_load ADDRii32:$a))]>,
|
||||
Requires<[Use32BitAddresses]>;
|
||||
def ii64 : InstPTX<(outs RC:$d),
|
||||
(ins MEMii64:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t$d, [$a]")),
|
||||
[(set RC:$d, (pat_load ADDRii64:$a))]>, Requires<[Use64BitAddresses]>;
|
||||
[(set RC:$d, (pat_load ADDRii64:$a))]>,
|
||||
Requires<[Use64BitAddresses]>;
|
||||
}
|
||||
|
||||
multiclass PTX_LD_ALL<string opstr, PatFrag pat_load> {
|
||||
@ -567,27 +616,33 @@ multiclass PTX_ST<string opstr, string typestr, RegisterClass RC, PatFrag pat_st
|
||||
def rr32 : InstPTX<(outs),
|
||||
(ins RC:$d, MEMri32:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t[$a], $d")),
|
||||
[(pat_store RC:$d, ADDRrr32:$a)]>, Requires<[Use32BitAddresses]>;
|
||||
[(pat_store RC:$d, ADDRrr32:$a)]>,
|
||||
Requires<[Use32BitAddresses]>;
|
||||
def rr64 : InstPTX<(outs),
|
||||
(ins RC:$d, MEMri64:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t[$a], $d")),
|
||||
[(pat_store RC:$d, ADDRrr64:$a)]>, Requires<[Use64BitAddresses]>;
|
||||
[(pat_store RC:$d, ADDRrr64:$a)]>,
|
||||
Requires<[Use64BitAddresses]>;
|
||||
def ri32 : InstPTX<(outs),
|
||||
(ins RC:$d, MEMri32:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t[$a], $d")),
|
||||
[(pat_store RC:$d, ADDRri32:$a)]>, Requires<[Use32BitAddresses]>;
|
||||
[(pat_store RC:$d, ADDRri32:$a)]>,
|
||||
Requires<[Use32BitAddresses]>;
|
||||
def ri64 : InstPTX<(outs),
|
||||
(ins RC:$d, MEMri64:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t[$a], $d")),
|
||||
[(pat_store RC:$d, ADDRri64:$a)]>, Requires<[Use64BitAddresses]>;
|
||||
[(pat_store RC:$d, ADDRri64:$a)]>,
|
||||
Requires<[Use64BitAddresses]>;
|
||||
def ii32 : InstPTX<(outs),
|
||||
(ins RC:$d, MEMii32:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t[$a], $d")),
|
||||
[(pat_store RC:$d, ADDRii32:$a)]>, Requires<[Use32BitAddresses]>;
|
||||
[(pat_store RC:$d, ADDRii32:$a)]>,
|
||||
Requires<[Use32BitAddresses]>;
|
||||
def ii64 : InstPTX<(outs),
|
||||
(ins RC:$d, MEMii64:$a),
|
||||
!strconcat(opstr, !strconcat(typestr, "\t[$a], $d")),
|
||||
[(pat_store RC:$d, ADDRii64:$a)]>, Requires<[Use64BitAddresses]>;
|
||||
[(pat_store RC:$d, ADDRii64:$a)]>,
|
||||
Requires<[Use64BitAddresses]>;
|
||||
}
|
||||
|
||||
multiclass PTX_ST_ALL<string opstr, PatFrag pat_store> {
|
||||
|
@ -25,37 +25,63 @@ class PTX_READ_SPECIAL_REGISTER_R32<string regname, Intrinsic intop>
|
||||
|
||||
// TODO Add read vector-version of special registers
|
||||
|
||||
//def PTX_READ_TID_R64 : PTX_READ_SPECIAL_REGISTER_R64<"tid", int_ptx_read_tid_r64>;
|
||||
def PTX_READ_TID_X : PTX_READ_SPECIAL_REGISTER_R32<"tid.x", int_ptx_read_tid_x>;
|
||||
def PTX_READ_TID_Y : PTX_READ_SPECIAL_REGISTER_R32<"tid.y", int_ptx_read_tid_y>;
|
||||
def PTX_READ_TID_Z : PTX_READ_SPECIAL_REGISTER_R32<"tid.z", int_ptx_read_tid_z>;
|
||||
def PTX_READ_TID_W : PTX_READ_SPECIAL_REGISTER_R32<"tid.w", int_ptx_read_tid_w>;
|
||||
//def PTX_READ_TID_R64 : PTX_READ_SPECIAL_REGISTER_R64<"tid",
|
||||
// int_ptx_read_tid_r64>;
|
||||
def PTX_READ_TID_X : PTX_READ_SPECIAL_REGISTER_R32<"tid.x",
|
||||
int_ptx_read_tid_x>;
|
||||
def PTX_READ_TID_Y : PTX_READ_SPECIAL_REGISTER_R32<"tid.y",
|
||||
int_ptx_read_tid_y>;
|
||||
def PTX_READ_TID_Z : PTX_READ_SPECIAL_REGISTER_R32<"tid.z",
|
||||
int_ptx_read_tid_z>;
|
||||
def PTX_READ_TID_W : PTX_READ_SPECIAL_REGISTER_R32<"tid.w",
|
||||
int_ptx_read_tid_w>;
|
||||
|
||||
//def PTX_READ_NTID_R64 : PTX_READ_SPECIAL_REGISTER_R64<"ntid", int_ptx_read_ntid_r64>;
|
||||
def PTX_READ_NTID_X : PTX_READ_SPECIAL_REGISTER_R32<"ntid.x", int_ptx_read_ntid_x>;
|
||||
def PTX_READ_NTID_Y : PTX_READ_SPECIAL_REGISTER_R32<"ntid.y", int_ptx_read_ntid_y>;
|
||||
def PTX_READ_NTID_Z : PTX_READ_SPECIAL_REGISTER_R32<"ntid.z", int_ptx_read_ntid_z>;
|
||||
def PTX_READ_NTID_W : PTX_READ_SPECIAL_REGISTER_R32<"ntid.w", int_ptx_read_ntid_w>;
|
||||
//def PTX_READ_NTID_R64 : PTX_READ_SPECIAL_REGISTER_R64<"ntid",
|
||||
// int_ptx_read_ntid_r64>;
|
||||
def PTX_READ_NTID_X : PTX_READ_SPECIAL_REGISTER_R32<"ntid.x",
|
||||
int_ptx_read_ntid_x>;
|
||||
def PTX_READ_NTID_Y : PTX_READ_SPECIAL_REGISTER_R32<"ntid.y",
|
||||
int_ptx_read_ntid_y>;
|
||||
def PTX_READ_NTID_Z : PTX_READ_SPECIAL_REGISTER_R32<"ntid.z",
|
||||
int_ptx_read_ntid_z>;
|
||||
def PTX_READ_NTID_W : PTX_READ_SPECIAL_REGISTER_R32<"ntid.w",
|
||||
int_ptx_read_ntid_w>;
|
||||
|
||||
def PTX_READ_LANEID : PTX_READ_SPECIAL_REGISTER_R32<"laneid", int_ptx_read_laneid>;
|
||||
def PTX_READ_WARPID : PTX_READ_SPECIAL_REGISTER_R32<"warpid", int_ptx_read_warpid>;
|
||||
def PTX_READ_NWARPID : PTX_READ_SPECIAL_REGISTER_R32<"nwarpid", int_ptx_read_nwarpid>;
|
||||
def PTX_READ_LANEID : PTX_READ_SPECIAL_REGISTER_R32<"laneid",
|
||||
int_ptx_read_laneid>;
|
||||
def PTX_READ_WARPID : PTX_READ_SPECIAL_REGISTER_R32<"warpid",
|
||||
int_ptx_read_warpid>;
|
||||
def PTX_READ_NWARPID : PTX_READ_SPECIAL_REGISTER_R32<"nwarpid",
|
||||
int_ptx_read_nwarpid>;
|
||||
|
||||
//def PTX_READ_CTAID_R64 : PTX_READ_SPECIAL_REGISTER_R64<"ctaid", int_ptx_read_ctaid_r64>;
|
||||
def PTX_READ_CTAID_X : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.x", int_ptx_read_ctaid_x>;
|
||||
def PTX_READ_CTAID_Y : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.y", int_ptx_read_ctaid_y>;
|
||||
def PTX_READ_CTAID_Z : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.z", int_ptx_read_ctaid_z>;
|
||||
def PTX_READ_CTAID_W : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.w", int_ptx_read_ctaid_w>;
|
||||
//def PTX_READ_CTAID_R64 :
|
||||
//PTX_READ_SPECIAL_REGISTER_R64<"ctaid", int_ptx_read_ctaid_r64>;
|
||||
def PTX_READ_CTAID_X : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.x",
|
||||
int_ptx_read_ctaid_x>;
|
||||
def PTX_READ_CTAID_Y : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.y",
|
||||
int_ptx_read_ctaid_y>;
|
||||
def PTX_READ_CTAID_Z : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.z",
|
||||
int_ptx_read_ctaid_z>;
|
||||
def PTX_READ_CTAID_W : PTX_READ_SPECIAL_REGISTER_R32<"ctaid.w",
|
||||
int_ptx_read_ctaid_w>;
|
||||
|
||||
//def PTX_READ_NCTAID_R64 : PTX_READ_SPECIAL_REGISTER_R64<"nctaid", int_ptx_read_nctaid_r64>;
|
||||
def PTX_READ_NCTAID_X : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.x", int_ptx_read_nctaid_x>;
|
||||
def PTX_READ_NCTAID_Y : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.y", int_ptx_read_nctaid_y>;
|
||||
def PTX_READ_NCTAID_Z : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.z", int_ptx_read_nctaid_z>;
|
||||
def PTX_READ_NCTAID_W : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.w", int_ptx_read_nctaid_w>;
|
||||
//def PTX_READ_NCTAID_R64 :
|
||||
//PTX_READ_SPECIAL_REGISTER_R64<"nctaid", int_ptx_read_nctaid_r64>;
|
||||
def PTX_READ_NCTAID_X : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.x",
|
||||
int_ptx_read_nctaid_x>;
|
||||
def PTX_READ_NCTAID_Y : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.y",
|
||||
int_ptx_read_nctaid_y>;
|
||||
def PTX_READ_NCTAID_Z : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.z",
|
||||
int_ptx_read_nctaid_z>;
|
||||
def PTX_READ_NCTAID_W : PTX_READ_SPECIAL_REGISTER_R32<"nctaid.w",
|
||||
int_ptx_read_nctaid_w>;
|
||||
|
||||
def PTX_READ_SMID : PTX_READ_SPECIAL_REGISTER_R32<"smid", int_ptx_read_smid>;
|
||||
def PTX_READ_NSMID : PTX_READ_SPECIAL_REGISTER_R32<"nsmid", int_ptx_read_nsmid>;
|
||||
def PTX_READ_GRIDID : PTX_READ_SPECIAL_REGISTER_R32<"gridid", int_ptx_read_gridid>;
|
||||
def PTX_READ_SMID : PTX_READ_SPECIAL_REGISTER_R32<"smid",
|
||||
int_ptx_read_smid>;
|
||||
def PTX_READ_NSMID : PTX_READ_SPECIAL_REGISTER_R32<"nsmid",
|
||||
int_ptx_read_nsmid>;
|
||||
def PTX_READ_GRIDID : PTX_READ_SPECIAL_REGISTER_R32<"gridid",
|
||||
int_ptx_read_gridid>;
|
||||
|
||||
def PTX_READ_LANEMASK_EQ
|
||||
: PTX_READ_SPECIAL_REGISTER_R32<"lanemask_eq", int_ptx_read_lanemask_eq>;
|
||||
|
Loading…
Reference in New Issue
Block a user