Filipe Cabecinhas
e897d7e7c2
Fixed a few tests and moved a comment to its proper place
...
llvm-svn: 208665
2014-05-13 05:21:11 +00:00
Filipe Cabecinhas
5d289b48b1
Patched clang to emit x86 blends as shufflevectors.
...
Summary:
Most of the clang header patch by Simon Pilgrim @ SCEE.
Also fixed (or added) clang tests for these intrinsics.
LLVM tests to make sure we get the blend instruction out of these
shufflevectors are at http://reviews.llvm.org/D3600
Reviewers: eli.friedman, craig.topper, rafael
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D3601
llvm-svn: 208664
2014-05-13 02:37:02 +00:00
Michael J. Spencer
807cf41e2f
Fix test to not depend on llvm optimizations.
...
llvm-svn: 207062
2014-04-24 02:16:29 +00:00
Eli Friedman
3cd55f49ab
Fix argument types of some AVX2 intrinsics.
...
This fix makes our headers consistent with gcc.
PR17312.
llvm-svn: 191248
2013-09-23 23:52:04 +00:00
Juergen Ributzka
2c2dbf4542
Fix the name and the type of the argument for intrinisc
...
_mm256_broadcastsi128_si256 to align with the Intel documentation.
This fixes bug PR 16581 and rdar:14747994.
llvm-svn: 188609
2013-08-17 16:40:09 +00:00
Manman Ren
f865ba0c0e
X86: add more GATHER intrinsics in Clang
...
Support the following intrinsics:
_mm_i32gather_pd, _mm256_i32gather_pd,
_mm_i64gather_pd, _mm256_i64gather_pd,
_mm_i32gather_ps, _mm256_i32gather_ps,
_mm_i64gather_ps, _mm256_i64gather_ps,
_mm_i32gather_epi64, _mm256_i32gather_epi64,
_mm_i64gather_epi64, _mm256_i64gather_epi64,
_mm_i32gather_epi32, _mm256_i32gather_epi32,
_mm_i64gather_epi32, _mm256_i64gather_epi32
llvm-svn: 159410
2012-06-29 05:19:13 +00:00
Manman Ren
86c3250b82
X86: add more GATHER intrinsics in Clang
...
Corrected type for index of _mm256_mask_i32gather_pd
from 256-bit to 128-bit
Corrected types for src|dst|mask of _mm256_mask_i64gather_ps
from 256-bit to 128-bit
Support the following intrinsics:
_mm_mask_i32gather_epi64, _mm256_mask_i32gather_epi64,
_mm_mask_i64gather_epi64, _mm256_mask_i64gather_epi64,
_mm_mask_i32gather_epi32, _mm256_mask_i32gather_epi32,
_mm_mask_i64gather_epi32, _mm256_mask_i64gather_epi32
llvm-svn: 159403
2012-06-29 00:54:35 +00:00
Manman Ren
add5e9e289
X86: add GATHER intrinsics (AVX2) in Clang
...
Support the following intrinsics:
_mm_mask_i32gather_pd, _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd
_mm256_mask_i64gather_pd, _mm_mask_i32gather_ps, _mm256_mask_i32gather_ps
_mm_mask_i64gather_ps, _mm256_mask_i64gather_ps
llvm-svn: 159222
2012-06-26 19:55:09 +00:00
Craig Topper
26e74e50b6
Convert vperm2f128 and vperm2i128 intrinsics back to using llvm intrinsics. Unfortunately, these instructions have behavior that can't be modeled with shuffle vector.
...
llvm-svn: 154906
2012-04-17 05:16:56 +00:00
Craig Topper
8e57855ea0
Change _mm256_permute4x64_epi64 and _mm256_permute4x64_pd to use builtin_shufflevector instead of specific builtins. Old builtins will be removed from llvm now that vpermq/vpermpd are supported by shuffle lowering code.
...
llvm-svn: 154777
2012-04-15 22:18:10 +00:00
Craig Topper
e5ea3b0239
Remove vperm2f* and vperm2i builtins. Same effect can be achieved with builtin_shufflevector.
...
llvm-svn: 150064
2012-02-08 07:33:36 +00:00
Craig Topper
175543ac78
Add last of the AVX2 intrinsics except for gather.
...
llvm-svn: 147253
2011-12-24 17:20:15 +00:00
Craig Topper
a9387739aa
Add AVX2 permute intrinsics. Also add parentheses on some macro arguments in other intrinsic headers.
...
llvm-svn: 147242
2011-12-24 07:55:25 +00:00
Craig Topper
9a01e58447
Add AVX2 intrinsics for FP vbroadcast, vbroadcasti128, and vpblendd.
...
llvm-svn: 147240
2011-12-24 05:19:47 +00:00
Craig Topper
a6fdbd1807
Intrinsics for AVX2 unpack instructions.
...
llvm-svn: 147237
2011-12-24 03:58:43 +00:00
Craig Topper
f4bb952533
More AVX2 intrinsics for shift, psign, some shuffles, and psadbw.
...
llvm-svn: 147236
2011-12-24 03:28:57 +00:00
Craig Topper
235a365d58
Add AVX2 multiply intrinsics.
...
llvm-svn: 147219
2011-12-23 08:31:16 +00:00
Craig Topper
1f2460ad43
Add AVX2 intrinsics for max, min, sign extend, and zero extend.
...
llvm-svn: 147141
2011-12-22 09:18:58 +00:00
Craig Topper
a73baa8050
Add a few more AVX2 intrinsics and fix the type strings on a couple SSE intrinsics.
...
llvm-svn: 147048
2011-12-21 08:35:05 +00:00
Craig Topper
3fe5ac40db
Add AVX2 horizontal add/sub intrinsics.
...
llvm-svn: 147047
2011-12-21 08:17:40 +00:00
Craig Topper
a89747dd1e
Add AVX2 intrinsics for pavg, pblend, and pcmp instructions. Also remove unneeded builtins for SSE pcmp. Change SSE pcmpeqq and pcmpgtq to not use builtins and just use vector == and >.
...
llvm-svn: 146969
2011-12-20 09:55:26 +00:00
Eli Friedman
61221b72ee
Attempt to fix test in Release builds.
...
llvm-svn: 146898
2011-12-19 20:09:01 +00:00
Craig Topper
a557e1c122
Add AVX2 intrinsics for and, andn, or, and xor.
...
llvm-svn: 146862
2011-12-19 09:03:48 +00:00
Craig Topper
94aba2c260
More AVX2 intrinsic support including saturating add/sub and palignr.
...
llvm-svn: 146857
2011-12-19 07:03:25 +00:00
Craig Topper
dec792ebb5
Begin adding AVX2 intrinsics. Necessitated increasing the number of bits used to store builtinID when serializing identifier table.
...
llvm-svn: 146855
2011-12-19 05:04:33 +00:00