summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMSubtarget.h
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-02-17 15:14:48 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-02-17 15:14:48 +0000
commit511d788a95750ad4f534bb0cdccf7a38526803bf (patch)
tree2aca2eac9c92e71b92b76aa25aaebadc751c4a2a /llvm/lib/Target/ARM/ARMSubtarget.h
parent7b35b781603b5d7d5be866a47d84fab8d96729ab (diff)
downloadbcm5719-llvm-511d788a95750ad4f534bb0cdccf7a38526803bf.tar.gz
bcm5719-llvm-511d788a95750ad4f534bb0cdccf7a38526803bf.zip
[DAGCombine] Recognise any_extend_vector_inreg and truncation style shuffle masks
During legalization we are often creating shuffles (via a build_vector scalarization stage) that are "any_extend_vector_inreg" style masks, and also other masks that are the equivalent of "truncate_vector_inreg" (if we had such a thing). This patch is an attempt to match these cases to help undo the effects of just leaving shuffle lowering to handle it - which typically means we lose track of the undefined elements of the shuffles resulting in an unnecessary extension+truncation stage for widened illegal types. The 2011-10-21-widen-cmp.ll regression will be fixed by making SIGN_EXTEND_VECTOR_IN_REG legal in SSE instead of lowering them to X86ISD::VSEXT (PR31712). Differential Revision: https://reviews.llvm.org/D29454 llvm-svn: 295451
Diffstat (limited to 'llvm/lib/Target/ARM/ARMSubtarget.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud