Asaf Badouh
c7cb880669
[X86][AVX512] [X86][AVX512] add convert float to half
...
convert float to half with mask/maskz for the reg to reg version and mask for the reg to mem version (there is no maskz version for reg to mem).
Differential Revision: http://reviews.llvm.org/D14113
llvm-svn: 251409
2015-10-27 15:37:17 +00:00
Igor Breger
684af8156c
AVX-512: Use correct extract vector length.
...
Bug https://llvm.org/bugs/show_bug.cgi?id=25318
Differential Revision: http://reviews.llvm.org/D14062
llvm-svn: 251285
2015-10-26 12:26:34 +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
Asaf Badouh
696e8e0bb7
[X86][AVX512DQ] add scalar fpclass
...
Differential Revision: http://reviews.llvm.org/D13769
llvm-svn: 250650
2015-10-18 11:04:38 +00:00
Igor Breger
cbb9550537
AVX512: Lowering i8/i16 vector CTLZ using the dword LZCNT vector instruction
...
Differential Revision: http://reviews.llvm.org/D13632
llvm-svn: 250649
2015-10-18 09:56:39 +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
defab3c1ef
AVX512: vpextrb/w/d/q and vpinsrb/w/d/q implementation.
...
This instructions doesn't have intrincis.
Added tests for lowering and encoding.
Differential Revision: http://reviews.llvm.org/D12317
llvm-svn: 249688
2015-10-08 12:55:01 +00:00
Igor Breger
1a6fd1cc0f
AVX512: Change encoding of vpshuflw and vpshufhw instructions. Implement WIG as W0 and not W1, like all other instruction have been implemented.
...
Add encoding tests.
Differential Revision: http://reviews.llvm.org/D13471
llvm-svn: 249521
2015-10-07 06:31:18 +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
Asaf Badouh
eaf2da14bf
[X86][AVX512] add masked version for RSQRT14 & RCP14 Scalar FP
...
Differential Revision: http://reviews.llvm.org/D12524
llvm-svn: 248147
2015-09-21 10:23:53 +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
Asaf Badouh
572bbceecc
[X86][AVX512DQ] Add fpclass instruction
...
Differential Revision: http://reviews.llvm.org/D12931
llvm-svn: 248115
2015-09-20 08:46:07 +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
a54a1a84dd
AVX512: kunpck encoding implementation
...
Added tests for encoding.
Differential Revision: http://reviews.llvm.org/D12061
llvm-svn: 247010
2015-09-08 13:10:00 +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
Asaf Badouh
d2c3599c5f
[X86][AVX512VLBW] add support in byte shift and SAD
...
add byte shift left/right
add SAD - compute sum of absolute differences
Differential Revision: http://reviews.llvm.org/D12479
llvm-svn: 246654
2015-09-02 14:21:54 +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
Elena Demikhovsky
9f83c7346f
AVX-512: store <4 x i1> and <2 x i1> values in memory
...
Enabled DAG pattern lowering for SKX with DQI predicate.
Differential Revision: http://reviews.llvm.org/D12550
llvm-svn: 246625
2015-09-02 09:20:58 +00:00
Igor Breger
5ea0a68115
AVX512: ktest implemantation
...
Added tests for encoding.
Differential Revision: http://reviews.llvm.org/D11979
llvm-svn: 246439
2015-08-31 13:30:19 +00:00
Igor Breger
f3ded811b2
AVX512: Implemented encoding and intrinsics for vdbpsadbw
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D12491
llvm-svn: 246436
2015-08-31 13:09:30 +00:00
Igor Breger
59ac339357
AVX512: kadd implementation
...
Added tests for encoding.
Differential Revision: http://reviews.llvm.org/D11973
llvm-svn: 246432
2015-08-31 11:50:23 +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
Marina Yatsina
7a4e1ba737
[X86] Fix bug in COMISD and COMISS definition in td files
...
COMISD should receive QWORD because it is defined as
(V)COMISD xmm1, xmm2/m64
COMISS should receive DWORD because it is defined as
(V)COMISS xmm1, xmm2/m32
Differential Revision: http://reviews.llvm.org/D11712
llvm-svn: 245551
2015-08-20 11:21:36 +00:00
Michael Liao
66233b7d79
Removing tailing whitespaces
...
llvm-svn: 244203
2015-08-06 09:06:20 +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
Igor Breger
f2460112ad
Implemented encoding and intrinsics of the following instructions
...
vunpckhps/pd, vunpcklps/pd,
vpunpcklbw, vpunpckhbw, vpunpcklwd, vpunpckhwd, vpunpckldq, vpunpckhdq, vpunpcklqdq, vpunpckhqdq
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11509
llvm-svn: 243246
2015-07-26 14:41:44 +00:00
Igor Breger
074a64e72c
AVX-512: Implemented encoding , DAG lowering and intrinsics for Integer Truncate with/without saturation
...
Added tests for DAG lowering ,encoding and intrinsic
Differential Revision: http://reviews.llvm.org/D11218
llvm-svn: 243122
2015-07-24 17:24:15 +00:00
Chandler Carruth
fe414353db
Revert r242990: "AVX-512: Implemented encoding , DAG lowering and ..."
...
This commit broke the build. Numerous build bots broken, and it was
blocking my progress so reverting.
It should be trivial to reproduce -- enable the BPF backend and it
should fail when running llvm-tblgen.
llvm-svn: 242992
2015-07-23 08:03:44 +00:00
Igor Breger
da1b2ea955
AVX-512: Implemented encoding , DAG lowering and intrinsics for Integer Truncate with/without saturation
...
Added tests for DAG lowering ,encoding and intrinsic
Differential Revision: http://reviews.llvm.org/D11218
llvm-svn: 242990
2015-07-23 07:39:21 +00:00
Asaf Badouh
a5b2e5e2a7
[X86][AVX512] add reduce/range/scalef/rndScale
...
include encoding and intrinsics
Differential Revision: http://reviews.llvm.org/D11222
llvm-svn: 242896
2015-07-22 12:00:43 +00:00
Igor Breger
f7fd547e27
AVX512 : Implemented VPMADDUBSW and VPMADDWD instruction ,
...
Added tests for intrinsics and encoding.
Differential Revision: http://reviews.llvm.org/D11351
llvm-svn: 242761
2015-07-21 07:11:28 +00:00
Elena Demikhovsky
0f370936a0
AVX-512: Added all AVX-512 forms of Vector Convert for Float/Double/Int/Long types.
...
In this patch I have only encoding. Intrinsics and DAG lowering will be in the next patch.
I temporary removed the old intrinsics test (just to split this patch).
Half types are not covered here.
Differential Revision: http://reviews.llvm.org/D11134
llvm-svn: 242023
2015-07-13 13:26:20 +00:00
Simon Pilgrim
8b756596fc
[X86][SSE] Use the general SMAX/SMIN/UMAX/UMIN opcodes and remove the X86 implementation
...
With the completion of D9746 there is now a common implementation of integer signed/unsigned min/max nodes, removing the need for the equivalent X86 specific implementations.
This patch removes the old X86ISD nodes, legalizes the relevant SSE2/SSE41/AVX2/AVX512 instructions for the ISD versions and converts the small amount of existing X86 code.
Differential Revision: http://reviews.llvm.org/D10947
llvm-svn: 241506
2015-07-06 20:30:47 +00:00
Asaf Badouh
c6f3c82ffc
[X86][AVX512] Multiply Packed Unsigned Integers with Round and Scale
...
pmulhrsw
review:
http://reviews.llvm.org/D10948
llvm-svn: 241443
2015-07-06 14:03:40 +00:00
Asaf Badouh
73f26f8ffc
[x86][AVX512] add Multiply High Op
...
include encoding and intrinsics tests.
review
http://reviews.llvm.org/D10896
llvm-svn: 241406
2015-07-05 12:23:20 +00:00
Igor Breger
15820b072b
AVX-512: Implemented missing encoding for FMA scalar instructions
...
Added tests for encoding
Differential Revision: http://reviews.llvm.org/D10865
llvm-svn: 241159
2015-07-01 13:24:28 +00:00
Elena Demikhovsky
30bc4ca313
AVX-512: all forms of SCATTER instruction on SKX,
...
encoding, intrinsics and tests.
llvm-svn: 240936
2015-06-29 12:14:24 +00:00
Igor Breger
a7a8e9a018
AVX-512: Implemented missing encoding and intrinsics for FMA instructions
...
Added tests for DAG lowering ,encoding and intrinsics
Differential Revision: http://reviews.llvm.org/D10796
llvm-svn: 240926
2015-06-29 09:10:00 +00:00
Asaf Badouh
7ec4b7a8bb
[x86][AVX512]
...
Add vscalef support
include encoding and intrinsics
review:
http://reviews.llvm.org/D10730
llvm-svn: 240906
2015-06-28 14:30:39 +00:00
Elena Demikhovsky
6a1a357f1f
AVX-512: Added all SKX forms of GATHER instructions.
...
Added intrinsics.
Added encoding and tests.
llvm-svn: 240905
2015-06-28 10:53:29 +00:00
Elena Demikhovsky
5e2f8c4231
AVX-512: Added all forms of VPABS instruction
...
Added all intrinsics, tests for encoding, tests for intrinsics.
llvm-svn: 240386
2015-06-23 08:19:46 +00:00
Elena Demikhovsky
55a997437c
AVX-512: added VPSHUFB instruction - all SKX forms
...
Added intrinsics and encoding tests.
llvm-svn: 240277
2015-06-22 13:00:42 +00:00
Elena Demikhovsky
ba5ab328e5
AVX-512: All forms of VCOPMRESS VEXPAND instructions,
...
encoding tests.
llvm-svn: 240272
2015-06-22 11:16:30 +00:00