summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBuiltin.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Extract procedures to do scalar-to-memory and memory-to-scalar conversionsJohn McCall2010-10-261-71/+98
| | | | | | | in IR gen, and use those to fix a correctness issue with bool atomic intrinsics. rdar://problem/8461234 llvm-svn: 117403
* Implement __builtin_ia32_vec_ext_v2si function (required by Qt).Argyrios Kyrtzidis2010-10-101-0/+3
| | | | llvm-svn: 116162
* Add target implementations for the X86 builtins:Bill Wendling2010-10-091-1/+32
| | | | | | | | | | | __builtin_ia32_vec_init_v8qi __builtin_ia32_vec_init_v4hi __builtin_ia32_vec_init_v2si They are lowered to bitcasts. (These are all ready tested by the gcc testsuite.) <rdar://problem/8529957> llvm-svn: 116147
* when expanding a builtin, if the argument is required to be a constant,Chris Lattner2010-10-021-3/+40
| | | | | | | | | force it to be a constant instead of emitting with EmitScalarExpr. In -ftrapv mode, they are not the same. This fixes rdar://8478728 + PR8221 llvm-svn: 115388
* tidyChris Lattner2010-10-011-3/+3
| | | | llvm-svn: 115383
* Accidentally committed some temporary changes on my branch when reverting ↵Bill Wendling2010-09-281-32/+31
| | | | | | patches. llvm-svn: 114936
* Temporarily revert 114929 114925 114924 114921. It looked like they (or at leastBill Wendling2010-09-281-31/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | one of them) was causing a series of failures: http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/4518 svn merge -c -114929 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114929 into '.': U include/clang/Sema/Sema.h U include/clang/AST/DeclCXX.h U lib/Sema/SemaDeclCXX.cpp U lib/Sema/SemaTemplateInstantiateDecl.cpp U lib/Sema/SemaDecl.cpp U lib/Sema/SemaTemplateInstantiate.cpp U lib/AST/DeclCXX.cpp svn merge -c -114925 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114925 into '.': G include/clang/AST/DeclCXX.h G lib/Sema/SemaDeclCXX.cpp G lib/AST/DeclCXX.cpp svn merge -c -114924 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114924 into '.': G include/clang/AST/DeclCXX.h G lib/Sema/SemaDeclCXX.cpp G lib/Sema/SemaDecl.cpp G lib/AST/DeclCXX.cpp U lib/AST/ASTContext.cpp svn merge -c -114921 https://llvm.org/svn/llvm-project/cfe/trunk --- Reverse-merging r114921 into '.': G include/clang/AST/DeclCXX.h G lib/Sema/SemaDeclCXX.cpp G lib/Sema/SemaDecl.cpp G lib/AST/DeclCXX.cpp llvm-svn: 114933
* Revert my patch changing the MMX "shift" intrinsics that take immediates intoBill Wendling2010-09-271-8/+8
| | | | | | | "shift with non-immediate" intrinsics. It gets here because we they aren't immediates anymore. llvm-svn: 114890
* fix the rest of rdar://8461279 - clang miscompiles address-space qualified ↵Chris Lattner2010-09-211-8/+13
| | | | | | atomics llvm-svn: 114503
* same bug as before, this time with __sync_val_compare_and_swap.Chris Lattner2010-09-211-4/+6
| | | | llvm-svn: 114502
* fix __sync_bool_compare_and_swap to work with address-space qualified types.Chris Lattner2010-09-211-5/+6
| | | | llvm-svn: 114498
* The MMX shift-with-immediate builtins require the equivalentBill Wendling2010-09-171-8/+8
| | | | | | shift-with-immediate LLVM intrinsics. llvm-svn: 114239
* Translate NEON vabdl, vaba, and vabal builtins to be implemented using theBob Wilson2010-09-031-9/+26
| | | | | | vabd intrinsic combined with zext and add operations. llvm-svn: 112937
* Add a bunch of missing bitcasts for clang NEON builtin expansions.Bob Wilson2010-09-021-12/+57
| | | | | | Radar 8388233 llvm-svn: 112890
* Translate NEON vmull, vmlal, and vmlsl builtins to llvm multiply-add/subBob Wilson2010-09-011-10/+32
| | | | | | | | with zext/sext operations, instead of to llvm intrinsics. I have a plan to avoid the clang builtins for these, but it is going to take a little longer and I want to get the NEON intrinsics updated before the 2.8 release. llvm-svn: 112764
* Translate NEON vmovn builtin to a vector truncation instead of using an llvmBob Wilson2010-08-301-2/+1
| | | | | | intrinsic. llvm-svn: 112504
* Translate NEON vaddl, vaddw, vsubl, and vsubw builtins to llvm add/subBob Wilson2010-08-291-8/+26
| | | | | | | | with zext/sext operations, instead of to llvm intrinsics. (We can also get rid of the clang builtins and handle these entirely in the arm_neon.h header if there is a way to express vector sext/zext in C.) llvm-svn: 112413
* Add the new alignment arguments for NEON load/store intrinsics, based on theBob Wilson2010-08-271-3/+40
| | | | | | types of the pointer address expressions used with those intrinsics. llvm-svn: 112272
* IRgen/NEON: Fix codegen of vzip and vzipq.Daniel Dunbar2010-08-261-2/+2
| | | | | | - Will be adding an executable test case to test-suite repo. llvm-svn: 112126
* Translate NEON vmovl intrinsics to zero/sign-extend operations.Bob Wilson2010-08-201-2/+3
| | | | llvm-svn: 111612
* vdup_lane was missingNate Begeman2010-08-061-1/+9
| | | | | | <rdar://problem/8278732> llvm-svn: 110420
* Add support for VFP status & control operations for ARM.Nate Begeman2010-08-031-3/+19
| | | | llvm-svn: 110153
* Wire up sema checking for __builtin_arm_usat and __builtin_arm_ssat immediates.Nate Begeman2010-07-291-1/+1
| | | | llvm-svn: 109814
* 2nd argument of __builtin_expect must be evaluatedFariborz Jahanian2010-07-261-1/+4
| | | | | | | if it hs side-effect to matchgcc's behaviour. Addresses radar 8172109. llvm-svn: 109467
* Improve the representation of the atomic builtins in a few ways. First, we makeChandler Carruth2010-07-181-30/+86
| | | | | | | | | | | | | | | their call expressions synthetically have the "deduced" types based on their first argument. We only insert conversions in the AST for arguments whose values require conversion to match the value type expected. This keeps PR7600 closed by maintaining the return type, but avoids assertions due to unexpected implicit casts making the type unsigned (test case added from Daniel). The magic is moved into the codegen for the atomic builtin which inserts the casts as needed at the IR level to raise the type to an integer suitable for the LLVM intrinsic. This shouldn't cause any real change in functionality, but now we can make the builtin be more truly polymorphic. llvm-svn: 108638
* finally get around to doing a significant cleanup to irgen:Chris Lattner2010-06-271-60/+37
| | | | | | | | have CGF create and make accessible standard int32,int64 and intptr types. This fixes a ton of 80 column violations introduced by LLVMContextification and cleans up stuff a lot. llvm-svn: 106977
* Implement remaining codegen for NEON, all operations should now work.Nate Begeman2010-06-201-41/+173
| | | | llvm-svn: 106407
* More AltiVec support.Anton Korobeynikov2010-06-191-3/+44
| | | | | | Patch by Anton Yartsev! llvm-svn: 106387
* Remove last of the bool shifts for MS VC++, patch by dimitry andricNate Begeman2010-06-171-5/+5
| | | | llvm-svn: 106206
* Fixed conflict between objc_memmove_collectable builtin Fariborz Jahanian2010-06-161-1/+1
| | | | | | decl. and one ddefined in darwin header file. llvm-svn: 106107
* Patch adds support for copying of thoseFariborz Jahanian2010-06-151-0/+11
| | | | | | | | objective-c++ class objects which have GC'able objc object pointers and need to use ObjC's objc_memmove_collectable API (radar 8070772). llvm-svn: 106061
* An implementation of __builtin__fpclassify the way Chris Lattner described ↵Benjamin Kramer2010-06-141-0/+58
| | | | | | by Jörg Blank. llvm-svn: 105936
* Add some missing shiftsNate Begeman2010-06-141-23/+45
| | | | | | | | Fix multiplies by scalar Add SemaChecking code for all immediates Add SemaChecking-gen support to arm_neon.td llvm-svn: 105930
* Most of NEON sema checking & fix to polynomial type detectionNate Begeman2010-06-131-1/+1
| | | | llvm-svn: 105908
* Shifts complete. Only vld & sema checking of constants remain.Nate Begeman2010-06-121-1/+29
| | | | llvm-svn: 105879
* vbsl, vrev* is implemented via arm_neon.hNate Begeman2010-06-121-2/+0
| | | | llvm-svn: 105875
* Most of remaining builtins, 2 generics, vld, and rounding shfits remain.Nate Begeman2010-06-111-9/+113
| | | | llvm-svn: 105848
* Multiplies, some shifts, set_laneNate Begeman2010-06-101-8/+109
| | | | llvm-svn: 105793
* support _lane ops, and multiplies by scalar.Nate Begeman2010-06-101-6/+22
| | | | llvm-svn: 105770
* Implement codegen for hadd, hsub, max, min, mlal, movl, movn, padal, mov_nNate Begeman2010-06-091-1/+35
| | | | | | Make note about how to handle the dozen or so multiply by scalar ops. llvm-svn: 105734
* More accurate BuiltinsARM.def Nate Begeman2010-06-091-0/+11
| | | | | | vget_lane support llvm-svn: 105684
* Simplify the code a bit and avoid a gcc waring about uninitialized variables.Rafael Espindola2010-06-091-29/+24
| | | | llvm-svn: 105676
* Implement transpose/zip/unzip & table lookup.Nate Begeman2010-06-091-4/+81
| | | | | | Test out some basic constant-checking. llvm-svn: 105667
* Fix NEON intrinsic argument passing, support vext. Most now successfully ↵Nate Begeman2010-06-081-57/+83
| | | | | | make it through codegen to the .s file llvm-svn: 105599
* Fix what looks like a merge problem that broke __clear_cache.Rafael Espindola2010-06-081-1/+1
| | | | llvm-svn: 105595
* Implement ARM NEON up through vcvt, alphabetically.Nate Begeman2010-06-081-1/+57
| | | | llvm-svn: 105590
* Implement __clear_cache on ARM.Rafael Espindola2010-06-071-4/+9
| | | | llvm-svn: 105537
* weekend checkpoint of arm neon builtins codegen. Nate Begeman2010-06-071-0/+89
| | | | | | TODO: add remainder of builtins to CGBuiltin, add code to SemaChecking to validate constants. llvm-svn: 105532
* This cast is no longer needed; the FIXME is fixed.Dan Gohman2010-05-281-2/+0
| | | | llvm-svn: 104919
* Update __builtin_setjmp codegen to match llvmCore changes in r104900.Jim Grosbach2010-05-271-0/+8
| | | | llvm-svn: 104902
OpenPOWER on IntegriCloud