summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2016-04-09 14:51:26 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2016-04-09 14:51:26 +0000
commit1cc5712763e6af3aa1f181680a9359280e6adc14 (patch)
tree8ffd32585e824cff6e3665a70b26bd9143dba0cd /llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h
parentb3410db2b7dfd9ccec9d782b74477a1d0a2febad (diff)
downloadbcm5719-llvm-1cc5712763e6af3aa1f181680a9359280e6adc14.tar.gz
bcm5719-llvm-1cc5712763e6af3aa1f181680a9359280e6adc14.zip
[X86][XOP] Support for VPPERM 2-input shuffle mask decoding
This patch adds support for decoding XOP VPPERM instruction when it represents a basic shuffle. The mask decoding required the existing MCInstrLowering code to be updated to support binary shuffles - the implementation now matches what is done in X86InstrComments.cpp. Differential Revision: http://reviews.llvm.org/D18441 llvm-svn: 265874
Diffstat (limited to 'llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h')
-rw-r--r--llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h b/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h
index bd61e4ba2e8..a07b26c04f7 100644
--- a/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h
+++ b/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.h
@@ -32,6 +32,9 @@ void DecodePSHUFBMask(const Constant *C, SmallVectorImpl<int> &ShuffleMask);
void DecodeVPERMILPMask(const Constant *C, unsigned ElSize,
SmallVectorImpl<int> &ShuffleMask);
+/// Decode a VPPERM variable mask from an IR-level vector constant.
+void DecodeVPPERMMask(const Constant *C, SmallVectorImpl<int> &ShuffleMask);
+
/// Decode a VPERM W/D/Q/PS/PD mask from an IR-level vector constant.
void DecodeVPERMVMask(const Constant *C, MVT VT,
SmallVectorImpl<int> &ShuffleMask);
OpenPOWER on IntegriCloud