From 5cee37adcca4c3de33c025f4975d381cf113f2bf Mon Sep 17 00:00:00 2001
From: Russel Arbore <russel.jma@gmail.com>
Date: Tue, 25 Feb 2025 14:52:16 -0600
Subject: [PATCH] Revert "whoops"

This reverts commit 9a58de9e055004d05d0df66d062987c94819b790.
---
 hercules_cg/src/gpu.rs | 42 ++++++++++++++++++------------------------
 1 file changed, 18 insertions(+), 24 deletions(-)

diff --git a/hercules_cg/src/gpu.rs b/hercules_cg/src/gpu.rs
index d857fdda..e3dcc0c3 100644
--- a/hercules_cg/src/gpu.rs
+++ b/hercules_cg/src/gpu.rs
@@ -1879,10 +1879,8 @@ namespace cg = cooperative_groups;
                     let element_size = self.get_size(*element_type, None);
                     let element_align = self.get_alignment(*element_type);
                     index_ptr.push_str(&format!(
-                        " * (({} + {}) & ~{})",
-                        element_size,
-                        element_align - 1,
-                        element_align - 1
+                        " * (({} + {} - 1) / {} * {})",
+                        element_size, element_align, element_align, element_align
                     ));
                     type_id = *element_type;
                 }
@@ -1934,10 +1932,8 @@ namespace cg = cooperative_groups;
                     let alignment = self.get_alignment(*type_id);
                     let size = self.get_size(*type_id, None);
                     *dynamic_shared_offset = format!(
-                        "(({} + {}) & ~{})",
-                        dynamic_shared_offset,
-                        alignment - 1,
-                        alignment - 1,
+                        "(({} + {} - 1) / {}) * {}",
+                        dynamic_shared_offset, alignment, alignment, alignment
                     );
                     write!(
                         w,
@@ -1985,10 +1981,8 @@ namespace cg = cooperative_groups;
                     let alignment = self.get_alignment(*type_id);
                     let size = self.get_size(*type_id, None);
                     *dynamic_shared_offset = format!(
-                        "(({} + {}) & ~{})",
-                        dynamic_shared_offset,
-                        alignment - 1,
-                        alignment - 1
+                        "(({} + {} - 1) / {}) * {}",
+                        dynamic_shared_offset, alignment, alignment, alignment
                     );
                     write!(
                         w,
@@ -2029,10 +2023,8 @@ namespace cg = cooperative_groups;
                 let alignment = self.get_alignment(*type_id);
                 let size = self.get_size(*type_id, None);
                 *dynamic_shared_offset = format!(
-                    "(({} + {}) & ~{})",
-                    dynamic_shared_offset,
-                    alignment - 1,
-                    alignment - 1,
+                    "(({} + {} - 1) / {}) * {}",
+                    dynamic_shared_offset, alignment, alignment, alignment
                 );
                 write!(
                     w,
@@ -2063,10 +2055,11 @@ namespace cg = cooperative_groups;
                 let array_size = multiply_dcs(extents);
                 let elem_align = self.get_alignment(type_id);
                 format!(
-                    "(({} + {}) & ~{}) * {}",
+                    "(({} + {} - 1) / {} * {}) * {}",
                     self.get_size(*element_type, None),
-                    elem_align - 1,
-                    elem_align - 1,
+                    elem_align,
+                    elem_align,
+                    elem_align,
                     array_size
                 )
             }
@@ -2080,7 +2073,10 @@ namespace cg = cooperative_groups;
                         if acc == "0" {
                             size
                         } else {
-                            format!("(({} + {}) & ~{}) + {}", acc, align - 1, align - 1, size)
+                            format!(
+                                "({} + {} - 1) / {} * {} + {}",
+                                acc, align, align, align, size
+                            )
                         }
                     })
             }
@@ -2105,10 +2101,8 @@ namespace cg = cooperative_groups;
                     .max()
                     .unwrap_or(0);
                 format!(
-                    "(({} + {}) & ~{})",
-                    max_size,
-                    max_alignment - 1,
-                    max_alignment - 1,
+                    "({} + {} - 1) / {} * {}",
+                    max_size, max_alignment, max_alignment, max_alignment
                 )
             }
             _ => {
-- 
GitLab