@@ -159,7 +159,6 @@ template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER(find_lsb_helper, findIL
159159
160160template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (bitReverse_helper, bitReverse, (T), (T), T)
161161template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (dot_helper, dot, (T), (T)(T), typename vector_traits<T>::scalar_type)
162- template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (transpose_helper, transpose, (T), (T), T)
163162template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (length_helper, length, (T), (T), typename vector_traits<T>::scalar_type)
164163template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (normalize_helper, normalize, (T), (T), T)
165164template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER (rsqrt_helper, inverseSqrt, (T), (T), T)
@@ -204,6 +203,17 @@ template<typename T> AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER(bitCount_helper, bitCou
204203#undef ARG
205204#undef AUTO_SPECIALIZE_TRIVIAL_CASE_HELPER
206205
206+ template<typename Matrix> NBL_PARTIAL_REQ_TOP (concepts::Matrix<Matrix>)
207+ struct transpose_helper<Matrix NBL_PARTIAL_REQ_BOT (concepts::Matrix<Matrix>) >
208+ {
209+ using transposed_t = typename matrix_traits<Matrix>::transposed_type;
210+
211+ static transposed_t __call (NBL_CONST_REF_ARG (Matrix) m)
212+ {
213+ using traits = matrix_traits<Matrix>;
214+ return spirv::transpose<Matrix>(m);
215+ }
216+ };
207217template<typename UInt64> NBL_PARTIAL_REQ_TOP (is_same_v<UInt64, uint64_t>)
208218struct find_msb_helper<UInt64 NBL_PARTIAL_REQ_BOT (is_same_v<UInt64, uint64_t>) >
209219{
0 commit comments