Igor Breger
7a000f5bb2
AVX512: Masked move intrinsic implementation.
...
Implemented intrinsic for the follow instructions (reg move) : VMOVDQU8/16, VMOVDQA32/64, VMOVAPS/PD.
Differential Revision: http://reviews.llvm.org/D16316
llvm-svn: 258398
2016-01-21 14:18:11 +00:00
Igor Breger
d3341f5021
AVX512: Store (MOVNTPD, MOVNTPS, MOVNTDQ) using non-temporal hint intrinsic implementation.
...
Differential Revision: http://reviews.llvm.org/D16350
llvm-svn: 258309
2016-01-20 13:11:47 +00:00
Asaf Badouh
d4a0d9a78c
[X86][AVX512]fix dag & add intrinsics for fixupimm
...
cover all width and types (pd/ps/sd/ss) of fixupimm instruction and inrtinsics
Differential Revision: http://reviews.llvm.org/D16313
llvm-svn: 258124
2016-01-19 14:21:39 +00:00
Igor Breger
239fda676c
AVX512: Masked store intrinsic implementation.
...
Implemented intrinsic for the follow instructions (store) : VMOVDQU8/16/32/64, VMOVDQA32/64, VMOVAPS/PD, VMOVUPS/PD.
Differential Revision: http://reviews.llvm.org/D16271
llvm-svn: 258047
2016-01-18 13:52:57 +00:00
Igor Breger
dd6522c653
AVX512 : Change v8i1 bitconvert GR8 pattern, remove unnecessary movzbl instruction.
...
code example , previous implementation.
movzbl %dil, %eax
kmovw %eax, %k0
new code
kmovw %edi, %k0
Differential Revision: http://reviews.llvm.org/D16287
llvm-svn: 258045
2016-01-18 12:02:45 +00:00
Michael Zuckerman
ac1b238b0a
[AVX512] Adding VPERMW/D/Q VPERMPS/D Intrinsics
...
Differential Revision: http://reviews.llvm.org/D16189
llvm-svn: 258008
2016-01-17 11:33:29 +00:00
Michael Zuckerman
ede597c753
[AVX512] Adding VPERMQ VPERMPD Intrinsics
...
Differential Revision: http://reviews.llvm.org/D16194
llvm-svn: 258006
2016-01-17 08:32:14 +00:00
Igor Breger
fc96331d88
AVX512: VMOVDQA32/64 (load) intrinsic implementation.
...
Differential Revision: http://reviews.llvm.org/D16142
llvm-svn: 257749
2016-01-14 07:56:04 +00:00
Michael Zuckerman
0e31b22487
[AVX512] Adding PMOVSXBD/W/Q , PMOVZSDQ and PMOVZSWD/Q Intrinsics .
...
Differential Revision: http://reviews.llvm.org/D16111
llvm-svn: 257604
2016-01-13 14:59:19 +00:00
Michael Zuckerman
43cea85db9
[AVX512] Adding PMOVZXBD/W/Q , PMOVZXDQ and PMOVZXWD/Q Intrinsics
...
Differential Revision:http://reviews.llvm.org/D16071
llvm-svn: 257601
2016-01-13 14:25:21 +00:00
Michael Zuckerman
2ddcbcf464
[AVX512] adding PROLQ and PROLD Intrinsics
...
Differential Revision: http://reviews.llvm.org/D16048
llvm-svn: 257523
2016-01-12 21:19:17 +00:00
Igor Breger
ea8e8e9f97
AVX512: VPMOVAPS/PD and VPMOVUPS/PD (load) intrinsic implementation.
...
Differential Revision: http://reviews.llvm.org/D16042
llvm-svn: 257463
2016-01-12 10:02:32 +00:00
Craig Topper
bfe13ff6ca
[AVX-512] Make spacing between comma and {sae} operand consistent in asm strings.
...
llvm-svn: 257299
2016-01-11 00:44:52 +00:00
Michael Zuckerman
885f61c534
[AVX512] add PRORVQ and PRORVD Intrinsic
...
Differential Revision:http://reviews.llvm.org/D15955
llvm-svn: 257283
2016-01-10 09:16:41 +00:00
Michael Zuckerman
4a1566827d
[AVX512] add PSHUFD Intrinsic
...
Differential Revision: http://reviews.llvm.org/D15934
llvm-svn: 257044
2016-01-07 09:24:12 +00:00
Michael Zuckerman
5cbae95916
[AVX512] add PSLLD and PSLLQ Intrinsic
...
Differential Revision: http://reviews.llvm.org/D15885
llvm-svn: 256840
2016-01-05 15:17:39 +00:00
Michael Zuckerman
cf0b6db9ef
[AVX512] add PSRAD and PSRAQ Intrinsic
...
Differential Revision: http://reviews.llvm.org/D15851
llvm-svn: 256754
2016-01-04 13:45:45 +00:00
Michael Zuckerman
0dc468880d
[AVX512] add PSRLQ and PSRLD Intrinsic
...
Differential Revision: http://reviews.llvm.org/D15770
llvm-svn: 256673
2015-12-31 15:22:04 +00:00
Asaf Badouh
fba562004b
[X86][AVX512] Lower broadcast sub vector to vector inrtrinsics
...
lower broadcast<type>x<vector> to shuffles.
there are two cases:
1.src is 128 bits and dest is 512 bits: in this case we will lower it to shuffle with imm = 0.
2.src is 256 bit and dest is 512 bits: in this case we will lower it to shuffle with imm = 01000100b (0x44) that way we will broadcast the 256bit source: ymm[0,1,2,3] => zmm[0,1,2,3,0,1,2,3] then it will mask it with the passthru value (in case it's mask op).
Differential Revision: http://reviews.llvm.org/D15790
llvm-svn: 256490
2015-12-28 08:26:26 +00:00
Asaf Badouh
5546f51011
[X86][AVX512] add fp scalar broadcast intrinsics
...
Differential Revision: http://reviews.llvm.org/D15790
llvm-svn: 256489
2015-12-28 08:09:25 +00:00
Igor Breger
3ab6f17530
AVX-512: implement kunpck intrinsics.
...
Differential Revision: http://reviews.llvm.org/D14821
llvm-svn: 254908
2015-12-07 13:25:18 +00:00
Asaf Badouh
41ecf460fa
[X86][AVX512] add vmovss/sd missing encoding
...
Differential Revision: http://reviews.llvm.org/D14701
llvm-svn: 254875
2015-12-06 13:26:56 +00:00
Asaf Badouh
2489f350c0
[X86][AVX512] add comi with Sae
...
add builtin_ia32_vcomisd and builtin_ia32_vcomisd
Differential Revision: http://reviews.llvm.org/D14331
llvm-svn: 254493
2015-12-02 08:17:51 +00:00
Elena Demikhovsky
f07df9fcac
AVX-512: Fixed a bug in VPERMT2* intrinsic.
...
It was wrong order of operands (from intrinsic to DAG node).
I added more strict type specification for instruction selection.
Differential Revision: http://reviews.llvm.org/D14942
llvm-svn: 254059
2015-11-25 08:17:56 +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
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
Igor Breger
aa40ddd3ba
AVX512: Implemented encoding and intrinsics for VMOVSHDUP/VMOVSLDUP instructions.
...
Differential Revision: http://reviews.llvm.org/D14322
llvm-svn: 253160
2015-11-15 07:23:13 +00:00
Asaf Badouh
f99c054ebc
revert rev. 252153 due to build failure on ubuntu
...
[X86][AVX512] add comi with Sae
llvm-svn: 252154
2015-11-05 08:55:54 +00:00
Asaf Badouh
7fdabf0a35
[X86][AVX512] add comi with Sae
...
add builtin_ia32_vcomisd and builtin_ia32_vcomisd
Differential Revision: http://reviews.llvm.org/D14331
llvm-svn: 252153
2015-11-05 08:45:06 +00:00
Asaf Badouh
7c52245660
[X86][AVX512] extend vcvtph2ps to support xmm/ymm and sae versions
...
Differential Revision: http://reviews.llvm.org/D13945
llvm-svn: 251018
2015-10-22 14:01:16 +00:00
Igor Breger
21296d230a
AVX512: Implemented encoding and intrinsics for VPBROADCASTB/W/D/Q instructions.
...
Differential Revision: http://reviews.llvm.org/D13884
llvm-svn: 250819
2015-10-20 11:56:42 +00:00
Igor Breger
d7bae451de
AVX512: Implemented DAG lowering for shuff62x2/shufi62x2 instructions ( shuffle packed values at 128-bit granularity )
...
Differential Revision: http://reviews.llvm.org/D13648
llvm-svn: 250400
2015-10-15 13:29:07 +00:00
Igor Breger
b4bb190eed
AVX512: Implemented encoding and intrinsics for vpternlogd/q.
...
Differential Revision: http://reviews.llvm.org/D13768
llvm-svn: 250396
2015-10-15 12:33:24 +00:00
Igor Breger
78741a1b1e
AVX512: Implemented encoding and intrinsics for VPERMILPS/PD instructions.
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D12690
llvm-svn: 249261
2015-10-04 07:20:41 +00:00
Igor Breger
b7e1f9d680
AVX512: Implemented encoding and intrinsics for vcmpss/sd.
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D12593
llvm-svn: 248121
2015-09-20 15:15:10 +00:00
Asaf Badouh
2744d21fb8
[X86][AVX512] extend support in Scalar conversion
...
add scalar FP to Int conversion with truncation intrinsics
add scalar conversion FP32 from/to FP64 intrinsics
add rounding mode and SAE mode encoding for these intrinsics
Differential Revision: http://reviews.llvm.org/D12665
llvm-svn: 248117
2015-09-20 14:31:19 +00:00
Igor Breger
4c4cd789c9
AVX512: vsqrtss/sd encoding and intrinsics implementation.
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D12102
llvm-svn: 248116
2015-09-20 09:13:41 +00:00
Igor Breger
1d55f20bee
AVX512: Implemented intrinsics for vshuff32x4, vshuff64x2, vshufi64x2, vshufi32x4
...
Added tests for intrinsics.
Differential Revision: http://reviews.llvm.org/D12525
llvm-svn: 248113
2015-09-20 07:18:53 +00:00
Igor Breger
0ede3cbb5c
AVX512: Implement instructions encoding, lowering and intrinsics
...
vinserti64x4, vinserti64x2, vinserti32x8, vinserti32x4, vinsertf64x4, vinsertf64x2, vinsertf32x8, vinsertf32x4
Added tests for encoding, lowering and intrinsics.
Differential Revision: http://reviews.llvm.org/D11893
llvm-svn: 248111
2015-09-20 06:52:42 +00:00
Igor Breger
7f69a99c54
AVX512: Implemented encoding and intrinsics for
...
vextracti64x4 ,vextracti64x2, vextracti32x8, vextracti32x4, vextractf64x4, vextractf64x2, vextractf32x8, vextractf32x4
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11802
llvm-svn: 247276
2015-09-10 12:54:54 +00:00
Renato Golin
db7ea86bf4
Revert "AVX512: Implemented encoding and intrinsics for vextracti64x4 ,vextracti64x2, vextracti32x8, vextracti32x4, vextractf64x4, vextractf64x2, vextractf32x8, vextractf32x4 Added tests for intrinsics and encoding."
...
This reverts commit r247149, as it was breaking numerous buildbots of varied architectures.
llvm-svn: 247177
2015-09-09 19:44:40 +00:00
Igor Breger
ac29a82921
AVX512: Implemented encoding and intrinsics for
...
vextracti64x4 ,vextracti64x2, vextracti32x8, vextracti32x4, vextractf64x4, vextractf64x2, vextractf32x8, vextractf32x4
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11802
llvm-svn: 247149
2015-09-09 14:35:09 +00:00
Igor Breger
0dcd8bcf24
AVX512: Implemented encoding and intrinsics for vplzcntq, vplzcntd, vpconflictq, vpconflictd
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11931
llvm-svn: 246750
2015-09-03 09:05:31 +00:00
Igor Breger
1e58e8adf6
AVX512: Implemented encoding and intrinsics for VGETMANTPD/S , VGETMANTSD/S instructions
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11593
llvm-svn: 246642
2015-09-02 11:18:55 +00:00
Igor Breger
a6297c701e
AVX512: Implemented encoding and intrinsics for vshufps/d.
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11709
llvm-svn: 246640
2015-09-02 10:50:58 +00:00
Igor Breger
2ae0fe3ac3
AVX512: Implemented encoding and intrinsics for vpalignr
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D12270
llvm-svn: 246428
2015-08-31 11:14:02 +00:00
Igor Breger
8352a0ddf2
AVX512: Implemented encoding and intrinsics for VGETEXPSS/D instructions
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11528
llvm-svn: 243390
2015-07-28 06:53:28 +00:00