21 #ifndef ROCPRIM_DEVICE_DETAIL_CONFIG_DEVICE_HISTOGRAM_HPP_ 22 #define ROCPRIM_DEVICE_DETAIL_CONFIG_DEVICE_HISTOGRAM_HPP_ 24 #include "../../../type_traits.hpp" 25 #include "../device_config_helper.hpp" 26 #include <type_traits> 36 BEGIN_ROCPRIM_NAMESPACE
41 template<
unsigned int arch,
43 unsigned int channels,
44 unsigned int active_channels,
51 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
53 static_cast<unsigned int>(target_arch::gfx1030),
57 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
58 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
59 && (active_channels == 1))>>
64 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
66 static_cast<unsigned int>(target_arch::gfx1030),
70 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
71 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
72 && (active_channels == 2))>>
77 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
79 static_cast<unsigned int>(target_arch::gfx1030),
83 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
84 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
85 && (active_channels == 3))>>
90 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
92 static_cast<unsigned int>(target_arch::gfx1030),
96 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
97 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
98 && (active_channels == 3))>>
103 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
105 static_cast<unsigned int>(target_arch::gfx1030),
109 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
110 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
111 && (active_channels == 4))>>
116 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
118 static_cast<unsigned int>(target_arch::gfx1030),
122 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
123 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
124 && (active_channels == 1))>>
129 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
131 static_cast<unsigned int>(target_arch::gfx1030),
135 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
136 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
137 && (active_channels == 2))>>
142 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
144 static_cast<unsigned int>(target_arch::gfx1030),
148 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
149 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
150 && (active_channels == 3))>>
155 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
157 static_cast<unsigned int>(target_arch::gfx1030),
161 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
162 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
163 && (active_channels == 3))>>
168 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
170 static_cast<unsigned int>(target_arch::gfx1030),
174 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
175 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
176 && (active_channels == 4))>>
181 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
183 static_cast<unsigned int>(target_arch::gfx1030),
187 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
188 && (sizeof(value_type) <= 2) && (channels == 1) && (active_channels == 1))>>
193 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
195 static_cast<unsigned int>(target_arch::gfx1030),
199 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
200 && (sizeof(value_type) <= 2) && (channels == 2) && (active_channels == 2))>>
205 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
207 static_cast<unsigned int>(target_arch::gfx1030),
211 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
212 && (sizeof(value_type) <= 2) && (channels == 3) && (active_channels == 3))>>
217 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
219 static_cast<unsigned int>(target_arch::gfx1030),
223 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
224 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 3))>>
229 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
231 static_cast<unsigned int>(target_arch::gfx1030),
235 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
236 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 4))>>
241 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
243 static_cast<unsigned int>(target_arch::gfx1030),
247 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
248 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
249 && (active_channels == 1))>>
254 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
256 static_cast<unsigned int>(target_arch::gfx1030),
260 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
261 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
262 && (active_channels == 2))>>
267 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
269 static_cast<unsigned int>(target_arch::gfx1030),
273 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
274 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
275 && (active_channels == 3))>>
280 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
282 static_cast<unsigned int>(target_arch::gfx1030),
286 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
287 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
288 && (active_channels == 3))>>
293 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
295 static_cast<unsigned int>(target_arch::gfx1030),
299 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
300 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
301 && (active_channels == 4))>>
306 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
308 static_cast<unsigned int>(target_arch::gfx1030),
312 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
313 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
314 && (active_channels == 1))>>
319 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
321 static_cast<unsigned int>(target_arch::gfx1030),
325 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
326 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
327 && (active_channels == 2))>>
332 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
334 static_cast<unsigned int>(target_arch::gfx1030),
338 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
339 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
340 && (active_channels == 3))>>
345 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
347 static_cast<unsigned int>(target_arch::gfx1030),
351 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
352 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
353 && (active_channels == 3))>>
358 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
360 static_cast<unsigned int>(target_arch::gfx1030),
364 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
365 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
366 && (active_channels == 4))>>
371 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
373 static_cast<unsigned int>(target_arch::gfx1030),
377 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
378 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 1)
379 && (active_channels == 1))>>
384 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
386 static_cast<unsigned int>(target_arch::gfx1030),
390 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
391 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 2)
392 && (active_channels == 2))>>
397 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
399 static_cast<unsigned int>(target_arch::gfx1030),
403 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
404 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 3)
405 && (active_channels == 3))>>
410 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
412 static_cast<unsigned int>(target_arch::gfx1030),
416 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
417 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
418 && (active_channels == 3))>>
423 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
425 static_cast<unsigned int>(target_arch::gfx1030),
429 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
430 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
431 && (active_channels == 4))>>
436 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
438 static_cast<unsigned int>(target_arch::gfx1030),
442 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
443 && (sizeof(value_type) <= 1) && (channels == 1) && (active_channels == 1))>>
448 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
450 static_cast<unsigned int>(target_arch::gfx1030),
454 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
455 && (sizeof(value_type) <= 1) && (channels == 2) && (active_channels == 2))>>
460 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
462 static_cast<unsigned int>(target_arch::gfx1030),
466 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
467 && (sizeof(value_type) <= 1) && (channels == 3) && (active_channels == 3))>>
472 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
474 static_cast<unsigned int>(target_arch::gfx1030),
478 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
479 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 3))>>
484 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
486 static_cast<unsigned int>(target_arch::gfx1030),
490 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
491 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 4))>>
496 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
498 static_cast<unsigned int>(target_arch::gfx1102),
502 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
503 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
504 && (active_channels == 1))>>
509 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
511 static_cast<unsigned int>(target_arch::gfx1102),
515 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
516 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
517 && (active_channels == 2))>>
522 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
524 static_cast<unsigned int>(target_arch::gfx1102),
528 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
529 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
530 && (active_channels == 3))>>
535 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
537 static_cast<unsigned int>(target_arch::gfx1102),
541 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
542 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
543 && (active_channels == 3))>>
548 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
550 static_cast<unsigned int>(target_arch::gfx1102),
554 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
555 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
556 && (active_channels == 4))>>
561 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
563 static_cast<unsigned int>(target_arch::gfx1102),
567 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
568 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
569 && (active_channels == 1))>>
574 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
576 static_cast<unsigned int>(target_arch::gfx1102),
580 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
581 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
582 && (active_channels == 2))>>
587 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
589 static_cast<unsigned int>(target_arch::gfx1102),
593 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
594 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
595 && (active_channels == 3))>>
600 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
602 static_cast<unsigned int>(target_arch::gfx1102),
606 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
607 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
608 && (active_channels == 3))>>
613 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
615 static_cast<unsigned int>(target_arch::gfx1102),
619 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
620 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
621 && (active_channels == 4))>>
626 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
628 static_cast<unsigned int>(target_arch::gfx1102),
632 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
633 && (sizeof(value_type) <= 2) && (channels == 1) && (active_channels == 1))>>
638 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
640 static_cast<unsigned int>(target_arch::gfx1102),
644 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
645 && (sizeof(value_type) <= 2) && (channels == 2) && (active_channels == 2))>>
650 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
652 static_cast<unsigned int>(target_arch::gfx1102),
656 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
657 && (sizeof(value_type) <= 2) && (channels == 3) && (active_channels == 3))>>
662 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
664 static_cast<unsigned int>(target_arch::gfx1102),
668 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
669 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 3))>>
674 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
676 static_cast<unsigned int>(target_arch::gfx1102),
680 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
681 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 4))>>
686 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
688 static_cast<unsigned int>(target_arch::gfx1102),
692 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
693 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
694 && (active_channels == 1))>>
699 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
701 static_cast<unsigned int>(target_arch::gfx1102),
705 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
706 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
707 && (active_channels == 2))>>
712 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
714 static_cast<unsigned int>(target_arch::gfx1102),
718 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
719 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
720 && (active_channels == 3))>>
725 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
727 static_cast<unsigned int>(target_arch::gfx1102),
731 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
732 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
733 && (active_channels == 3))>>
738 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
740 static_cast<unsigned int>(target_arch::gfx1102),
744 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
745 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
746 && (active_channels == 4))>>
751 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
753 static_cast<unsigned int>(target_arch::gfx1102),
757 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
758 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
759 && (active_channels == 1))>>
764 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
766 static_cast<unsigned int>(target_arch::gfx1102),
770 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
771 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
772 && (active_channels == 2))>>
777 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
779 static_cast<unsigned int>(target_arch::gfx1102),
783 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
784 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
785 && (active_channels == 3))>>
790 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
792 static_cast<unsigned int>(target_arch::gfx1102),
796 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
797 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
798 && (active_channels == 3))>>
803 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
805 static_cast<unsigned int>(target_arch::gfx1102),
809 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
810 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
811 && (active_channels == 4))>>
816 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
818 static_cast<unsigned int>(target_arch::gfx1102),
822 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
823 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 1)
824 && (active_channels == 1))>>
829 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
831 static_cast<unsigned int>(target_arch::gfx1102),
835 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
836 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 2)
837 && (active_channels == 2))>>
842 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
844 static_cast<unsigned int>(target_arch::gfx1102),
848 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
849 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 3)
850 && (active_channels == 3))>>
855 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
857 static_cast<unsigned int>(target_arch::gfx1102),
861 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
862 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
863 && (active_channels == 3))>>
868 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
870 static_cast<unsigned int>(target_arch::gfx1102),
874 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
875 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
876 && (active_channels == 4))>>
881 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
883 static_cast<unsigned int>(target_arch::gfx1102),
887 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
888 && (sizeof(value_type) <= 1) && (channels == 1) && (active_channels == 1))>>
893 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
895 static_cast<unsigned int>(target_arch::gfx1102),
899 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
900 && (sizeof(value_type) <= 1) && (channels == 2) && (active_channels == 2))>>
905 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
907 static_cast<unsigned int>(target_arch::gfx1102),
911 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
912 && (sizeof(value_type) <= 1) && (channels == 3) && (active_channels == 3))>>
917 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
919 static_cast<unsigned int>(target_arch::gfx1102),
923 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
924 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 3))>>
929 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
931 static_cast<unsigned int>(target_arch::gfx1102),
935 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
936 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 4))>>
941 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
943 static_cast<unsigned int>(target_arch::gfx900),
947 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
948 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
949 && (active_channels == 1))>>
954 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
956 static_cast<unsigned int>(target_arch::gfx900),
960 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
961 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
962 && (active_channels == 2))>>
967 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
969 static_cast<unsigned int>(target_arch::gfx900),
973 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
974 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
975 && (active_channels == 3))>>
980 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
982 static_cast<unsigned int>(target_arch::gfx900),
986 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
987 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
988 && (active_channels == 3))>>
993 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
995 static_cast<unsigned int>(target_arch::gfx900),
999 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1000 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1001 && (active_channels == 4))>>
1006 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1008 static_cast<unsigned int>(target_arch::gfx900),
1012 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1013 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
1014 && (active_channels == 1))>>
1019 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1021 static_cast<unsigned int>(target_arch::gfx900),
1025 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1026 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
1027 && (active_channels == 2))>>
1032 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1034 static_cast<unsigned int>(target_arch::gfx900),
1038 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1039 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
1040 && (active_channels == 3))>>
1045 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1047 static_cast<unsigned int>(target_arch::gfx900),
1051 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1052 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1053 && (active_channels == 3))>>
1058 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1060 static_cast<unsigned int>(target_arch::gfx900),
1064 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1065 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1066 && (active_channels == 4))>>
1071 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1073 static_cast<unsigned int>(target_arch::gfx900),
1077 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1078 && (sizeof(value_type) <= 2) && (channels == 1) && (active_channels == 1))>>
1083 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1085 static_cast<unsigned int>(target_arch::gfx900),
1089 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1090 && (sizeof(value_type) <= 2) && (channels == 2) && (active_channels == 2))>>
1095 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1097 static_cast<unsigned int>(target_arch::gfx900),
1101 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1102 && (sizeof(value_type) <= 2) && (channels == 3) && (active_channels == 3))>>
1107 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1109 static_cast<unsigned int>(target_arch::gfx900),
1113 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1114 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 3))>>
1119 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1121 static_cast<unsigned int>(target_arch::gfx900),
1125 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1126 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 4))>>
1131 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1133 static_cast<unsigned int>(target_arch::gfx900),
1137 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1138 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
1139 && (active_channels == 1))>>
1144 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1146 static_cast<unsigned int>(target_arch::gfx900),
1150 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1151 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
1152 && (active_channels == 2))>>
1157 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1159 static_cast<unsigned int>(target_arch::gfx900),
1163 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1164 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
1165 && (active_channels == 3))>>
1170 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1172 static_cast<unsigned int>(target_arch::gfx900),
1176 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1177 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1178 && (active_channels == 3))>>
1183 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1185 static_cast<unsigned int>(target_arch::gfx900),
1189 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1190 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1191 && (active_channels == 4))>>
1196 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1198 static_cast<unsigned int>(target_arch::gfx900),
1202 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1203 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
1204 && (active_channels == 1))>>
1209 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1211 static_cast<unsigned int>(target_arch::gfx900),
1215 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1216 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
1217 && (active_channels == 2))>>
1222 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1224 static_cast<unsigned int>(target_arch::gfx900),
1228 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1229 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
1230 && (active_channels == 3))>>
1235 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1237 static_cast<unsigned int>(target_arch::gfx900),
1241 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1242 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1243 && (active_channels == 3))>>
1248 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1250 static_cast<unsigned int>(target_arch::gfx900),
1254 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1255 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1256 && (active_channels == 4))>>
1261 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1263 static_cast<unsigned int>(target_arch::gfx900),
1267 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1268 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 1)
1269 && (active_channels == 1))>>
1274 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1276 static_cast<unsigned int>(target_arch::gfx900),
1280 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1281 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 2)
1282 && (active_channels == 2))>>
1287 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1289 static_cast<unsigned int>(target_arch::gfx900),
1293 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1294 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 3)
1295 && (active_channels == 3))>>
1300 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1302 static_cast<unsigned int>(target_arch::gfx900),
1306 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1307 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
1308 && (active_channels == 3))>>
1313 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1315 static_cast<unsigned int>(target_arch::gfx900),
1319 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1320 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
1321 && (active_channels == 4))>>
1326 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1328 static_cast<unsigned int>(target_arch::gfx900),
1332 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1333 && (sizeof(value_type) <= 1) && (channels == 1) && (active_channels == 1))>>
1338 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1340 static_cast<unsigned int>(target_arch::gfx900),
1344 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1345 && (sizeof(value_type) <= 1) && (channels == 2) && (active_channels == 2))>>
1350 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1352 static_cast<unsigned int>(target_arch::gfx900),
1356 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1357 && (sizeof(value_type) <= 1) && (channels == 3) && (active_channels == 3))>>
1362 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1364 static_cast<unsigned int>(target_arch::gfx900),
1368 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1369 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 3))>>
1374 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1376 static_cast<unsigned int>(target_arch::gfx900),
1380 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1381 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 4))>>
1386 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1388 static_cast<unsigned int>(target_arch::gfx906),
1392 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1393 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
1394 && (active_channels == 1))>>
1399 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1401 static_cast<unsigned int>(target_arch::gfx906),
1405 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1406 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
1407 && (active_channels == 2))>>
1412 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1414 static_cast<unsigned int>(target_arch::gfx906),
1418 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1419 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
1420 && (active_channels == 3))>>
1425 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1427 static_cast<unsigned int>(target_arch::gfx906),
1431 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1432 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1433 && (active_channels == 3))>>
1438 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1440 static_cast<unsigned int>(target_arch::gfx906),
1444 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1445 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1446 && (active_channels == 4))>>
1451 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1453 static_cast<unsigned int>(target_arch::gfx906),
1457 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1458 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
1459 && (active_channels == 1))>>
1464 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1466 static_cast<unsigned int>(target_arch::gfx906),
1470 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1471 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
1472 && (active_channels == 2))>>
1477 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1479 static_cast<unsigned int>(target_arch::gfx906),
1483 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1484 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
1485 && (active_channels == 3))>>
1490 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1492 static_cast<unsigned int>(target_arch::gfx906),
1496 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1497 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1498 && (active_channels == 3))>>
1503 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1505 static_cast<unsigned int>(target_arch::gfx906),
1509 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1510 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1511 && (active_channels == 4))>>
1516 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1518 static_cast<unsigned int>(target_arch::gfx906),
1522 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1523 && (sizeof(value_type) <= 2) && (channels == 1) && (active_channels == 1))>>
1528 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1530 static_cast<unsigned int>(target_arch::gfx906),
1534 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1535 && (sizeof(value_type) <= 2) && (channels == 2) && (active_channels == 2))>>
1540 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1542 static_cast<unsigned int>(target_arch::gfx906),
1546 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1547 && (sizeof(value_type) <= 2) && (channels == 3) && (active_channels == 3))>>
1552 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1554 static_cast<unsigned int>(target_arch::gfx906),
1558 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1559 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 3))>>
1564 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1566 static_cast<unsigned int>(target_arch::gfx906),
1570 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1571 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 4))>>
1576 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1578 static_cast<unsigned int>(target_arch::gfx906),
1582 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1583 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
1584 && (active_channels == 1))>>
1589 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1591 static_cast<unsigned int>(target_arch::gfx906),
1595 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1596 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
1597 && (active_channels == 2))>>
1602 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1604 static_cast<unsigned int>(target_arch::gfx906),
1608 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1609 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
1610 && (active_channels == 3))>>
1615 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1617 static_cast<unsigned int>(target_arch::gfx906),
1621 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1622 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1623 && (active_channels == 3))>>
1628 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1630 static_cast<unsigned int>(target_arch::gfx906),
1634 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1635 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1636 && (active_channels == 4))>>
1641 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1643 static_cast<unsigned int>(target_arch::gfx906),
1647 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1648 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
1649 && (active_channels == 1))>>
1654 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1656 static_cast<unsigned int>(target_arch::gfx906),
1660 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1661 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
1662 && (active_channels == 2))>>
1667 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1669 static_cast<unsigned int>(target_arch::gfx906),
1673 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1674 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
1675 && (active_channels == 3))>>
1680 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1682 static_cast<unsigned int>(target_arch::gfx906),
1686 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1687 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1688 && (active_channels == 3))>>
1693 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1695 static_cast<unsigned int>(target_arch::gfx906),
1699 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1700 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1701 && (active_channels == 4))>>
1706 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1708 static_cast<unsigned int>(target_arch::gfx906),
1712 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1713 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 1)
1714 && (active_channels == 1))>>
1719 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1721 static_cast<unsigned int>(target_arch::gfx906),
1725 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1726 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 2)
1727 && (active_channels == 2))>>
1732 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1734 static_cast<unsigned int>(target_arch::gfx906),
1738 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1739 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 3)
1740 && (active_channels == 3))>>
1745 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1747 static_cast<unsigned int>(target_arch::gfx906),
1751 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1752 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
1753 && (active_channels == 3))>>
1758 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1760 static_cast<unsigned int>(target_arch::gfx906),
1764 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1765 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
1766 && (active_channels == 4))>>
1771 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1773 static_cast<unsigned int>(target_arch::gfx906),
1777 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1778 && (sizeof(value_type) <= 1) && (channels == 1) && (active_channels == 1))>>
1783 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1785 static_cast<unsigned int>(target_arch::gfx906),
1789 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1790 && (sizeof(value_type) <= 1) && (channels == 2) && (active_channels == 2))>>
1795 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1797 static_cast<unsigned int>(target_arch::gfx906),
1801 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1802 && (sizeof(value_type) <= 1) && (channels == 3) && (active_channels == 3))>>
1807 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1809 static_cast<unsigned int>(target_arch::gfx906),
1813 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1814 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 3))>>
1819 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1821 static_cast<unsigned int>(target_arch::gfx906),
1825 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
1826 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 4))>>
1831 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1833 static_cast<unsigned int>(target_arch::gfx908),
1837 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1838 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
1839 && (active_channels == 1))>>
1844 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1846 static_cast<unsigned int>(target_arch::gfx908),
1850 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1851 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
1852 && (active_channels == 2))>>
1857 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1859 static_cast<unsigned int>(target_arch::gfx908),
1863 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1864 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
1865 && (active_channels == 3))>>
1870 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1872 static_cast<unsigned int>(target_arch::gfx908),
1876 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1877 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1878 && (active_channels == 3))>>
1883 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1885 static_cast<unsigned int>(target_arch::gfx908),
1889 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1890 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
1891 && (active_channels == 4))>>
1896 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1898 static_cast<unsigned int>(target_arch::gfx908),
1902 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1903 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
1904 && (active_channels == 1))>>
1909 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1911 static_cast<unsigned int>(target_arch::gfx908),
1915 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1916 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
1917 && (active_channels == 2))>>
1922 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1924 static_cast<unsigned int>(target_arch::gfx908),
1928 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1929 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
1930 && (active_channels == 3))>>
1935 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1937 static_cast<unsigned int>(target_arch::gfx908),
1941 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1942 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1943 && (active_channels == 3))>>
1948 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1950 static_cast<unsigned int>(target_arch::gfx908),
1954 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1955 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
1956 && (active_channels == 4))>>
1961 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1963 static_cast<unsigned int>(target_arch::gfx908),
1967 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1968 && (sizeof(value_type) <= 2) && (channels == 1) && (active_channels == 1))>>
1973 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1975 static_cast<unsigned int>(target_arch::gfx908),
1979 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1980 && (sizeof(value_type) <= 2) && (channels == 2) && (active_channels == 2))>>
1985 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1987 static_cast<unsigned int>(target_arch::gfx908),
1991 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
1992 && (sizeof(value_type) <= 2) && (channels == 3) && (active_channels == 3))>>
1997 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
1999 static_cast<unsigned int>(target_arch::gfx908),
2003 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2004 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 3))>>
2009 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2011 static_cast<unsigned int>(target_arch::gfx908),
2015 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2016 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 4))>>
2021 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2023 static_cast<unsigned int>(target_arch::gfx908),
2027 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2028 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
2029 && (active_channels == 1))>>
2034 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2036 static_cast<unsigned int>(target_arch::gfx908),
2040 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2041 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
2042 && (active_channels == 2))>>
2047 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2049 static_cast<unsigned int>(target_arch::gfx908),
2053 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2054 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
2055 && (active_channels == 3))>>
2060 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2062 static_cast<unsigned int>(target_arch::gfx908),
2066 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2067 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2068 && (active_channels == 3))>>
2073 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2075 static_cast<unsigned int>(target_arch::gfx908),
2079 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2080 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2081 && (active_channels == 4))>>
2086 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2088 static_cast<unsigned int>(target_arch::gfx908),
2092 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2093 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
2094 && (active_channels == 1))>>
2099 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2101 static_cast<unsigned int>(target_arch::gfx908),
2105 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2106 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
2107 && (active_channels == 2))>>
2112 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2114 static_cast<unsigned int>(target_arch::gfx908),
2118 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2119 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
2120 && (active_channels == 3))>>
2125 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2127 static_cast<unsigned int>(target_arch::gfx908),
2131 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2132 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2133 && (active_channels == 3))>>
2138 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2140 static_cast<unsigned int>(target_arch::gfx908),
2144 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2145 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2146 && (active_channels == 4))>>
2151 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2153 static_cast<unsigned int>(target_arch::gfx908),
2157 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2158 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 1)
2159 && (active_channels == 1))>>
2164 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2166 static_cast<unsigned int>(target_arch::gfx908),
2170 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2171 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 2)
2172 && (active_channels == 2))>>
2177 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2179 static_cast<unsigned int>(target_arch::gfx908),
2183 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2184 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 3)
2185 && (active_channels == 3))>>
2190 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2192 static_cast<unsigned int>(target_arch::gfx908),
2196 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2197 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
2198 && (active_channels == 3))>>
2203 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2205 static_cast<unsigned int>(target_arch::gfx908),
2209 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2210 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
2211 && (active_channels == 4))>>
2216 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2218 static_cast<unsigned int>(target_arch::gfx908),
2222 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2223 && (sizeof(value_type) <= 1) && (channels == 1) && (active_channels == 1))>>
2228 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2230 static_cast<unsigned int>(target_arch::gfx908),
2234 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2235 && (sizeof(value_type) <= 1) && (channels == 2) && (active_channels == 2))>>
2240 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2242 static_cast<unsigned int>(target_arch::gfx908),
2246 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2247 && (sizeof(value_type) <= 1) && (channels == 3) && (active_channels == 3))>>
2252 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2254 static_cast<unsigned int>(target_arch::gfx908),
2258 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2259 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 3))>>
2264 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2266 static_cast<unsigned int>(target_arch::gfx908),
2270 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2271 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 4))>>
2276 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2278 static_cast<unsigned int>(target_arch::unknown),
2282 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2283 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
2284 && (active_channels == 1))>>
2289 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2291 static_cast<unsigned int>(target_arch::unknown),
2295 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2296 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
2297 && (active_channels == 2))>>
2302 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2304 static_cast<unsigned int>(target_arch::unknown),
2308 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2309 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
2310 && (active_channels == 3))>>
2315 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2317 static_cast<unsigned int>(target_arch::unknown),
2321 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2322 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2323 && (active_channels == 3))>>
2328 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2330 static_cast<unsigned int>(target_arch::unknown),
2334 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2335 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2336 && (active_channels == 4))>>
2341 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2343 static_cast<unsigned int>(target_arch::unknown),
2347 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2348 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
2349 && (active_channels == 1))>>
2354 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2356 static_cast<unsigned int>(target_arch::unknown),
2360 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2361 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
2362 && (active_channels == 2))>>
2367 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2369 static_cast<unsigned int>(target_arch::unknown),
2373 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2374 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
2375 && (active_channels == 3))>>
2380 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2382 static_cast<unsigned int>(target_arch::unknown),
2386 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2387 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2388 && (active_channels == 3))>>
2393 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2395 static_cast<unsigned int>(target_arch::unknown),
2399 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2400 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2401 && (active_channels == 4))>>
2406 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2408 static_cast<unsigned int>(target_arch::unknown),
2412 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2413 && (sizeof(value_type) <= 2) && (channels == 1) && (active_channels == 1))>>
2418 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2420 static_cast<unsigned int>(target_arch::unknown),
2424 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2425 && (sizeof(value_type) <= 2) && (channels == 2) && (active_channels == 2))>>
2430 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2432 static_cast<unsigned int>(target_arch::unknown),
2436 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2437 && (sizeof(value_type) <= 2) && (channels == 3) && (active_channels == 3))>>
2442 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2444 static_cast<unsigned int>(target_arch::unknown),
2448 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2449 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 3))>>
2454 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2456 static_cast<unsigned int>(target_arch::unknown),
2460 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2461 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 4))>>
2466 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2468 static_cast<unsigned int>(target_arch::unknown),
2472 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2473 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
2474 && (active_channels == 1))>>
2479 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2481 static_cast<unsigned int>(target_arch::unknown),
2485 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2486 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
2487 && (active_channels == 2))>>
2492 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2494 static_cast<unsigned int>(target_arch::unknown),
2498 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2499 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
2500 && (active_channels == 3))>>
2505 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2507 static_cast<unsigned int>(target_arch::unknown),
2511 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2512 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2513 && (active_channels == 3))>>
2518 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2520 static_cast<unsigned int>(target_arch::unknown),
2524 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2525 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2526 && (active_channels == 4))>>
2531 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2533 static_cast<unsigned int>(target_arch::unknown),
2537 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2538 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
2539 && (active_channels == 1))>>
2544 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2546 static_cast<unsigned int>(target_arch::unknown),
2550 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2551 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
2552 && (active_channels == 2))>>
2557 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2559 static_cast<unsigned int>(target_arch::unknown),
2563 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2564 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
2565 && (active_channels == 3))>>
2570 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2572 static_cast<unsigned int>(target_arch::unknown),
2576 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2577 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2578 && (active_channels == 3))>>
2583 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2585 static_cast<unsigned int>(target_arch::unknown),
2589 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2590 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2591 && (active_channels == 4))>>
2596 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2598 static_cast<unsigned int>(target_arch::unknown),
2602 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2603 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 1)
2604 && (active_channels == 1))>>
2609 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2611 static_cast<unsigned int>(target_arch::unknown),
2615 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2616 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 2)
2617 && (active_channels == 2))>>
2622 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2624 static_cast<unsigned int>(target_arch::unknown),
2628 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2629 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 3)
2630 && (active_channels == 3))>>
2635 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2637 static_cast<unsigned int>(target_arch::unknown),
2641 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2642 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
2643 && (active_channels == 3))>>
2648 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2650 static_cast<unsigned int>(target_arch::unknown),
2654 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2655 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
2656 && (active_channels == 4))>>
2661 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2663 static_cast<unsigned int>(target_arch::unknown),
2667 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2668 && (sizeof(value_type) <= 1) && (channels == 1) && (active_channels == 1))>>
2673 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2675 static_cast<unsigned int>(target_arch::unknown),
2679 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2680 && (sizeof(value_type) <= 1) && (channels == 2) && (active_channels == 2))>>
2685 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2687 static_cast<unsigned int>(target_arch::unknown),
2691 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2692 && (sizeof(value_type) <= 1) && (channels == 3) && (active_channels == 3))>>
2697 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2699 static_cast<unsigned int>(target_arch::unknown),
2703 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2704 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 3))>>
2709 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2711 static_cast<unsigned int>(target_arch::unknown),
2715 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2716 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 4))>>
2721 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2723 static_cast<unsigned int>(target_arch::gfx90a),
2727 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2728 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
2729 && (active_channels == 1))>>
2734 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2736 static_cast<unsigned int>(target_arch::gfx90a),
2740 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2741 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
2742 && (active_channels == 2))>>
2747 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2749 static_cast<unsigned int>(target_arch::gfx90a),
2753 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2754 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
2755 && (active_channels == 3))>>
2760 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2762 static_cast<unsigned int>(target_arch::gfx90a),
2766 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2767 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2768 && (active_channels == 3))>>
2773 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2775 static_cast<unsigned int>(target_arch::gfx90a),
2779 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2780 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2781 && (active_channels == 4))>>
2786 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2788 static_cast<unsigned int>(target_arch::gfx90a),
2792 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2793 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
2794 && (active_channels == 1))>>
2799 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2801 static_cast<unsigned int>(target_arch::gfx90a),
2805 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2806 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
2807 && (active_channels == 2))>>
2812 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2814 static_cast<unsigned int>(target_arch::gfx90a),
2818 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2819 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
2820 && (active_channels == 3))>>
2825 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2827 static_cast<unsigned int>(target_arch::gfx90a),
2831 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2832 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2833 && (active_channels == 3))>>
2838 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2840 static_cast<unsigned int>(target_arch::gfx90a),
2844 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2845 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
2846 && (active_channels == 4))>>
2851 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2853 static_cast<unsigned int>(target_arch::gfx90a),
2857 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2858 && (sizeof(value_type) <= 2) && (channels == 1) && (active_channels == 1))>>
2863 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2865 static_cast<unsigned int>(target_arch::gfx90a),
2869 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2870 && (sizeof(value_type) <= 2) && (channels == 2) && (active_channels == 2))>>
2875 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2877 static_cast<unsigned int>(target_arch::gfx90a),
2881 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2882 && (sizeof(value_type) <= 2) && (channels == 3) && (active_channels == 3))>>
2887 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2889 static_cast<unsigned int>(target_arch::gfx90a),
2893 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2894 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 3))>>
2899 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2901 static_cast<unsigned int>(target_arch::gfx90a),
2905 std::enable_if_t<(bool(rocprim::is_floating_point<value_type>::value)
2906 && (sizeof(value_type) <= 2) && (channels == 4) && (active_channels == 4))>>
2911 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2913 static_cast<unsigned int>(target_arch::gfx90a),
2917 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2918 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 1)
2919 && (active_channels == 1))>>
2924 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2926 static_cast<unsigned int>(target_arch::gfx90a),
2930 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2931 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 2)
2932 && (active_channels == 2))>>
2937 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2939 static_cast<unsigned int>(target_arch::gfx90a),
2943 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2944 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 3)
2945 && (active_channels == 3))>>
2950 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2952 static_cast<unsigned int>(target_arch::gfx90a),
2956 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2957 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2958 && (active_channels == 3))>>
2963 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2965 static_cast<unsigned int>(target_arch::gfx90a),
2969 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2970 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4) && (channels == 4)
2971 && (active_channels == 4))>>
2976 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2978 static_cast<unsigned int>(target_arch::gfx90a),
2982 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2983 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 1)
2984 && (active_channels == 1))>>
2989 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
2991 static_cast<unsigned int>(target_arch::gfx90a),
2995 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
2996 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 2)
2997 && (active_channels == 2))>>
3002 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3004 static_cast<unsigned int>(target_arch::gfx90a),
3008 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3009 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 3)
3010 && (active_channels == 3))>>
3015 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3017 static_cast<unsigned int>(target_arch::gfx90a),
3021 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3022 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
3023 && (active_channels == 3))>>
3028 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3030 static_cast<unsigned int>(target_arch::gfx90a),
3034 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3035 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2) && (channels == 4)
3036 && (active_channels == 4))>>
3041 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3043 static_cast<unsigned int>(target_arch::gfx90a),
3047 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3048 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 1)
3049 && (active_channels == 1))>>
3054 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3056 static_cast<unsigned int>(target_arch::gfx90a),
3060 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3061 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 2)
3062 && (active_channels == 2))>>
3067 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3069 static_cast<unsigned int>(target_arch::gfx90a),
3073 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3074 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 3)
3075 && (active_channels == 3))>>
3080 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3082 static_cast<unsigned int>(target_arch::gfx90a),
3086 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3087 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
3088 && (active_channels == 3))>>
3093 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3095 static_cast<unsigned int>(target_arch::gfx90a),
3099 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3100 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1) && (channels == 4)
3101 && (active_channels == 4))>>
3106 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3108 static_cast<unsigned int>(target_arch::gfx90a),
3112 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3113 && (sizeof(value_type) <= 1) && (channels == 1) && (active_channels == 1))>>
3118 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3120 static_cast<unsigned int>(target_arch::gfx90a),
3124 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3125 && (sizeof(value_type) <= 1) && (channels == 2) && (active_channels == 2))>>
3130 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3132 static_cast<unsigned int>(target_arch::gfx90a),
3136 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3137 && (sizeof(value_type) <= 1) && (channels == 3) && (active_channels == 3))>>
3142 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3144 static_cast<unsigned int>(target_arch::gfx90a),
3148 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3149 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 3))>>
3154 template<
class value_type,
unsigned int channels,
unsigned int active_channels>
3156 static_cast<unsigned int>(target_arch::gfx90a),
3160 std::enable_if_t<(!bool(rocprim::is_floating_point<value_type>::value)
3161 && (sizeof(value_type) <= 1) && (channels == 4) && (active_channels == 4))>>
3167 END_ROCPRIM_NAMESPACE
3172 #endif // ROCPRIM_DEVICE_DETAIL_CONFIG_DEVICE_HISTOGRAM_HPP_ Configuration of device-level histogram operation.
Definition: device_config_helper.hpp:631
Definition: device_histogram.hpp:46
Deprecated: Configuration of device-level scan primitives.
Definition: block_histogram.hpp:62
Definition: device_config_helper.hpp:660