ext/numo/narray/numo/template.h in numo-narray-0.9.1.2 vs ext/numo/narray/numo/template.h in numo-narray-0.9.1.3
- old
+ new
@@ -143,7 +143,25 @@
is_aligned_step(const ssize_t step, const size_t alignment)
{
return ((step) & ((alignment)-1)) == 0;
}
+static inline int
+get_count_of_elements_not_aligned_to_simd_size(const void *ptr, const size_t alignment, const size_t element_size)
+{
+ int cnt = (size_t)(ptr) & ((alignment)-1);
+ return cnt == 0 ? 0 : (alignment - cnt) / element_size;
+}
+
+static inline int is_same_aligned2(const void *ptr1, const void *ptr2, const size_t alignment)
+{
+ return ((size_t)(ptr1) & ((alignment)-1)) == ((size_t)(ptr2) & ((alignment)-1));
+}
+
+static inline int is_same_aligned3(const void *ptr1, const void *ptr2, const void *ptr3, const size_t alignment)
+{
+ return (((size_t)(ptr1) & ((alignment)-1)) == ((size_t)(ptr2) & ((alignment)-1))) &&
+ (((size_t)(ptr1) & ((alignment)-1)) == ((size_t)(ptr3) & ((alignment)-1)));
+}
+
#endif /* ifndef TEMPLATE_H */