summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/atomic-ops-libcall.c
Commit message (Collapse)AuthorAgeFilesLines
* [CodeGen] remove/fix checks that will fail when r301923 is recommittedSanjay Patel2017-05-021-2/+6
| | | | | | Don't test the optimizer as part of front-end verification. llvm-svn: 301928
* Correct atomic libcall support for __atomic_*_fetch builtins.James Y Knight2015-11-121-6/+13
| | | | | | | | | | | | | | In r244063, I had caused these builtins to call the same-named library functions, __atomic_*_fetch_SIZE. However, this was incorrect: while those functions are in fact supported by GCC's libatomic, they're not documented by the spec (and gcc doesn't ever call them). Instead, you're /supposed/ to call the __atomic_fetch_* builtins and then redo the operation inline to return the final value. Differential Revision: http://reviews.llvm.org/D14385 llvm-svn: 252920
* Add missing atomic libcall support.James Y Knight2015-08-051-0/+72
| | | | | | | | | | Support for emitting libcalls for __atomic_fetch_nand and __atomic_{add,sub,and,or,xor,nand}_fetch was missing; add it, and some test cases. Differential Revision: http://reviews.llvm.org/D10847 llvm-svn: 244063
* CodeGen: Don't completely mess-up optimized atomic libcallsDavid Majnemer2014-08-291-5/+5
| | | | | | | | | | | | | | | | | | | | | | | Summary: We did a great job getting this wrong: - We messed up which LLVM IR types to use for arguments and return values. The optimized libcalls use integer types for values. Clang attempted to use the IR type which corresponds to the value passed in instead of using an appropriately sized integer type. This would result in violations of the ABI for, as an example, floating point types. - We didn't bother recording the result of the atomic libcall in the destination memory. Instead, call the functions with arguments matching the type of the libcall prototype's parameters. This fixes PR20780. Differential Revision: http://reviews.llvm.org/D5098 llvm-svn: 216714
* Fix atomic libcall.Logan Chien2014-03-261-0/+37
This commit fixes a cast instruction assertion failure due to the incompatible type cast. This will only happen when the target requires atomic libcalls. llvm-svn: 204834
OpenPOWER on IntegriCloud