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