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
|