diff options
author | Jingyue Wu <jingyue@google.com> | 2015-09-30 21:49:32 +0000 |
---|---|---|
committer | Jingyue Wu <jingyue@google.com> | 2015-09-30 21:49:32 +0000 |
commit | f1eca25b16b9016b2c058559106ec233ceabfa5c (patch) | |
tree | 97b7e6d1e076e1fe3dcbe306daf6de146dfb2817 /clang/lib/CodeGen | |
parent | e5e83474966a67e2fb1964fd847f975a65bc3699 (diff) | |
download | bcm5719-llvm-f1eca25b16b9016b2c058559106ec233ceabfa5c.tar.gz bcm5719-llvm-f1eca25b16b9016b2c058559106ec233ceabfa5c.zip |
[CUDA] fix codegen for __nvvm_atom_cas_*
Summary: __nvvm_atom_cas_* returns the old value instead of whether the swap succeeds.
Reviewers: eliben, tra
Subscribers: jholewinski, llvm-commits
Differential Revision: http://reviews.llvm.org/D13306
llvm-svn: 248951
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index f5e3aca103a..27dd5b5728d 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -7021,7 +7021,9 @@ Value *CodeGenFunction::EmitNVPTXBuiltinExpr(unsigned BuiltinID, case NVPTX::BI__nvvm_atom_cas_gen_i: case NVPTX::BI__nvvm_atom_cas_gen_l: case NVPTX::BI__nvvm_atom_cas_gen_ll: - return MakeAtomicCmpXchgValue(*this, E, true); + // __nvvm_atom_cas_gen_* should return the old value rather than the + // success flag. + return MakeAtomicCmpXchgValue(*this, E, /*ReturnBool=*/false); case NVPTX::BI__nvvm_atom_add_gen_f: { Value *Ptr = EmitScalarExpr(E->getArg(0)); |