[SystemZ] Make better use of VLLEZ
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 20 Dec 2018 13:05:03 +0000 (13:05 +0000)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Thu, 20 Dec 2018 13:05:03 +0000 (13:05 +0000)
commit44d37ae38ce1cee03adaca6a62a3b3d2f8453227
tree91ab29daa23bb8be0b773f91ea4890c13801c1f7
parent8bb46b0f017d0486e7cd6b6e2b546405d0b886f8
[SystemZ] Make better use of VLLEZ

This patch fixes two deficiencies in current code that recognizes
the VLLEZ idiom:

- For the floating-point versions, we have ISel patterns that match
  on a bitconvert as the top node.  In more complex cases, that
  bitconvert may already have been merged into something else.
  Fix the patterns to match the inner nodes instead.

- For the 64-bit integer versions, depending on the surrounding code,
  we may get either a DAG tree based on JOIN_DWORDS or one based on
  INSERT_VECTOR_ELT.  Use a PatFrags to simply match both variants.

llvm-svn: 349749
llvm/lib/Target/SystemZ/SystemZInstrVector.td
llvm/lib/Target/SystemZ/SystemZOperators.td
llvm/test/CodeGen/SystemZ/vec-move-14.ll
llvm/test/CodeGen/SystemZ/vec-move-18.ll