[PowerPC]Exploit P9 vabsdu for unsigned vselect patterns
authorKewen Lin <jedilyn@163.com>
Wed, 19 Dec 2018 03:04:07 +0000 (03:04 +0000)
committerKewen Lin <jedilyn@163.com>
Wed, 19 Dec 2018 03:04:07 +0000 (03:04 +0000)
commita6247e7cf426431e869e947532ba3f0fb9f6e8fc
tree45291729ed6df9847119f24b1f36f882f2cb91f7
parent5dcd70990ed6ed057704b501c666bc0378beb8f9
[PowerPC]Exploit P9 vabsdu for unsigned vselect patterns

For type v4i32/v8ii16/v16i8, do following transforms:
  (vselect (setcc a, b, setugt), (sub a, b), (sub b, a)) -> (vabsd a, b)
  (vselect (setcc a, b, setuge), (sub a, b), (sub b, a)) -> (vabsd a, b)
  (vselect (setcc a, b, setult), (sub b, a), (sub a, b)) -> (vabsd a, b)
  (vselect (setcc a, b, setule), (sub b, a), (sub a, b)) -> (vabsd a, b)

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

llvm-svn: 349599
llvm/lib/Target/PowerPC/PPCISelLowering.cpp
llvm/lib/Target/PowerPC/PPCISelLowering.h
llvm/test/CodeGen/PowerPC/ppc64-P9-vabsd.ll