Author: Joseph Huber
Date: 2025-03-05T19:15:23-06:00
New Revision: 12c5a46c300eedb6cafc68b987abb9c1fa913e96

URL: 
https://github.com/llvm/llvm-project/commit/12c5a46c300eedb6cafc68b987abb9c1fa913e96
DIFF: 
https://github.com/llvm/llvm-project/commit/12c5a46c300eedb6cafc68b987abb9c1fa913e96.diff

LOG: [Clang] Fix incorrect condition on ballot

Summary:
Somehow these got the `!` dropped and it wasn't tested because the
existing test only used the 32-bit variant.

Added: 
    

Modified: 
    clang/lib/Headers/amdgpuintrin.h
    clang/lib/Headers/nvptxintrin.h

Removed: 
    


################################################################################
diff  --git a/clang/lib/Headers/amdgpuintrin.h 
b/clang/lib/Headers/amdgpuintrin.h
index 6ad8e54f4aadd..15409eacf7716 100644
--- a/clang/lib/Headers/amdgpuintrin.h
+++ b/clang/lib/Headers/amdgpuintrin.h
@@ -187,7 +187,7 @@ __gpu_match_any_u64(uint64_t __lane_mask, uint64_t __x) {
   uint64_t __match_mask = 0;
 
   bool __done = 0;
-  while (__gpu_ballot(__lane_mask, __done)) {
+  while (__gpu_ballot(__lane_mask, !__done)) {
     if (!__done) {
       uint64_t __first = __gpu_read_first_lane_u64(__lane_mask, __x);
       if (__first == __x) {

diff  --git a/clang/lib/Headers/nvptxintrin.h b/clang/lib/Headers/nvptxintrin.h
index 03594dd9bd6cb..7af22baccb511 100644
--- a/clang/lib/Headers/nvptxintrin.h
+++ b/clang/lib/Headers/nvptxintrin.h
@@ -207,7 +207,7 @@ __gpu_match_any_u64(uint64_t __lane_mask, uint64_t __x) {
   uint64_t __match_mask = 0;
 
   bool __done = 0;
-  while (__gpu_ballot(__lane_mask, __done)) {
+  while (__gpu_ballot(__lane_mask, !__done)) {
     if (!__done) {
       uint64_t __first = __gpu_read_first_lane_u64(__lane_mask, __x);
       if (__first == __x) {


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to