Andrew V. Tischenko
75745d0c3e
This patch closes PR#32216: Better testing of schedule model instruction latencies/throughputs.
...
The details are here: https://reviews.llvm.org/D30941
llvm-svn: 300311
2017-04-14 07:44:23 +00:00
Craig Topper
3dcf45f08d
[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.
llvm-svn: 287622
2016-11-22 05:31:43 +00:00
Craig Topper
0dfc09372f
[X86] Remove duplicate instructions for (v)movq and replace with patterns on other instructions. NFC
...
llvm-svn: 287519
2016-11-21 04:07:56 +00:00
Craig Topper
b084c90a18
[X86] Add support for printing shuffle comments for VALIGN instructions.
...
llvm-svn: 284915
2016-10-22 06:51:56 +00:00
Simon Pilgrim
32b06235da
[X86][AVX512] Add mask/maskz writemask support to subvector broadcast shuffle decode comments
...
llvm-svn: 284821
2016-10-21 12:14:24 +00:00
Craig Topper
dde865afb5
[AVX-512] Add shuffle comments for vbroadcast instructions.
...
llvm-svn: 284305
2016-10-15 16:26:07 +00:00
Justin Bogner
cd1d5aaf2e
Replace a few more "fall through" comments with LLVM_FALLTHROUGH
...
Follow up to r278902. I had missed "fall through", with a space.
llvm-svn: 278970
2016-08-17 20:30:52 +00:00
Craig Topper
6189d3ecd4
[X86] Rename VINSERTzrr to use a capital Z to match other instructions. NFC
...
llvm-svn: 275939
2016-07-19 01:26:19 +00:00
Simon Pilgrim
a76a8e50e5
[X86][AVX] Add VBROADCASTF128/VBROADCASTI128 shuffle comments support
...
llvm-svn: 275400
2016-07-14 12:07:43 +00:00
Simon Pilgrim
68ea80649b
[X86][AVX512] Add support for VPERMPD/VPERMQ masked shuffle comments
...
llvm-svn: 274469
2016-07-03 18:40:24 +00:00
Simon Pilgrim
a0d73835b2
[X86][AVX512] Add support for 512-bit shuffle decoding of VPERMPD/VPERMQ
...
llvm-svn: 274468
2016-07-03 18:27:37 +00:00
Simon Pilgrim
5080e7f56c
[X86][AVX] Renamed VPERMILPI shuffle comment macros to be more specific
...
llvm-svn: 274467
2016-07-03 18:02:43 +00:00
Simon Pilgrim
dbd6db0dc7
[X86][AVX512] Add support for VPALIGNR/PSHUFD/PSHUFHW/PSHUFLW masked shuffle comments
...
llvm-svn: 274466
2016-07-03 15:00:51 +00:00
Simon Pilgrim
598bdb6bfe
[X86][AVX512] Add support for UNPCK masked shuffle comments
...
llvm-svn: 274464
2016-07-03 14:26:21 +00:00
Simon Pilgrim
1f59076196
[X86][AVX512] Add support for VPERM/VSHUF masked shuffle comments
...
llvm-svn: 274462
2016-07-03 13:55:41 +00:00
Simon Pilgrim
68f438a036
[X86][AVX512] Add support for PMOVZX masked shuffle comments
...
llvm-svn: 274461
2016-07-03 13:33:28 +00:00
Simon Pilgrim
7c2fbdc101
[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
llvm-svn: 274459
2016-07-03 13:08:29 +00:00
Simon Pilgrim
d386941676
[X86][AVX512] Tidied up VSHUFF32x4/VSHUFF64x2/VSHUFI32x4/VSHUFI64x2 comment generation
...
Now matches other shuffles
llvm-svn: 272464
2016-06-11 11:18:38 +00:00
Craig Topper
200d237e57
[AVX512] Add shuffle comment printing for masked VPERMPD/VPERMQ.
...
llvm-svn: 272371
2016-06-10 05:12:40 +00:00
Craig Topper
89c1761474
[AVX512] Fix shuffle comment printing to handle the masked versions of some shuffles. Previously we were printing the mask operands as the register names.
...
llvm-svn: 272367
2016-06-10 04:48:05 +00:00
Simon Pilgrim
643734c565
[X86][AVX512] Added avx512 VPSLLDQ/VPSRLDQ instruction comments
...
llvm-svn: 272319
2016-06-09 22:03:15 +00:00
Craig Topper
6f7288dc44
[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.
...
llvm-svn: 272252
2016-06-09 07:49:08 +00:00
Craig Topper
7a2993093e
[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.
...
llvm-svn: 272249
2016-06-09 07:06:38 +00:00
Craig Topper
01f53b1773
[AVX512] Fix shuffle comment printing for EVEX encoded PSHUFD, PSHUFHW, and PSHUFLW.
...
llvm-svn: 271628
2016-06-03 05:31:00 +00:00
Craig Topper
22ae353207
[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.
...
llvm-svn: 270317
2016-05-21 06:07:18 +00:00
Simon Pilgrim
6ce35dd9ea
[X86][AVX512] Fixed VPERMILPD/VPERMILPS shuffle comments.
...
Fixed incorrect operands indices used to access src registers
llvm-svn: 269221
2016-05-11 18:53:44 +00:00
Simon Pilgrim
3016d9e9e1
[X86][SSE] Avoid repeatedly calling MCInst::getNumOperands(). NFCI.
...
llvm-svn: 269209
2016-05-11 17:36:32 +00:00
Simon Pilgrim
41c05c019e
[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
llvm-svn: 269174
2016-05-11 11:55:12 +00:00
Simon Pilgrim
af742d51ad
[X86][SSE] Added TODO comment to add support for AVX512 mask registers to shuffle comments
...
This came up in discussion on D19198
llvm-svn: 268915
2016-05-09 13:30:16 +00:00
Simon Pilgrim
a3d674470c
[X86][SSE] Added support for MOVHPD/MOVLPD + MOVHPS/MOVLPS shuffle decoding.
...
llvm-svn: 260034
2016-02-07 15:39:22 +00:00
Simon Pilgrim
0acc32a3b3
[X86][AVX512] Added support for VPMOVZX shuffle decoding.
...
llvm-svn: 260007
2016-02-06 19:51:21 +00:00
Simon Pilgrim
bfa5f236e4
[X86][SSE] Moved shuffle decode CASE macros earlier. NFC.
...
To allow the helper functions to make use of them.
llvm-svn: 259997
2016-02-06 17:02:15 +00:00
Simon Pilgrim
e1b6db901f
[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.
llvm-svn: 259995
2016-02-06 16:33:42 +00:00
Simon Pilgrim
96fe4ef5f7
[X86][AVX512] Add support for AVX512 VMOVQ (load) shuffle decoding
...
llvm-svn: 259496
2016-02-02 13:32:56 +00:00
Simon Pilgrim
5be17b6e3e
[X86][AVX512] Add support for AVX512 VMOVD (load) shuffle decoding
...
llvm-svn: 259430
2016-02-01 23:04:05 +00:00
Simon Pilgrim
f5c23ad3d7
[X86][AVX512] Add support for AVX512 VMOVSD/VMOVSS shuffle decoding
...
llvm-svn: 259427
2016-02-01 22:26:28 +00:00
Simon Pilgrim
025a3d857a
[X86][AVX512] Add support for AVX512 VINSERTPS shuffle decoding
...
llvm-svn: 259420
2016-02-01 22:05:50 +00:00
Craig Topper
74658dfaad
[X86] Remove a return after llvm_unreachable.
...
llvm-svn: 256681
2015-12-31 22:40:48 +00:00
Simon Pilgrim
3e0c022aed
Fix line endings
...
llvm-svn: 255459
2015-12-13 12:49:48 +00:00
Simon Pilgrim
052191dd82
[X86][AVX512] Added support for VMOVQ shuffle comments
...
llvm-svn: 255442
2015-12-12 21:46:23 +00:00
Simon Pilgrim
d5a154424b
[X86][AVX512] Added AVX512 VMOVLHPS/VMOVHLPS shuffle decode comments.
...
llvm-svn: 253777
2015-11-21 13:04:42 +00:00
Igor Breger
1f78296869
AVX512: Implemented encoding, intrinsics and DAG lowering for VMOVDDUP instructions.
...
Differential Revision: http://reviews.llvm.org/D14702
llvm-svn: 253548
2015-11-19 08:26:56 +00:00
Simon Pilgrim
2da4178737
[X86][AVX512] Added AVX512 SHUFP*/VPERMILP* shuffle decode comments.
...
llvm-svn: 253396
2015-11-17 23:29:49 +00:00
Simon Pilgrim
8483df6e24
[X86][AVX512] Added support for AVX512 UNPCK shuffle decode comments.
...
llvm-svn: 253391
2015-11-17 22:35:45 +00:00
Simon Pilgrim
13d3a20ad7
[X86][SSE] Merged BLEND shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes.
llvm-svn: 253268
2015-11-16 23:03:18 +00:00
Simon Pilgrim
b9ada27052
[X86][SSE] Merged ALIGNR/SLLDQ/SRLDQ shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
llvm-svn: 253266
2015-11-16 22:54:41 +00:00
Simon Pilgrim
5883a73f18
[X86][SSE] Merged SHUF/PERM shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
llvm-svn: 253260
2015-11-16 22:39:27 +00:00
Simon Pilgrim
66e43ee289
[X86][SSE] Merged UNPCK shuffle decode comments. NFC.
...
Now that we can recognise different vector sizes - will make future AVX512 additions easier.
llvm-svn: 253258
2015-11-16 22:21:10 +00:00
Igor Breger
24cab0fa06
AVX512: Implemented encoding and intrinsics for VMOVSHDUP/VMOVSLDUP instructions.
...
Differential Revision: http://reviews.llvm.org/D14322
llvm-svn: 253185
2015-11-16 07:22:00 +00:00
Igor Breger
3ff8ef9eb7
Revert r253160.
...
It broke layering violation. Reproducible with BUILD_SHARED_LIBS=ON.
llvm-svn: 253163
2015-11-15 12:19:11 +00:00