From: Wei Ding Date: Wed, 24 Aug 2016 14:59:47 +0000 (+0000) Subject: AMDGPU : Add V_SAD_U32 instruction pattern. X-Git-Tag: llvmorg-4.0.0-rc1~11581 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1041a646a9a2eeb16781da595509cd707ca60fda;p=platform%2Fupstream%2Fllvm.git AMDGPU : Add V_SAD_U32 instruction pattern. Differential Revision: http://reviews.llvm.org/D23069 llvm-svn: 279629 --- diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td b/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td index 3944fdb..a6e662c 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td @@ -172,6 +172,12 @@ class HasOneUseBinOp : PatFrag< [{ return N->hasOneUse(); }] >; +class HasOneUseTernaryOp : PatFrag< + (ops node:$src0, node:$src1, node:$src2), + (op $src0, $src1, $src2), + [{ return N->hasOneUse(); }] +>; + //===----------------------------------------------------------------------===// // Load/Store Pattern Fragments //===----------------------------------------------------------------------===// @@ -618,8 +624,10 @@ def smax_oneuse : HasOneUseBinOp; def smin_oneuse : HasOneUseBinOp; def umax_oneuse : HasOneUseBinOp; def umin_oneuse : HasOneUseBinOp; +def sub_oneuse : HasOneUseBinOp; } // Properties = [SDNPCommutative, SDNPAssociative] +def select_oneuse : HasOneUseTernaryOp