OSDN Git Service

[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)
commit979b87d6b778b695f8dafb81b3ce96224e13fb53
tree5099a234edd4f625c43d70083f8a82e459c667a8
parent4bc3cc6dbf276873283025a69b03dca99c291e93
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349599 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCISelLowering.h
test/CodeGen/PowerPC/ppc64-P9-vabsd.ll