History log of /external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ebe69fe11e48d322045d5949c83283927a0d790b 23-Mar-2015 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r230699.

Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
37ed9c199ca639565f6ce88105f9e39e898d82d0 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r222494.

Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
467016e58d57021b14f2ae562d221f00b07cb254 28-Jan-2013 Craig Topper <craig.topper@gmail.com> Fix 256-bit PALIGNR comment decoding to understand that it works on independent 256-bit lanes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
4aee1bb2223e59efb814a694edaecd07a3418da0 28-Jan-2013 Craig Topper <craig.topper@gmail.com> Fix inconsistent usage of PALIGN and PALIGNR when referring to the same instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
200b306f2006533a0e7a0ca75cb3103620e7aa84 26-Jan-2013 Benjamin Kramer <benny.kra@googlemail.com> X86: Decode PALIGN operands so I don't have to do it in my head.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
d978c54e607fbcf426db20727d5fed71e1def2f6 06-May-2012 Craig Topper <craig.topper@gmail.com> Use MVT instead of EVT as the argument to all the shuffle decode functions. Simplify some of the decode functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
156f5bb56e2730013fcddf90e8cad0e5e3ee1928 06-May-2012 Craig Topper <craig.topper@gmail.com> Add shuffle decode support for VPERMQ/VPERMPD.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
6b28d356c56d656e8e4d23c71de80162bb2eba5e 03-May-2012 Craig Topper <craig.topper@gmail.com> Fix 256-bit vpshuflw and vpshufhw immediate encoding to handle undefs in the lower half correctly. Missed in r155982.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
a9a568a79dbaf7315db863b4808d31ad9f5f91dc 02-May-2012 Craig Topper <craig.topper@gmail.com> Add support for selecting AVX2 vpshuflw and vpshufhw. Add decoding support for AsmPrinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
2091df3d09bba0705fc62d020e5177a246d67978 17-Apr-2012 Craig Topper <craig.topper@gmail.com> Don't decode vperm2i128 or vperm2f128 into a shuffle if bit 3 or 7 of the immediate is set.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
a1ffc681ed7372bd371c44a6e186291b6416fe47 20-Mar-2012 Craig Topper <craig.topper@gmail.com> Factor out target shuffle mask decoding from getShuffleScalarElt and use a SmallVector of int instead of unsigned for shuffle mask in decode functions. Preparation for another change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
d156dc11f9acd83e3369c069d5006a0203be13d6 06-Feb-2012 Craig Topper <craig.topper@gmail.com> Add shuffle decoding support for 256-bit pshufd. Merge vpermilp* and pshufd decoding.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
3d8c2ce3e44bc161118a8922e7aa412ef00f6034 06-Dec-2011 Craig Topper <craig.topper@gmail.com> Clean up some of the shuffle decoding code for UNPCK instructions. Add instruction commenting for AVX/AVX2 forms for integer UNPCKs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
316cd2a2c57037ecca93bb20d939b89dad4c5243 30-Nov-2011 Craig Topper <craig.topper@gmail.com> Merge decoding of VPERMILPD and VPERMILPS shuffle masks. Merge X86ISD node type for VPERMILPD/PS. Add instruction selection support for VINSERTI128/VEXTRACTI128.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
36e36ace77cf84d7c8326957925550624b3fc89c 29-Nov-2011 Craig Topper <craig.topper@gmail.com> Fix issues in shuffle decoding around VPERM* instructions. Fix shuffle decoding for VSHUFPS/D for 256-bit types. Add pattern matching for memory forms of VPERMILPS/VPERMILPD.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
796c193768547459cd6cbd667c8a43fedd601022 22-Nov-2011 Craig Topper <craig.topper@gmail.com> More fixes to the X86InstComments for shuffle instructions. In particular add AVX flavors of many instructions and fix the destination operand for some of the existing AVX entries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
f7de577a08a705970f0fd8f3c1bb40f7040e4476 22-Nov-2011 Craig Topper <craig.topper@gmail.com> Fix shuffle decoding logic to handle UNPCKLPS/UNPCKLPD on 256-bit vectors correctly. Add support for decoding UNPCKHPS/UNPCKHPD for AVX 128-bit and 256-bit forms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
53cae1362dca8aa312c3e36c10b106ea7d349f93 12-Aug-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> The VPERM2F128 is a AVX instruction which permutes between two 256-bit
vectors. It operates on 128-bit elements instead of regular scalar
types. Recognize shuffles that are suitable for VPERM2F128 and teach
the x86 legalizer how to handle them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
2eb4c2bcadfbef9d3c4e2fbb6478ed5dc3d65524 29-Jul-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add DecodeShuffle shuffle support for VPERMIPD variantes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
4ea496846a84918c5e5cdd67ae43d6e2b0a110ea 27-Jul-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Recognize unpckh* masks and match 256-bit versions. The new versions are
different from the previous 128-bit because they work in lanes.
Update a few comments and add testcases

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
65b74e1d00eef81b596b4c207fba069aa1eb8214 21-Jul-2011 Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Add support for 256-bit versions of VPERMIL instruction. This is a new
instruction introduced in AVX, which can operate on 128 and 256-bit vectors.
It considers a 256-bit vector as two independent 128-bit lanes. It can permute
any 32 or 64 elements inside a lane, and restricts the second lane to
have the same permutation of the first one. With the improved splat support
introduced early today, adding codegen for this instruction enable more
efficient 256-bit code:

