aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/builtins-x86.c
AgeCommit message (Collapse)Author
2012-05-01Get rid of storelv4si builtin as it can be expressed directly. This is generalChad Rosier
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155924 91177308-0d34-0410-b5e6-96231b3b80d8
2012-04-17Convert vperm2f128 and vperm2i128 intrinsics back to using llvm intrinsics. ↵Craig Topper
Unfortunately, these instructions have behavior that can't be modeled with shuffle vector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154906 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-08Remove vperm2f* and vperm2i builtins. Same effect can be achieved with ↵Craig Topper
builtin_shufflevector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150064 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-08Remove vpermilp* builtins. Same effect can be achieved with ↵Craig Topper
builtin_shufflevector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150056 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-30Cleanup 3dnow builtin handling. Most of them were already handled by LLVM ↵Craig Topper
connecting intrinsics and builtins in IntrinsicsX86.td. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149233 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25Re-enable test that was broken by r148919Craig Topper
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148932 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-25disable this test for now.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148928 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-20Add AVX2 intrinsics for pavg, pblend, and pcmp instructions. Also remove ↵Craig Topper
unneeded builtins for SSE pcmp. Change SSE pcmpeqq and pcmpgtq to not use builtins and just use vector == and >. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146969 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-17Fix _mm256_round_pd, _mm256_round_ps, _mm_permute_pd and _mm256_permute_pd AVXChad Rosier
intrinsics to use "I" (ICE) markings. Fix avxintrin.h to take them into account. Part of rdar://10595450 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146791 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-13Remove the 'unaligned load' builtins now that they're no longer used in the ↵Bill Wendling
*mmintrin.h files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131300 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-12LLVM doesn't always optimize away the four loads from this:Bill Wendling
(__m128){ p[0], p[1], p[2], p[3] } which produces really bad code. This could be done in instcombine, but it's probably better to do it in the front-end instead. <rdar://problem/9424836> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131237 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-15Add 3DNow! Intrinsics.Michael J. Spencer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129570 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-13Removing the unaligned load tests from builtins-x86.c since they're ↵Bill Wendling
generated by a regular 'load' now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129464 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-10Implement __builtin_ia32_vec_ext_v2si function (required by Qt).Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116162 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11Remove rsqrtps_nr256 and sqrtps_nr256 builtins, at least until we need themBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110844 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11Remove 256-bit cast built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes
__builtin_shufflevector with the appropriate arguments git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110771 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11Remove 256-bit unpack built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes
__builtin_shufflevector with the appropriate arguments git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110768 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-11Remove 256-bit shuffle built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes
__builtin_shufflevector with the appropriate arguments git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110766 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-10Make replicate intrinsics use shufflevector instead of dup builtins, also ↵Bruno Cardoso Lopes
remove the dup builtins git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110646 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-05We don't want to support built-ins which aren't needed by the intrinsics. ↵Bruno Cardoso Lopes
Remove them git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110399 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-04Add more AVX 256-bit intrinsics and test cases for themBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110178 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-03Support x86 AVX 256-bit instructions built-ins. Right now support all of ↵Bruno Cardoso Lopes
them, but as soon as we properly codegen the simple vector operations, remove the unnecessary built-ins/intrinsics from clang and llvm. Also add tests for the new built-ins git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110096 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-04Fix __builtin_ia32_roundss and __builtin_ia32_roundsd definitions.Eric Christopher
Re-enable test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97707 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-15Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar
- This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08Eliminate &&s in tests.Daniel Dunbar
- 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-07Remove a few more vector builtins.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73022 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-07Now that LLVM CodeGen can handle the generic variations a bit better, Eli Friedman
get rid of a few more clang vector builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-06Test changes to account for removed builtins.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73004 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Remove an unused builtin.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72033 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-18Add 'cmp' SSE builtins and get rid of a bunch of other builtins.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72032 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-24Rename clang to clang-cc.Daniel Dunbar
Tests and drivers updated, still need to shuffle dirs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67602 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-26Fix definition of __builtin_ia32_vec_set_v2di and de-XFAILDaniel Dunbar
builtins-x86.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63069 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-18Added vec_set intrinsicsMon P Wang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57749 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-05Add X86 builtin code generation test case.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57104 91177308-0d34-0410-b5e6-96231b3b80d8