From 585290a32a0b1c5ac98fa434acc270821220e213 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 18 Feb 2015 16:08:13 +0000 Subject: [PATCH] R600/SI: Add definition for S_CBRANCH_G_FORK git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229686 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/R600/SIInstrInfo.td | 6 ++++++ lib/Target/R600/SIInstructions.td | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/Target/R600/SIInstrInfo.td b/lib/Target/R600/SIInstrInfo.td index 6e0db3ca5c9..17b2141356b 100644 --- a/lib/Target/R600/SIInstrInfo.td +++ b/lib/Target/R600/SIInstrInfo.td @@ -454,6 +454,12 @@ class SOP2_Pseudo pattern> : SIMCInstr { let isPseudo = 1; let Size = 4; + + // Pseudo instructions have no encodings, but adding this field here allows + // us to do: + // let sdst = xxx in { + // for multiclasses that include both real and pseudo instructions. + field bits<7> sdst = 0; } class SOP2_Real_si : diff --git a/lib/Target/R600/SIInstructions.td b/lib/Target/R600/SIInstructions.td index 8e1c0e70aff..a30da742aea 100644 --- a/lib/Target/R600/SIInstructions.td +++ b/lib/Target/R600/SIInstructions.td @@ -319,7 +319,13 @@ defm S_BFE_U64 : SOP2_64 , "s_bfe_u64", []>; defm S_BFE_I64 : SOP2_64_32 , "s_bfe_i64", []>; } // End Defs = [SCC] -//defm S_CBRANCH_G_FORK : SOP2_ , "s_cbranch_g_fork", []>; +let sdst = 0 in { +defm S_CBRANCH_G_FORK : SOP2_m < + sop2<0x2b, 0x29>, "s_cbranch_g_fork", (outs), + (ins SReg_64:$src0, SReg_64:$src1), "s_cbranch_g_fork $src0, $src1", [] +>; +} + let Defs = [SCC] in { defm S_ABSDIFF_I32 : SOP2_32 , "s_absdiff_i32", []>; } // End Defs = [SCC] -- 2.34.1