diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/EvergreenInstructions.td')
-rw-r--r-- | llvm/lib/Target/AMDGPU/EvergreenInstructions.td | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/AMDGPU/EvergreenInstructions.td b/llvm/lib/Target/AMDGPU/EvergreenInstructions.td index 792e26d21f98d..97104a242d8c1 100644 --- a/llvm/lib/Target/AMDGPU/EvergreenInstructions.td +++ b/llvm/lib/Target/AMDGPU/EvergreenInstructions.td @@ -69,11 +69,11 @@ multiclass RAT_ATOMIC<bits<6> op_ret, bits<6> op_noret, string name> { def _RTN: CF_MEM_RAT <op_ret, 0, 0xf, (ins R600_Reg128:$rw_gpr, R600_TReg32_X:$index_gpr), (outs R600_Reg128:$out_gpr), - name ## "_RTN" ## " $rw_gpr, $index_gpr", [] >; + name # "_RTN" # " $rw_gpr, $index_gpr", [] >; def _NORET: CF_MEM_RAT <op_noret, 0, 0xf, (ins R600_Reg128:$rw_gpr, R600_TReg32_X:$index_gpr), (outs R600_Reg128:$out_gpr), - name ## " $rw_gpr, $index_gpr", [] >; + name # " $rw_gpr, $index_gpr", [] >; } } @@ -118,11 +118,12 @@ def LOG_IEEE_eg : LOG_IEEE_Common<0x83>; def RECIP_CLAMPED_eg : RECIP_CLAMPED_Common<0x84>; def RECIPSQRT_IEEE_eg : RECIPSQRT_IEEE_Common<0x89>; def : RsqPat<RECIPSQRT_IEEE_eg, f32>; +def : SqrtPat<RECIPSQRT_IEEE_eg, RECIP_IEEE_eg>; + def SIN_eg : SIN_Common<0x8D>; def COS_eg : COS_Common<0x8E>; def : POW_Common <LOG_IEEE_eg, EXP_IEEE_eg, MUL>; -def : EGPat<(fsqrt f32:$src), (MUL $src, (RECIPSQRT_CLAMPED_eg $src))>; } // End SubtargetPredicate = isEG //===----------------------------------------------------------------------===// @@ -421,6 +422,7 @@ def MULADD_UINT24_eg : R600_3OP <0x10, "MULADD_UINT24", def : UMad24Pat<MULADD_UINT24_eg>; def BIT_ALIGN_INT_eg : R600_3OP <0xC, "BIT_ALIGN_INT", [], VecALU>; +def : FSHRPattern <BIT_ALIGN_INT_eg>; def : ROTRPattern <BIT_ALIGN_INT_eg>; def MULADD_eg : MULADD_Common<0x14>; def MULADD_IEEE_eg : MULADD_IEEE_Common<0x18>; @@ -570,7 +572,7 @@ class R600_LDS_1A1D_NORET <bits<6> lds_op, string name, list<dag> pattern> : } class R600_LDS_1A1D_RET <bits<6> lds_op, string name, list<dag> pattern> : - R600_LDS_1A1D <lds_op, (outs R600_Reg32:$dst), name##"_RET", pattern, "OQAP, "> { + R600_LDS_1A1D <lds_op, (outs R600_Reg32:$dst), name#"_RET", pattern, "OQAP, "> { let BaseOp = name; let usesCustomInserter = 1; |