Craig Topper
eee7c0520c
[AVX-512] Replace masked 128/256-bit byte, word, and dword min/max builtins with selects and the older unmasked builtins.
...
llvm-svn: 284954
2016-10-23 23:57:30 +00:00
Craig Topper
4ef879ac2c
[AVX-512] Remove masked 128/256-bit packss/packus builtins and replace with selects and the older unmasked builtins.
...
llvm-svn: 284935
2016-10-23 07:35:39 +00:00
Craig Topper
4d63dfc286
[AVX-512] Replace masked 128/256-bit pavg builtins and replace with select and older unmasked builtins.
...
llvm-svn: 284929
2016-10-22 21:24:56 +00:00
Craig Topper
622c63614d
[AVX-512] Replace masked 128/256-bit saturating add/sub builtins with select and older unmasked builtins.
...
llvm-svn: 284928
2016-10-22 21:24:52 +00:00
Craig Topper
11dda92405
[AVX-512] Replace masked 128/256-bit vpmovzx/vpmovsx builtins with native IR.
...
llvm-svn: 284927
2016-10-22 21:24:48 +00:00
Craig Topper
eb1c0afa90
[AVX-512] Remove masked 128/256-bit pshufb builtins. Replace with a select and the older unmaksed builtins.
...
llvm-svn: 284925
2016-10-22 21:24:42 +00:00
Craig Topper
78a9c40326
[AVX-512] Remove builtins for 128/256-bit pabsb/pabsw. We can use a select and the older non-masked versions instead.
...
llvm-svn: 284924
2016-10-22 21:24:38 +00:00
Craig Topper
c2c7e42bfe
[AVX-512] Add typecasts to alignr intrinsics that were modified in r284920.
...
llvm-svn: 284923
2016-10-22 21:24:34 +00:00
Craig Topper
f6373bc6fd
[AVX-512] Remove masked 128/256-bit palignr builtins. We can just use a select in the header file with the older unmasked versions instead.
...
llvm-svn: 284920
2016-10-22 18:32:33 +00:00
Craig Topper
f43e4a1728
[AVX-512] Remove masked integer mullo builtins and replace with native IR.
...
llvm-svn: 280597
2016-09-03 19:19:49 +00:00
Craig Topper
0e18976b8d
[AVX-512] Remove masked integer add/sub builtins and replace with native IR.
...
llvm-svn: 280596
2016-09-03 18:29:35 +00:00
Craig Topper
351ed42795
[X86] Block pbroadcastq instructions on 32-bit targets instead of pbroadcastb.
...
Thanks to Simon Pilgrim for catching the mistake.
llvm-svn: 276564
2016-07-24 14:58:06 +00:00
Craig Topper
45db56c375
[X86] Add missing __x86_64__ qualifiers on a bunch of intrinsics that assume 64-bit GPRs are available.
...
Usages of these intrinsics in a 32-bit build results in assertions in the backend.
llvm-svn: 276249
2016-07-21 07:38:39 +00:00
Simon Pilgrim
f5a8837e1b
[X86][AVX512] Converted the VBROADCAST intrinsics to generic IR
...
llvm-svn: 274544
2016-07-05 12:59:33 +00:00
Michael Zuckerman
7dac6fbdf8
[Clang][BuiltIn][AVX512] adding _mm{|256|512}_mask_cvt{s|us|}epi16_storeu_epi8 intrinsics
...
Differential Revision: http://reviews.llvm.org/D21729
llvm-svn: 274532
2016-07-05 08:08:01 +00:00
Craig Topper
79f53ca0b5
[AVX512] Replace masked unpack builtins with shufflevector and selects.
...
llvm-svn: 273533
2016-06-23 06:36:42 +00:00
Craig Topper
9ce3ddf2e6
[AVX512] Use a __v8hi vector inside of _mm_setzero_hi to match its name. Probably no real functional change.
...
llvm-svn: 273389
2016-06-22 06:36:23 +00:00
Craig Topper
c89dda5938
[AVX512] Add missing typecasts to intrinsics.
...
llvm-svn: 273386
2016-06-22 06:36:16 +00:00
Craig Topper
26d5b87316
[X86] Add explicit typecasts to some intrinsics.
...
llvm-svn: 272466
2016-06-11 12:50:12 +00:00
Craig Topper
68738332b8
[AVX512] Implement 512-bit and masked shufflelo and shufflehi intrinsics directly with __builtin_shufflevector and __builtin_ia32_select. Also improve the formatting of the AVX2 version.
...
llvm-svn: 272452
2016-06-11 03:31:13 +00:00
Igor Breger
aadb876200
[AVX512] Emit select instruction instead of using x86 specific instrinsics.
...
This will allow us to remove the x86 instrinics from the backend.
Differential Revision: http://reviews.llvm.org/D21060
llvm-svn: 272141
2016-06-08 13:59:20 +00:00
Craig Topper
32578b7dcf
[AVX512][Builtin] Fix palignr intrinsic for avx512vlbw. The immediate should not be multiplied by 8.
...
The 512-bit version was fixed recently but this was missed.
llvm-svn: 270970
2016-05-27 06:59:39 +00:00
Craig Topper
1a15b6aff2
[AVX512] Add parentheses around macro arguments in AVX512VLBW intrinsics. Remove leading underscores from macro argument names. Add explicit typecasts to all macro arguments and return values. And finally reformat after all the adjustments.
...
This is a mostly mechanical change accomplished with a script. I tried to split out any changes to the typecasts that already existed into separate commits.
llvm-svn: 269743
2016-05-17 04:41:42 +00:00
Michael Zuckerman
e871785eb6
[Clang][avx512][Builtin] Adding intrinsics for cvtw2mask{128|256|512} instruction set
...
Differential Revision: http://reviews.llvm.org/D19766
llvm-svn: 268385
2016-05-03 14:12:23 +00:00
Michael Zuckerman
de8d3753d3
[clang][AVX512][Builtin] Adding intrinsics for the SAD instruction set.
...
Differential Revision: http://reviews.llvm.org/D19591
llvm-svn: 267942
2016-04-28 21:21:08 +00:00
Michael Zuckerman
533e065bdc
[Clang][BuiltIn][AVX512] Adding intrinsics fot align{d|q} and palignr instruction set
...
Differential Revision: http://reviews.llvm.org/D19588
llvm-svn: 267876
2016-04-28 12:47:30 +00:00
Michael Zuckerman
8938e836c4
[Clang][AVX512][BuiltIn] Adding support to intrinsics of VPERMD and VPERMW instruction set
...
Differential Revision: http://reviews.llvm.org/D19195
llvm-svn: 267380
2016-04-25 05:32:35 +00:00
Michael Zuckerman
c2b6128a8f
[Clang][AVX512][Builtin] Adding support for VBROADCAST and VPBROADCASTB/W/D/Q instruction set
...
Differential Revision: http://reviews.llvm.org/D19012
llvm-svn: 266195
2016-04-13 12:58:01 +00:00
Michael Zuckerman
074edd7c1e
[Clang][AVX512][Builtin] Adding supporting to intrinsics of cvt{b|d|q}2mask{128|256|512} and cvtmask2{b|d|q}{128|256|512} instruction set.
...
Differential Revision: http://reviews.llvm.org/D19009
llvm-svn: 266188
2016-04-13 10:49:37 +00:00
Michael Zuckerman
07525091e6
[Clang][AVX512][BuiltIn] Adding avx512 ( ptest{n}m{b|w}{128|256|512} ) builtin to clang
...
Differential Revision: http://reviews.llvm.org/D18924
llvm-svn: 265928
2016-04-11 10:22:07 +00:00
Michael Zuckerman
fa7ccc5bcf
[Clang][AVX512][BuiltIn] Adding avx512 ( store ) builtin to clang
...
Differential Revision: http://reviews.llvm.org/D18925
llvm-svn: 265895
2016-04-10 10:51:04 +00:00
Michael Zuckerman
def78750b7
[CLANG][avx512][BUILTIN] Adding fixupimm{pd|ps|sd|ss}
...
getexp{sd|ss} getmant{sd|ss} kunpck{di|si} loada{pd|ps} loaddqu{di|hi|qi|si} max{sd|ss} min{sd|ss} kmov16 builtins to clang
Differential Revision: http://reviews.llvm.org/D18215
llvm-svn: 264574
2016-03-28 12:23:09 +00:00
Michael Zuckerman
912be16a0e
[CLANG][AVX512][BUILTIN] Adding vpmultishiftqb{128|256|512}
...
Differential Revision: http://reviews.llvm.org/D17914
llvm-svn: 262817
2016-03-07 08:29:10 +00:00
Michael Zuckerman
1ad03e7f01
[CLANG][AVX512][BUILTIN] movdqu{qi|hi} {128|256|512}
...
Differential Revision: http://reviews.llvm.org/D17814
llvm-svn: 262609
2016-03-03 11:34:52 +00:00
Michael Zuckerman
abbe34bce6
[Clang][AVX512][BUILTIN] Adding PSRL{W|WI}{128|256|512}
...
Differential Revision: http://reviews.llvm.org/D17754
llvm-svn: 262593
2016-03-03 08:55:20 +00:00
Michael Zuckerman
3df95e711f
[CLANG] [AVX512] [BUILTIN] Adding PSRA{W|WI}{128|256|512}.
...
Differential Revision: http://reviews.llvm.org/D17706
llvm-svn: 262481
2016-03-02 12:06:06 +00:00
Michael Zuckerman
d15c95a793
[CLANG] [AVX512] [BUILTIN] Adding PSRAV
...
Differential Revision: http://reviews.llvm.org/D17699
llvm-svn: 262471
2016-03-02 09:05:46 +00:00
Michael Zuckerman
0165e7669c
[CLANG][AVX512][BUILTIN] Adding PSRLV builtin
...
Differential Revision: http://reviews.llvm.org/D17718
llvm-svn: 262326
2016-03-01 13:03:45 +00:00
Michael Zuckerman
431b0e18b4
[CLANG] [AVX512] [BUILTIN] Adding PSLL{V|W|Wi}{128|256|512} builtin
...
Differential Revision: http://reviews.llvm.org/D17685
llvm-svn: 262177
2016-02-28 07:39:34 +00:00
Michael Zuckerman
6c317515e4
[CLANG] [AVX512] [BUILTIN] Adding PSHUF{L|H}W{128|256|512} builtin to clang .
...
Differential Revision: http://reviews.llvm.org/D17539
llvm-svn: 261755
2016-02-24 17:39:35 +00:00
Michael Zuckerman
7a33dce4ef
[CLANG] [AVX512] [BUILTIN] Adding pmovzx{b|d|w}{w|d|q}{128|256|512} builtin to clang
...
Differential Revision: http://reviews.llvm.org/D16961
llvm-svn: 261471
2016-02-21 14:00:11 +00:00
Michael Zuckerman
7cdb72f7ea
[CLANG] [AVX512] [BUILTIN] Adding pmovsx{b|d|w}{w|d|q}{128|256|512} builtin to clang
...
Differential Revision: http://reviews.llvm.org/D16955
llvm-svn: 261196
2016-02-18 09:09:34 +00:00
Craig Topper
880f60b7b3
[X86] Header formatting fixes. NFC
...
llvm-svn: 252710
2015-11-11 08:00:39 +00:00
Sean Silva
e4c3760a9f
Clean up trailing whitespace in the builtin headers
...
llvm-svn: 247498
2015-09-12 02:55:19 +00:00
Asaf Badouh
c68e347c25
[X86][AVX512VLBW] add pack, cvt, mulhi and madd intrinsics
...
Differential Revision: http://reviews.llvm.org/D11642
llvm-svn: 243867
2015-08-03 07:51:00 +00:00
Asaf Badouh
1626545667
[x86] add 2 bit to ObjCOrBuiltinID and new intrinsics
...
add 2 bit to ObjCOrBuiltinID (changed from 11bits to 13bits), see discussion in
Add new intrinsics support that already covered by the BE.
All the intrinsics are covered by tests
Differential Revision: http://reviews.llvm.org/D10893
llvm-svn: 242144
2015-07-14 14:02:45 +00:00
Michael Kuperstein
e45af54cdb
[X86] Rename DEFAULT_FN_ATTR macro to __DEFAULT_FN_ATTR
...
llvm-svn: 241065
2015-06-30 13:36:19 +00:00
Eric Christopher
9fc7fb274e
Update the intel intrinsic headers to use the target attribute support.
...
This involved removing the conditional inclusion and replacing them
with target attributes matching the original conditional inclusion
and checks. The testcase update removes the macro checks for each
file and replaces them with usage of the __target__ attribute, e.g.:
int __attribute__((__target__(("sse3")))) foo(int a) {
_mm_mwait(0, 0);
return 4;
}
This usage does require the enclosing function have the requisite
__target__ attribute for inlining and code generation - also for
any macro intrinsic uses in the enclosing function. There's no change
for existing uses of the intrinsic headers.
llvm-svn: 239883
2015-06-17 07:09:32 +00:00
Eric Christopher
4d185168e9
Use a define for per-file function attributes for the Intel intrinsic headers.
...
This is a precursor to changing them to use the new target attribute
code.
llvm-svn: 239882
2015-06-17 07:09:20 +00:00
Elena Demikhovsky
35dc8c0944
AVX-512: added intrinsics for KNL and SKX
...
by Asaf Badouh (asaf.badouh@intel.com )
llvm-svn: 235986
2015-04-28 13:28:01 +00:00