Instead of:
vextractf128 $0, %ymm0, %xmm0
punpcklbw %xmm0, %xmm0
punpckhbw %xmm0, %xmm0
vinsertf128 $0, %xmm0, %ymm0, %ymm1
vinsertf128 $1, %xmm0, %ymm1, %ymm0
vextractf128 $1, %ymm0, %xmm1
shufps $1, %xmm1, %xmm1
movss %xmm1, 28(%rsp)
movss %xmm1, 24(%rsp)
movss %xmm1, 20(%rsp)
movss %xmm1, 16(%rsp)
vextractf128 $0, %ymm0, %xmm0
shufps $1, %xmm0, %xmm0
movss %xmm0, 12(%rsp)
movss %xmm0, 8(%rsp)
movss %xmm0, 4(%rsp)
movss %xmm0, (%rsp)
vmovaps (%rsp), %ymm0
We get:
vextractf128 $0, %ymm0, %xmm0
punpcklbw %xmm0, %xmm0
punpckhbw %xmm0, %xmm0
vinsertf128 $0, %xmm0, %ymm0, %ymm1
vinsertf128 $1, %xmm0, %ymm1, %ymm0
vpermilps $85, %ymm0, %ymm0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
a20244d1bab2ae6dad1c82c16670d7eb1b3a9087 02-Mar-2011 David Greene <greened@obbligato.org> [AVX] Fix mask predicates for 256-bit UNPCKLPS/D and implement
missing patterns for them.

Add a SIMD test subdirectory to hold tests for SIMD instruction
selection correctness and quality.
'


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
99825b4455b7a7cb3672215c2ce9d2bc88d514c7 28-Feb-2011 Chris Lattner <sabre@nondot.org> fix a signed comparison warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
c4db4e5105ccd82df19f141957511f735a9be2d0 28-Feb-2011 David Greene <greened@obbligato.org> [AVX] Add decode support for VUNPCKLPS/D instructions, both 128-bit
and 256-bit forms. Because the number of elements in a vector
does not determine the vector type (4 elements could be v4f32 or
v4f64), pass the full type of the vector to decode routines.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp
583b68f34fd9bdb6114fa48dadc8def2ec96edac 17-Feb-2011 David Greene <greened@obbligato.org> [AVX] Recorganize X86ShuffleDecode into its own library
(LLVMX86Utils.a) to break cyclic library dependencies between
LLVMX86CodeGen.a and LLVMX86AsmParser.a. Previously this code was in
a header file and marked static but AVX requires some additional
functionality here that won't be used by all clients. Since including
unused static functions causes a gcc compiler warning, keeping it as a
header would break builds that use -Werror. Putting this in its own
library solves both problems at once.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp