Manman Ren
c94122e05b
Intrinsics: fix extract & insert when index is out of bound.
...
Now, all extract & insert intrinsics should have the correct and operation
to ignore higher bits.
rdar://15250497
llvm-svn: 193267
2013-10-23 20:33:14 +00:00
Manman Ren
be38b9e15f
_mm_extract_epi16: use "& 7" when index is out of bound.
...
This is in line with implementation of _mm_extract_pi16.
rdar://15250497
llvm-svn: 193187
2013-10-22 19:24:42 +00:00
Eli Friedman
f9d8c6cebb
Add _mm_stream_si64 intrinsic.
...
While I'm here, also fix the alignment computation for the whole family of
intrinsics.
PR17298.
llvm-svn: 191243
2013-09-23 23:38:39 +00:00
Stephen Lin
4362261b00
CHECK-LABEL-ify some code gen tests to improve diagnostic experience when tests fail.
...
llvm-svn: 188447
2013-08-15 06:47:53 +00:00
Manman Ren
5750c1c07e
X86 SSE Intrinsics: update header for sqrt_ss, rsqrt_ss and rcp_ss.
...
There intrinsics pass through the upper FP values from the input.
rdar://12558838
llvm-svn: 166743
2012-10-26 00:25:10 +00:00
Chad Rosier
87622b8b84
Get rid of storelv4si builtin as it can be expressed directly. This is general
...
goodness because it provides opportunites to cleanup things. For example,
uint64_t t1(__m128i vA)
{
uint64_t Alo;
_mm_storel_epi64((__m128i*)&Alo, vA);
return Alo;
}
was generating
movq %xmm0, -8(%rbp)
movq -8(%rbp), %rax
and now generates
movd %xmm0, %rax
rdar://11282581
llvm-svn: 155924
2012-05-01 18:11:51 +00:00
Craig Topper
74c17c65e4
Correctly check argument types for some vector macros in smmintrin.h. Put parentheses around uses of vector macro arguments.
...
llvm-svn: 153732
2012-03-30 07:01:17 +00:00
Craig Topper
97f042f2d6
Add _mm_minpos_epu16 to smmintrin.h. Fixes PR12399.
...
llvm-svn: 153726
2012-03-30 05:41:28 +00:00
NAKAMURA Takumi
3f62af76b9
test/CodeGen/sse-builtins.c: Make this host-independent to unbreak posix-unlike hosts.
...
Without -ffreestanding, clang tries to seek /usr/include/stdlib.h in host filesystem, even on Windows hosts.
llvm-svn: 139899
2011-09-16 03:55:36 +00:00
Eli Friedman
9bb51adcce
Tweak *mmintrin.h so that they don't make any bad assumptions about alignment (which probably has little effect in practice, but better to get it right). Make the load in _mm_loadh_pi and _mm_loadl_pi a single LLVM IR instruction to make optimizing easier for CodeGen.
...
rdar://10054986
llvm-svn: 139874
2011-09-15 23:15:27 +00:00