[AMDGPU] Simplify negated condition
authorStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>
Thu, 13 Dec 2018 03:17:40 +0000 (03:17 +0000)
committerStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>
Thu, 13 Dec 2018 03:17:40 +0000 (03:17 +0000)
commit6071e1aa581eff5447ce99e5e599b59ea2ce4a62
treebcb53d5f88080f2cbb1204c398b2654627132535
parent54c01ad6a9e75f01765a45db5fe9775570707079
[AMDGPU] Simplify negated condition

Optimize sequence:

  %sel = V_CNDMASK_B32_e64 0, 1, %cc
  %cmp = V_CMP_NE_U32 1, %1
  $vcc = S_AND_B64 $exec, %cmp
  S_CBRANCH_VCC[N]Z
=>
  $vcc = S_ANDN2_B64 $exec, %cc
  S_CBRANCH_VCC[N]Z

It is the negation pattern inserted by DAGCombiner::visitBRCOND() in the
rebuildSetCC().

Differential Revision: https://reviews.llvm.org/D55402

llvm-svn: 349003
llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp
llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
llvm/lib/Target/AMDGPU/SIRegisterInfo.h
llvm/test/CodeGen/AMDGPU/optimize-negated-cond-exec-masking.mir [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/optimize-negated-cond.ll [new file with mode: 0644]