summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/sse-builtins.c
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Ensure load/store tests unaligned pointers really are align 1Simon Pilgrim2016-05-301-2/+2
| | | | llvm-svn: 271227
* [X86][SSE] Added missing tests (merge failure)Simon Pilgrim2016-05-301-4/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D20617 llvm-svn: 271219
* [X86] Replace unaligned store builtins in SSE/AVX intrinsic files with code ↵Craig Topper2016-05-301-3/+6
| | | | | | | | that will compile to a native unaligned store. Remove the builtins since they are no longer used. Intrinsics will be removed from llvm in a future commit. llvm-svn: 271214
* [X86][SSE] Updated _mm_store_ps1 test to match _mm_store1_psSimon Pilgrim2016-05-251-1/+1
| | | | llvm-svn: 270679
* [X86] Update test cases to make sure storeu builtins use the storeu ↵Craig Topper2016-05-251-2/+2
| | | | | | | | instrinsics. We were previously matching on other stores in the IR from this being an -O0 test. We should probably look into making the storeu builtins just emit a normal store with an alignment of 1. llvm-svn: 270664
* [X86][SSE] Sync with llvm/test/CodeGen/X86/sse-intrinsics-fast-isel.llSimon Pilgrim2016-05-191-150/+681
| | | | | | sse-builtins.c now just covers SSE1 intrinsics llvm-svn: 270083
* [X86][SSE] Tidied up MMX/SSE/SSE2 builtin tests to the correct test fileSimon Pilgrim2016-05-171-301/+42
| | | | llvm-svn: 269852
* [X86] Fix a few intrinsic tests to use the return type that matches the ↵Craig Topper2016-05-171-4/+4
| | | | | | intrinsic they're testing. llvm-svn: 269735
* [X86] Add 'pause' builtin that's already in llvm and use it instead of ↵Craig Topper2015-11-111-0/+6
| | | | | | inline assembly to implement _mm_pause. llvm-svn: 252712
* [X86] Use __builtin_ia32_paddq and __builtin_ia32_psubq to implement a ↵Craig Topper2015-11-111-0/+18
| | | | | | couple intrinsics that were supposed to operate on MMX registers. Otherwise we end up operating on GPRs. Throw in a test for _mm_mul_su32 while I was there. llvm-svn: 252711
* [X86][SSSE3] Added SSSE3 IR + assembly codegen builtin testsSimon Pilgrim2015-09-061-10/+0
| | | | | | Transferred SSSE3 instructions from sse-builtins.c llvm-svn: 246948
* [X86]][SSE3] Added SSE41 IR + assembly codegen builtin testsSimon Pilgrim2015-09-061-162/+0
| | | | | | Transferred SSE41 instructions from sse-builtins.c llvm-svn: 246947
* [X86][SSE] Add _mm_undefined_* intrinsicsSimon Pilgrim2015-08-261-0/+18
| | | | | | | | | | | | | | | | Added missing SSE/AVX 'undefined' intrinsics (PR24040): _mm_undefined_pd, _mm_undefined_ps + _mm_undefined_si128 _mm256_undefined_pd, _mm256_undefined_ps + _mm256_undefined_si256 _mm512_undefined, _mm512_undefined_ps, _mm512_undefined_pd + _mm512_undefined_epi32 Added builtin intrinsicss: __builtin_ia32_undef128, __builtin_ia32_undef256 + __builtin_ia32_undef512 Differential Revision: http://reviews.llvm.org/D12052 llvm-svn: 246083
* Added missing tests for SSE41 pmovsx/pmovzx extension intrinsicsSimon Pilgrim2015-08-231-0/+72
| | | | llvm-svn: 245815
* Update Clang tests to handle explicitly typed load changes in LLVM.David Blaikie2015-02-271-10/+10
| | | | llvm-svn: 230795
* Make tests independent of llvm variable naming.Manuel Klimek2015-02-171-1/+1
| | | | llvm-svn: 229484
* [X86] Convert palignr builtin handling to use shuffle form of right shift ↵Craig Topper2015-02-171-1/+1
| | | | | | instead of intrinsics. This should allow the instrinsics to removed from the backend. llvm-svn: 229474
* [X86] Merge the 2 separate builtin handlers for PALIGNR into a single one ↵Craig Topper2015-02-171-0/+10
| | | | | | that handles both. llvm-svn: 229469
* [X86] Fix test cases that I foolishly copied and modified from another file ↵Craig Topper2015-02-131-4/+4
| | | | | | that had optimizations on. This caused the check patterns to not quite match. llvm-svn: 229073
* [X86] Add _mm_bslli_si128 and _mm_bsrli_si128 as aliases of _mm_slli_si128 ↵Craig Topper2015-02-131-0/+24
| | | | | | and _mm_srli_si128. This matches Intel documentation and gcc. llvm-svn: 229066
* [x86] Add the (v)cmpps/pd/ss/sd builtins to match gcc. Use them in the sse ↵Craig Topper2014-12-271-0/+288
| | | | | | | | | | intrinsic files. This still lower to the same intrinsics as before. This is preparation for bounds checking the immediate on the avx version of the builtin so we don't pass illegal immediates into the backend. Since SSE uses a smaller size immediate its not possible to bounds check when using a shared builtin. Rather than creating a clang specific builtin for the different immediate, I decided (after consulting with Chandler) that it was better to match gcc. llvm-svn: 224879
* Fix line numbers for code inlined from __nodebug__ functions.Evgeniy Stepanov2014-06-091-2/+2
| | | | | | | | | | | | | | Instructions from __nodebug__ functions don't have file:line information even when inlined into no-nodebug functions. As a result, intrinsics (SSE and other) from <*intrin.h> clang headers _never_ have file:line information. With this change, an instruction without !dbg metadata gets one from the call instruction when inlined. Fixes PR19001. llvm-svn: 210459
* Patched clang to emit x86 blends as shufflevectors.Filipe Cabecinhas2014-05-131-0/+18
| | | | | | | | | | | | | | | | | 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
* Intrinsics: fix extract & insert when index is out of bound.Manman Ren2013-10-231-0/+24
| | | | | | | | | Now, all extract & insert intrinsics should have the correct and operation to ignore higher bits. rdar://15250497 llvm-svn: 193267
* _mm_extract_epi16: use "& 7" when index is out of bound.Manman Ren2013-10-221-0/+7
| | | | | | | This is in line with implementation of _mm_extract_pi16. rdar://15250497 llvm-svn: 193187
* Add _mm_stream_si64 intrinsic.Eli Friedman2013-09-231-1/+19
| | | | | | | | | While I'm here, also fix the alignment computation for the whole family of intrinsics. PR17298. llvm-svn: 191243
* CHECK-LABEL-ify some code gen tests to improve diagnostic experience when ↵Stephen Lin2013-08-151-7/+7
| | | | | | tests fail. llvm-svn: 188447
* X86 SSE Intrinsics: update header for sqrt_ss, rsqrt_ss and rcp_ss.Manman Ren2012-10-261-0/+31
| | | | | | | There intrinsics pass through the upper FP values from the input. rdar://12558838 llvm-svn: 166743
* Get rid of storelv4si builtin as it can be expressed directly. This is generalChad Rosier2012-05-011-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Correctly check argument types for some vector macros in smmintrin.h. Put ↵Craig Topper2012-03-301-0/+44
| | | | | | parentheses around uses of vector macro arguments. llvm-svn: 153732
* Add _mm_minpos_epu16 to smmintrin.h. Fixes PR12399.Craig Topper2012-03-301-0/+5
| | | | llvm-svn: 153726
* test/CodeGen/sse-builtins.c: Make this host-independent to unbreak ↵NAKAMURA Takumi2011-09-161-1/+1
| | | | | | | | posix-unlike hosts. Without -ffreestanding, clang tries to seek /usr/include/stdlib.h in host filesystem, even on Windows hosts. llvm-svn: 139899
* Tweak *mmintrin.h so that they don't make any bad assumptions about ↵Eli Friedman2011-09-151-0/+104
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
OpenPOWER on IntegriCloud