summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineSink.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2016-01-06 23:24:40 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2016-01-06 23:24:40 +0000
commitbc82dedd26a37d72abe34b075ee9605006862ba8 (patch)
tree6f150fee7317c65f3d03637731ccf1676809518c /llvm/lib/CodeGen/MachineSink.cpp
parente83538bcf9060d17babd6a56d6e64807b14b1597 (diff)
downloadbcm5719-llvm-bc82dedd26a37d72abe34b075ee9605006862ba8.tar.gz
bcm5719-llvm-bc82dedd26a37d72abe34b075ee9605006862ba8.zip
[X86] Determine if target shuffle can contain zero elements
getTargetShuffleMask may return shuffle masks with SM_SentinelZero (-2) values (currently just for PSHUFB but VPERM2X128 as well with this patch). Although some calling functions can make use of this (mainly for shuffle combining), others can not and their inclusion makes shuffle mask comparisons more difficult. This patch adds a flag to getTargetShuffleMask to indicate if the calling function can't handle SM_SentinelZero; getTargetShuffleMask will then return false if it occurs to make handling much easier. I've tidied up some uses of getTargetShuffleMask to better indicate what is going on - more could be done but at present I don't have test cases to demonstrate it. Some upcoming patches will make use of this to both support more uses where SM_SentinelZero is not permitted (e.g. combineShuffleToAddSub), and also will allow us to add INSERTPS support to getTargetShuffleMask as part of better zero handling discussed in D14261. Differential Revision: http://reviews.llvm.org/D15378 llvm-svn: 256992
Diffstat (limited to 'llvm/lib/CodeGen/MachineSink.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud