Craig Topper
74964ec3da
[X86] Remove alternate CodeGenOnly version of (v)movq that declared the load size as i128mem. Change all uses to the use the i64mem version.
...
I'm sure this caused the load size to misprint in Intel syntax output. We were also inconsistent about which patterns used which instruction between VEX and EVEX.
There are two different reg/reg versions of movq, one from a GPR and one from the lower 64-bits of an XMM register. This changes the loading folding table to use the single i64mem memory form for folding both cases. But we need to use TB_NO_REVERSE to prevent a duplicate entry in the unfolding table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287622 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-22 05:31:43 +00:00
Craig Topper
51f05962d8
[X86] Remove duplicate instructions for (v)movq and replace with patterns on other instructions. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287519 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-21 04:07:56 +00:00
Craig Topper
061426e6a1
[X86] Add support for printing shuffle comments for VALIGN instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284915 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-22 06:51:56 +00:00
Simon Pilgrim
01109e8b73
[X86][AVX512] Add mask/maskz writemask support to subvector broadcast shuffle decode comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284821 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-21 12:14:24 +00:00
Craig Topper
180beb4eef
[AVX-512] Add shuffle comments for vbroadcast instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284305 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-15 16:26:07 +00:00
Justin Bogner
7d7a23e700
Replace a few more "fall through" comments with LLVM_FALLTHROUGH
...
Follow up to r278902. I had missed "fall through", with a space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278970 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-17 20:30:52 +00:00
Craig Topper
dbee0bfd2b
[X86] Rename VINSERTzrr to use a capital Z to match other instructions. NFC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275939 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-19 01:26:19 +00:00
Simon Pilgrim
2128e74875
[X86][AVX] Add VBROADCASTF128/VBROADCASTI128 shuffle comments support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275400 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-14 12:07:43 +00:00
Simon Pilgrim
4ad0017d61
[X86][AVX512] Add support for VPERMPD/VPERMQ masked shuffle comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274469 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 18:40:24 +00:00
Simon Pilgrim
7a63dcfa73
[X86][AVX512] Add support for 512-bit shuffle decoding of VPERMPD/VPERMQ
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274468 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 18:27:37 +00:00
Simon Pilgrim
91d79de045
[X86][AVX] Renamed VPERMILPI shuffle comment macros to be more specific
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274467 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 18:02:43 +00:00
Simon Pilgrim
260d596443
[X86][AVX512] Add support for VPALIGNR/PSHUFD/PSHUFHW/PSHUFLW masked shuffle comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274466 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 15:00:51 +00:00
Simon Pilgrim
b7dea04f9b
[X86][AVX512] Add support for UNPCK masked shuffle comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274464 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 14:26:21 +00:00
Simon Pilgrim
2f0ee9010f
[X86][AVX512] Add support for VPERM/VSHUF masked shuffle comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274462 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 13:55:41 +00:00
Simon Pilgrim
a145cca4d9
[X86][AVX512] Add support for PMOVZX masked shuffle comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274461 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 13:33:28 +00:00
Simon Pilgrim
50f3e3a607
[X86][AVX512] Add support for masked shuffle comments
...
This patch adds support for including the avx512 mask register information in the mask/maskz versions of shuffle instruction comments.
This initial version just adds support for MOVDDUP/MOVSHDUP/MOVSLDUP to reduce the mass of test regenerations, other shuffle instructions can be added in due course.
Differential Revision: http://reviews.llvm.org/D21953
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@274459 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-03 13:08:29 +00:00
Simon Pilgrim
9b042be8ab
[X86][AVX512] Tidied up VSHUFF32x4/VSHUFF64x2/VSHUFI32x4/VSHUFI64x2 comment generation
...
Now matches other shuffles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272464 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-11 11:18:38 +00:00
Craig Topper
e041e2676c
[AVX512] Add shuffle comment printing for masked VPERMPD/VPERMQ.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272371 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-10 05:12:40 +00:00
Craig Topper
0e4bc86c7c
[AVX512] Fix shuffle comment printing to handle the masked versions of some shuffles. Previously we were printing the mask operands as the register names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272367 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-10 04:48:05 +00:00
Simon Pilgrim
8f579ce1a6
[X86][AVX512] Added avx512 VPSLLDQ/VPSRLDQ instruction comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272319 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-09 22:03:15 +00:00
Craig Topper
b867bf3ea9
[AVX512] Fix shuffle decode printing for several instructions with write masks. There are still more bugs here with UNPCK and PALIGN for sure. But these were the easiest ones to fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272252 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-09 07:49:08 +00:00
Craig Topper
1b683873d6
[X86] Bring consistent naming to the SSE/AVX and AVX512 PALIGNR instructions. Then add shuffle decode printing for the EVEX forms which is made easier by having the naming structure more similar to other instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272249 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-09 07:06:38 +00:00
Craig Topper
1b4de08d95
[AVX512] Fix shuffle comment printing for EVEX encoded PSHUFD, PSHUFHW, and PSHUFLW.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271628 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-03 05:31:00 +00:00
Craig Topper
a798097945
[AVX512] Disable AVX2 VPERMD, VPERMQ, VPERMPS, and VPERMPD patterns when AVX512VL is enabled. Also add shuffle comment printing for AVX512VL VPERMPD/VPERMQ to keep some tests that now use these instructions instead of the AVX2 ones.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270317 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-21 06:07:18 +00:00
Simon Pilgrim
5009e4f85f
[X86][AVX512] Fixed VPERMILPD/VPERMILPS shuffle comments.
...
Fixed incorrect operands indices used to access src registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269221 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-11 18:53:44 +00:00
Simon Pilgrim
5c4ef289a9
[X86][SSE] Avoid repeatedly calling MCInst::getNumOperands(). NFCI.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269209 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-11 17:36:32 +00:00
Simon Pilgrim
cfd2a271ad
[X86][AVX512] Updated shuffle comments instruction macros to split writemask instructions. NFC
...
This will make it easier to support the different writemask cases in shuffle comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269174 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-11 11:55:12 +00:00
Simon Pilgrim
0f420ada79
[X86][SSE] Added TODO comment to add support for AVX512 mask registers to shuffle comments
...
This came up in discussion on D19198
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268915 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-09 13:30:16 +00:00
Simon Pilgrim
fe2d3ebbd3
[X86][SSE] Added support for MOVHPD/MOVLPD + MOVHPS/MOVLPS shuffle decoding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260034 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-07 15:39:22 +00:00
Simon Pilgrim
e647051d43
[X86][AVX512] Added support for VPMOVZX shuffle decoding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@260007 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-06 19:51:21 +00:00
Simon Pilgrim
14ac2af7eb
[X86][SSE] Moved shuffle decode CASE macros earlier. NFC.
...
To allow the helper functions to make use of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259997 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-06 17:02:15 +00:00
Simon Pilgrim
36f69d62b8
[X86][SSE] Refactored PMOVZX shuffle decoding to use scalar input types
...
First step towards being able to decode AVX512 PMOVZX instructions without a massive bloat in the shuffle decode switch statement.
This should also make it easier to decode X86ISD::VZEXT target shuffles in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259995 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-06 16:33:42 +00:00
Simon Pilgrim
b5a988525a
[X86][AVX512] Add support for AVX512 VMOVQ (load) shuffle decoding
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259496 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-02 13:32:56 +00:00
Simon Pilgrim
f939e55b79
[X86][AVX512] Add support for AVX512 VMOVD (load) shuffle decoding
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259430 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-01 23:04:05 +00:00
Simon Pilgrim
62167016ad
[X86][AVX512] Add support for AVX512 VMOVSD/VMOVSS shuffle decoding
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259427 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-01 22:26:28 +00:00
Simon Pilgrim
bf61370133
[X86][AVX512] Add support for AVX512 VINSERTPS shuffle decoding
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259420 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-01 22:05:50 +00:00
Craig Topper
31e470b254
[X86] Remove a return after llvm_unreachable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@256681 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-31 22:40:48 +00:00
Simon Pilgrim
c38f040496
Fix line endings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255459 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-13 12:49:48 +00:00
Simon Pilgrim
3f006c6658
[X86][AVX512] Added support for VMOVQ shuffle comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255442 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-12 21:46:23 +00:00
Simon Pilgrim
182b10a3d4
[X86][AVX512] Added AVX512 VMOVLHPS/VMOVHLPS shuffle decode comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253777 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-21 13:04:42 +00:00
Igor Breger
e20dfebf87
AVX512: Implemented encoding, intrinsics and DAG lowering for VMOVDDUP instructions.
...
Differential Revision: http://reviews.llvm.org/D14702
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253548 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-19 08:26:56 +00:00
Simon Pilgrim
5dff218941
[X86][AVX512] Added AVX512 SHUFP*/VPERMILP* shuffle decode comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253396 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 23:29:49 +00:00
Simon Pilgrim
ae2a51e7ef
[X86][AVX512] Added support for AVX512 UNPCK shuffle decode comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253391 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-17 22:35:45 +00:00
Simon Pilgrim
3305a140fd
[X86][SSE] Merged BLEND shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253268 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 23:03:18 +00:00
Simon Pilgrim
7dd95ec212
[X86][SSE] Merged ALIGNR/SLLDQ/SRLDQ shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253266 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 22:54:41 +00:00
Simon Pilgrim
f780acfa6b
[X86][SSE] Merged SHUF/PERM shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253260 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 22:39:27 +00:00
Simon Pilgrim
e80993a4e4
[X86][SSE] Merged UNPCK shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253258 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 22:21:10 +00:00
Igor Breger
99b62327bf
AVX512: Implemented encoding and intrinsics for VMOVSHDUP/VMOVSLDUP instructions.
...
Differential Revision: http://reviews.llvm.org/D14322
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253185 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-16 07:22:00 +00:00
Igor Breger
9b249d9b29
Revert r253160.
...
It broke layering violation. Reproducible with BUILD_SHARED_LIBS=ON.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253163 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-15 12:19:11 +00:00
Igor Breger
42aedb2949
AVX512: Implemented encoding and intrinsics for VMOVSHDUP/VMOVSLDUP instructions.
...
Differential Revision: http://reviews.llvm.org/D14322
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253160 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-15 07:23:13 +00:00