#include <metal_atomic>
#include <metal_simdgroup>
Go to the source code of this file.
 | 
| static constant constexpr const uint8_t  | simd_size = 32 | 
|   | 
◆ DEFINE_SIMD_REDUCE
      
        
          | #define DEFINE_SIMD_REDUCE | 
          ( | 
           | ) | 
           | 
        
      
 
Value:  template <typename T, metal::enable_if_t<sizeof(T) < 8, bool> = true>  \
  T simd_reduce(T val) {                                                 \
    return simd_reduce_impl(val);                                        \
  }                                                                      \
                                                                         \
  template <typename T, metal::enable_if_t<sizeof(T) == 8, bool> = true> \
  T simd_reduce(T val) {                                                 \
    for (
short i = 
simd_size / 2; i > 0; i /= 2) {                       \
 
    }                                                                    \
    return val;                                                          \
  }
 
 
 
◆ simd_size
  
  
      
        
          | constant constexpr const uint8_t simd_size = 32 | 
         
       
   | 
  
staticconstexpr   |