summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-12-12 18:32:29 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-12-12 18:32:29 +0000
commiteb508f8ccb21caa7c9d0f6c2479d73ac79d6b25c (patch)
tree47d22a7fa4d66032d095b2aade44f59a883044e7 /llvm/lib/DebugInfo
parentf802b9324a64fe5f3c823342b87c3690f2f0ba01 (diff)
downloadbcm5719-llvm-eb508f8ccb21caa7c9d0f6c2479d73ac79d6b25c.tar.gz
bcm5719-llvm-eb508f8ccb21caa7c9d0f6c2479d73ac79d6b25c.zip
[SelectionDAG] Add a generic isSplatValue function
This patch introduces a generic function to determine whether a given vector type is known to be a splat value for the specified demanded elements, recursing up the DAG looking for BUILD_VECTOR or VECTOR_SHUFFLE splat patterns. It also keeps track of the elements that are known to be UNDEF - it returns true if all the demanded elements are UNDEF (as this may be useful under some circumstances), so this needs to be handled by the caller. A wrapper variant is also provided that doesn't take the DemandedElts or UndefElts arguments for cases where we just want to know if the SDValue is a splat or not (with/without UNDEFS). I had hoped to completely remove the X86 local version of this function, but I'm seeing some regressions in shift/rotate codegen that will take a little longer to fix and I hope to get this in sooner so I can continue work on PR38243 which needs more capable splat detection. Differential Revision: https://reviews.llvm.org/D55426 llvm-svn: 348953
Diffstat (limited to 'llvm/lib/DebugInfo')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud