From b771f2d8ee8bcceda9810825dc15e53f6e0d6963 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 20 Apr 2015 18:06:09 +0000 Subject: [PATCH] Merging r227989: MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ------------------------------------------------------------------------ r227989 | marek.olsak | 2015-02-03 12:38:05 -0500 (Tue, 03 Feb 2015) | 10 lines R600/SI: Remove VOP2_REV definitions from target-specific instructions The getCommute* functions are only used with pseudos, so this commit doesn't change anything. The issue with missing non-rev versions of shift instructions on VI will fixed separately. Tested-by: Michel Dänzer ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_36@235316 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/SIInstrInfo.td | 45 +++++++++++++------------------ lib/Target/R600/SIInstructions.td | 9 +++---- 2 files changed, 22 insertions(+), 32 deletions(-) diff --git a/lib/Target/R600/SIInstrInfo.td b/lib/Target/R600/SIInstrInfo.td index a4e258e1862..5699d492947 100644 --- a/lib/Target/R600/SIInstrInfo.td +++ b/lib/Target/R600/SIInstrInfo.td @@ -850,25 +850,22 @@ class VOP2_Pseudo pattern, string opName> : } multiclass VOP2SI_m pattern, - string opName, string revOpSI> { + string opName, string revOp> { def "" : VOP2_Pseudo , - VOP2_REV; + VOP2_REV; def _si : VOP2 , - VOP2_REV, SIMCInstr ; } multiclass VOP2_m pattern, - string opName, string revOpSI, string revOpVI> { + string opName, string revOp> { def "" : VOP2_Pseudo , - VOP2_REV; + VOP2_REV; def _si : VOP2 , - VOP2_REV, SIMCInstr ; def _vi : VOP2 , - VOP2_REV, SIMCInstr ; } @@ -942,20 +939,18 @@ multiclass VOP3_1_m pattern, string opName, string revOpSI, string revOpVI, + list pattern, string opName, string revOp, bit HasMods = 1, bit UseFullOp = 0> { def "" : VOP3_Pseudo , - VOP2_REV; + VOP2_REV; def _si : VOP3_Real_si , - VOP2_REV, VOP3DisableFields<1, 0, HasMods>; def _vi : VOP3_Real_vi , - VOP2_REV, VOP3DisableFields<1, 0, HasMods>; } @@ -971,14 +966,12 @@ multiclass VOP3b_2_m , VOP3DisableFields<1, 0, HasMods>, - SIMCInstr, - VOP2_REV; + SIMCInstr; // TODO: Do we need this VI variant here? /*def _vi : VOP3b_vi , VOP3DisableFields<1, 0, HasMods>, - SIMCInstr, - VOP2_REV;*/ + SIMCInstr;*/ } // End sdst = SIOperand.VCC, Defs = [VCC] } @@ -1057,17 +1050,17 @@ multiclass VOP1InstSI pat32, dag ins64, string asm64, list pat64, - string revOpSI, string revOpVI, bit HasMods> { - defm _e32 : VOP2_m ; + string revOp, bit HasMods> { + defm _e32 : VOP2_m ; defm _e64 : VOP3_2_m ; } multiclass VOP2Inst : VOP2_Helper < + string revOp = opName> : VOP2_Helper < op, opName, P.Outs, P.Ins32, P.Asm32, [], P.Ins64, P.Asm64, @@ -1077,7 +1070,7 @@ multiclass VOP2Inst ; multiclass VOP2b_Helper pat64, string revOp, bit HasMods> { - defm _e32 : VOP2_m ; + defm _e32 : VOP2_m ; defm _e64 : VOP3b_2_m pat32, dag ins64, string asm64, list pat64, - string revOpSI, string revOpVI, bit HasMods> { - defm _e32 : VOP2SI_m ; + string revOp, bit HasMods> { + defm _e32 : VOP2SI_m ; defm _e64 : VOP3_2_m ; + revOp, HasMods>; } multiclass VOP2_VI3_Inst + string revOp = opName> : VOP2_VI3_Helper < op, opName, P.Outs, P.Ins32, P.Asm32, [], @@ -1131,7 +1124,7 @@ multiclass VOP2_VI3_Inst ; class VOPC_Pseudo pattern, string opName> : diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td index 91429edef47..645573ad215 100644 --- a/lib/Target/R600/SIInstructions.td +++ b/lib/Target/R600/SIInstructions.td @@ -1455,22 +1455,19 @@ defm V_MAX_U32 : VOP2Inst , "v_max_u32", VOP_I32_I32_I32, AMDGPUumax >; -// No non-Rev Op on VI defm V_LSHRREV_B32 : VOP2Inst < vop2<0x16, 0x10>, "v_lshrrev_b32", VOP_I32_I32_I32, null_frag, - "v_lshr_b32", "v_lshrrev_b32" + "v_lshr_b32" >; -// No non-Rev OP on VI defm V_ASHRREV_I32 : VOP2Inst < vop2<0x18, 0x11>, "v_ashrrev_i32", VOP_I32_I32_I32, null_frag, - "v_ashr_i32", "v_ashrrev_i32" + "v_ashr_i32" >; -// No non-Rev OP on VI defm V_LSHLREV_B32 : VOP2Inst < vop2<0x1a, 0x12>, "v_lshlrev_b32", VOP_I32_I32_I32, null_frag, - "v_lshl_b32", "v_lshlrev_b32" + "v_lshl_b32" >; defm V_AND_B32 : VOP2Inst , "v_and_b32", -- 2.50.1