diff options
| author | Tom Stellard <thomas.stellard@amd.com> | 2016-01-27 15:53:52 +0000 |
|---|---|---|
| committer | Tom Stellard <thomas.stellard@amd.com> | 2016-01-27 15:53:52 +0000 |
| commit | 6e3b14de62079be8627495107f07431f0cb1fd4b (patch) | |
| tree | 0621d9a3bf3aa4446e567d3ac8d8580853002800 | |
| parent | 94d6788f9afda8b9d69dee7d62e9b89a165a7891 (diff) | |
| download | bcm5719-llvm-6e3b14de62079be8627495107f07431f0cb1fd4b.tar.gz bcm5719-llvm-6e3b14de62079be8627495107f07431f0cb1fd4b.zip | |
AMDGPU/SI: Fix commuting of 32-bit VOPC instructions
Summary:
We didn't have entries in the commuting table for the 32-bit
instructions. I don't think we hit this problem now, but we
will once uniform branching is enabled. Tests will come in
a later commit.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D16600
llvm-svn: 258936
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstrInfo.td | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.td b/llvm/lib/Target/AMDGPU/SIInstrInfo.td index 7de293f012b..63c5dfd6351 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.td @@ -1788,7 +1788,8 @@ multiclass VOPC_m <vopc op, dag ins, string op_asm, list<dag> pattern, list<SchedReadWrite> sched, string revOpName = "", string asm = opName#"_e32 "#op_asm, string alias_asm = opName#" "#op_asm> { - def "" : VOPC_Pseudo <ins, pattern, opName> { + def "" : VOPC_Pseudo <ins, pattern, opName>, + VOP2_REV<revOpName#"_e32", !eq(revOpName, opName)> { let Defs = !if(DefExec, [VCC, EXEC], [VCC]); let SchedRW = sched; } @@ -1819,7 +1820,8 @@ multiclass VOPC_m <vopc op, dag ins, string op_asm, list<dag> pattern, multiclass VOPC_Helper <vopc op, string opName, list<dag> pat32, list<dag> pat64, bit DefExec, string revOp, VOPProfile p, list<SchedReadWrite> sched> { - defm _e32 : VOPC_m <op, p.Ins32, p.Asm32, pat32, opName, DefExec, p, sched>; + defm _e32 : VOPC_m <op, p.Ins32, p.Asm32, pat32, opName, DefExec, p, sched, + revOp>; defm _e64 : VOP3_C_m <op, (outs VOPDstS64:$dst), p.Ins64, opName#p.Asm64, pat64, opName, p.HasModifiers, DefExec, revOp, sched>; |

