21 #ifndef ROCPRIM_DEVICE_DETAIL_CONFIG_DEVICE_MERGE_SORT_BLOCK_MERGE_HPP_ 22 #define ROCPRIM_DEVICE_DETAIL_CONFIG_DEVICE_MERGE_SORT_BLOCK_MERGE_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 class value_type = rocprim::empty_type,
50 template<
class key_type,
class value_type>
52 static_cast<unsigned int>(target_arch::gfx1030),
55 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
56 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
57 && (sizeof(value_type) > 8))>>
62 template<class key_type, class value_type>
63 struct default_merge_sort_block_merge_config<
64 static_cast<unsigned int>(target_arch::gfx1030),
67 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
68 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
69 && (sizeof(value_type) > 4))>>
70 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
74 template<class key_type, class value_type>
75 struct default_merge_sort_block_merge_config<
76 static_cast<unsigned int>(target_arch::gfx1030),
79 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
80 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
81 && (sizeof(value_type) > 2))>>
82 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
86 template<class key_type, class value_type>
87 struct default_merge_sort_block_merge_config<
88 static_cast<unsigned int>(target_arch::gfx1030),
91 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
92 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
93 && (sizeof(value_type) > 1))>>
94 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
98 template<class key_type, class value_type>
99 struct default_merge_sort_block_merge_config<
100 static_cast<unsigned int>(target_arch::gfx1030),
103 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
104 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
105 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
106 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
110 template<class key_type, class value_type>
111 struct default_merge_sort_block_merge_config<
112 static_cast<unsigned int>(target_arch::gfx1030),
115 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
116 && (sizeof(key_type) > 4)
117 && (std::is_same<value_type, rocprim::empty_type>::value))>>
118 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
122 template<class key_type, class value_type>
123 struct default_merge_sort_block_merge_config<
124 static_cast<unsigned int>(target_arch::gfx1030),
127 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
128 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
129 && (sizeof(value_type) > 8))>>
130 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
134 template<class key_type, class value_type>
135 struct default_merge_sort_block_merge_config<
136 static_cast<unsigned int>(target_arch::gfx1030),
139 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
140 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
141 && (sizeof(value_type) > 4))>>
142 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
146 template<class key_type, class value_type>
147 struct default_merge_sort_block_merge_config<
148 static_cast<unsigned int>(target_arch::gfx1030),
151 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
152 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
153 && (sizeof(value_type) > 2))>>
154 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
158 template<class key_type, class value_type>
159 struct default_merge_sort_block_merge_config<
160 static_cast<unsigned int>(target_arch::gfx1030),
163 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
164 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
165 && (sizeof(value_type) > 1))>>
166 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
170 template<class key_type, class value_type>
171 struct default_merge_sort_block_merge_config<
172 static_cast<unsigned int>(target_arch::gfx1030),
175 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
176 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
177 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
178 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
182 template<class key_type, class value_type>
183 struct default_merge_sort_block_merge_config<
184 static_cast<unsigned int>(target_arch::gfx1030),
187 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
188 && (sizeof(key_type) > 2)
189 && (std::is_same<value_type, rocprim::empty_type>::value))>>
190 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
194 template<class key_type, class value_type>
195 struct default_merge_sort_block_merge_config<
196 static_cast<unsigned int>(target_arch::gfx1030),
199 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
200 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
201 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 1>
205 template<class key_type, class value_type>
206 struct default_merge_sort_block_merge_config<
207 static_cast<unsigned int>(target_arch::gfx1030),
210 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
211 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
212 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
216 template<class key_type, class value_type>
217 struct default_merge_sort_block_merge_config<
218 static_cast<unsigned int>(target_arch::gfx1030),
221 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
222 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
223 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 2>
227 template<class key_type, class value_type>
228 struct default_merge_sort_block_merge_config<
229 static_cast<unsigned int>(target_arch::gfx1030),
232 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
233 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
234 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 4>
238 template<class key_type, class value_type>
239 struct default_merge_sort_block_merge_config<
240 static_cast<unsigned int>(target_arch::gfx1030),
243 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
244 && (sizeof(value_type) <= 1)
245 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
246 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 4>
250 template<class key_type, class value_type>
251 struct default_merge_sort_block_merge_config<
252 static_cast<unsigned int>(target_arch::gfx1030),
255 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
256 && (std::is_same<value_type, rocprim::empty_type>::value))>>
257 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
261 template<class key_type, class value_type>
262 struct default_merge_sort_block_merge_config<
263 static_cast<unsigned int>(target_arch::gfx1030),
266 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
267 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
268 && (sizeof(value_type) > 8))>>
269 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
273 template<class key_type, class value_type>
274 struct default_merge_sort_block_merge_config<
275 static_cast<unsigned int>(target_arch::gfx1030),
278 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
279 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
280 && (sizeof(value_type) > 4))>>
281 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
285 template<class key_type, class value_type>
286 struct default_merge_sort_block_merge_config<
287 static_cast<unsigned int>(target_arch::gfx1030),
290 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
291 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
292 && (sizeof(value_type) > 2))>>
293 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
297 template<class key_type, class value_type>
298 struct default_merge_sort_block_merge_config<
299 static_cast<unsigned int>(target_arch::gfx1030),
302 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
303 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
304 && (sizeof(value_type) > 1))>>
305 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
309 template<class key_type, class value_type>
310 struct default_merge_sort_block_merge_config<
311 static_cast<unsigned int>(target_arch::gfx1030),
314 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
315 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
316 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
317 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
321 template<class key_type, class value_type>
322 struct default_merge_sort_block_merge_config<
323 static_cast<unsigned int>(target_arch::gfx1030),
326 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
327 && (sizeof(key_type) > 4)
328 && (std::is_same<value_type, rocprim::empty_type>::value))>>
329 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
333 template<class key_type, class value_type>
334 struct default_merge_sort_block_merge_config<
335 static_cast<unsigned int>(target_arch::gfx1030),
338 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
339 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
340 && (sizeof(value_type) > 8))>>
341 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
345 template<class key_type, class value_type>
346 struct default_merge_sort_block_merge_config<
347 static_cast<unsigned int>(target_arch::gfx1030),
350 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
351 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
352 && (sizeof(value_type) > 4))>>
353 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
357 template<class key_type, class value_type>
358 struct default_merge_sort_block_merge_config<
359 static_cast<unsigned int>(target_arch::gfx1030),
362 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
363 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
364 && (sizeof(value_type) > 2))>>
365 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
369 template<class key_type, class value_type>
370 struct default_merge_sort_block_merge_config<
371 static_cast<unsigned int>(target_arch::gfx1030),
374 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
375 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
376 && (sizeof(value_type) > 1))>>
377 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
381 template<class key_type, class value_type>
382 struct default_merge_sort_block_merge_config<
383 static_cast<unsigned int>(target_arch::gfx1030),
386 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
387 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
388 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
389 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
393 template<class key_type, class value_type>
394 struct default_merge_sort_block_merge_config<
395 static_cast<unsigned int>(target_arch::gfx1030),
398 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
399 && (sizeof(key_type) > 2)
400 && (std::is_same<value_type, rocprim::empty_type>::value))>>
401 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
405 template<class key_type, class value_type>
406 struct default_merge_sort_block_merge_config<
407 static_cast<unsigned int>(target_arch::gfx1030),
410 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
411 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 16)
412 && (sizeof(value_type) > 8))>>
413 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
417 template<class key_type, class value_type>
418 struct default_merge_sort_block_merge_config<
419 static_cast<unsigned int>(target_arch::gfx1030),
422 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
423 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 8)
424 && (sizeof(value_type) > 4))>>
425 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
429 template<class key_type, class value_type>
430 struct default_merge_sort_block_merge_config<
431 static_cast<unsigned int>(target_arch::gfx1030),
434 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
435 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 4)
436 && (sizeof(value_type) > 2))>>
437 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 4>
441 template<class key_type, class value_type>
442 struct default_merge_sort_block_merge_config<
443 static_cast<unsigned int>(target_arch::gfx1030),
446 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
447 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 2)
448 && (sizeof(value_type) > 1))>>
449 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
453 template<class key_type, class value_type>
454 struct default_merge_sort_block_merge_config<
455 static_cast<unsigned int>(target_arch::gfx1030),
458 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
459 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 1)
460 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
461 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
465 template<class key_type, class value_type>
466 struct default_merge_sort_block_merge_config<
467 static_cast<unsigned int>(target_arch::gfx1030),
470 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
471 && (sizeof(key_type) > 1)
472 && (std::is_same<value_type, rocprim::empty_type>::value))>>
473 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
477 template<class key_type, class value_type>
478 struct default_merge_sort_block_merge_config<
479 static_cast<unsigned int>(target_arch::gfx1030),
482 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
483 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
484 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
488 template<class key_type, class value_type>
489 struct default_merge_sort_block_merge_config<
490 static_cast<unsigned int>(target_arch::gfx1030),
493 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
494 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
495 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
499 template<class key_type, class value_type>
500 struct default_merge_sort_block_merge_config<
501 static_cast<unsigned int>(target_arch::gfx1030),
504 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
505 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
506 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
510 template<class key_type, class value_type>
511 struct default_merge_sort_block_merge_config<
512 static_cast<unsigned int>(target_arch::gfx1030),
515 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
516 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
517 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
521 template<class key_type, class value_type>
522 struct default_merge_sort_block_merge_config<
523 static_cast<unsigned int>(target_arch::gfx1030),
526 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
527 && (sizeof(value_type) <= 1)
528 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
529 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
533 template<class key_type, class value_type>
534 struct default_merge_sort_block_merge_config<
535 static_cast<unsigned int>(target_arch::gfx1030),
538 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
539 && (std::is_same<value_type, rocprim::empty_type>::value))>>
540 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
544 template<class key_type, class value_type>
545 struct default_merge_sort_block_merge_config<
546 static_cast<unsigned int>(target_arch::gfx900),
549 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
550 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
551 && (sizeof(value_type) > 8))>>
552 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
556 template<class key_type, class value_type>
557 struct default_merge_sort_block_merge_config<
558 static_cast<unsigned int>(target_arch::gfx900),
561 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
562 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
563 && (sizeof(value_type) > 4))>>
564 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
568 template<class key_type, class value_type>
569 struct default_merge_sort_block_merge_config<
570 static_cast<unsigned int>(target_arch::gfx900),
573 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
574 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
575 && (sizeof(value_type) > 2))>>
576 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
580 template<class key_type, class value_type>
581 struct default_merge_sort_block_merge_config<
582 static_cast<unsigned int>(target_arch::gfx900),
585 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
586 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
587 && (sizeof(value_type) > 1))>>
588 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
592 template<class key_type, class value_type>
593 struct default_merge_sort_block_merge_config<
594 static_cast<unsigned int>(target_arch::gfx900),
597 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
598 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
599 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
600 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
604 template<class key_type, class value_type>
605 struct default_merge_sort_block_merge_config<
606 static_cast<unsigned int>(target_arch::gfx900),
609 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
610 && (sizeof(key_type) > 4)
611 && (std::is_same<value_type, rocprim::empty_type>::value))>>
612 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
616 template<class key_type, class value_type>
617 struct default_merge_sort_block_merge_config<
618 static_cast<unsigned int>(target_arch::gfx900),
621 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
622 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
623 && (sizeof(value_type) > 8))>>
624 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
628 template<class key_type, class value_type>
629 struct default_merge_sort_block_merge_config<
630 static_cast<unsigned int>(target_arch::gfx900),
633 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
634 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
635 && (sizeof(value_type) > 4))>>
636 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
640 template<class key_type, class value_type>
641 struct default_merge_sort_block_merge_config<
642 static_cast<unsigned int>(target_arch::gfx900),
645 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
646 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
647 && (sizeof(value_type) > 2))>>
648 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
652 template<class key_type, class value_type>
653 struct default_merge_sort_block_merge_config<
654 static_cast<unsigned int>(target_arch::gfx900),
657 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
658 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
659 && (sizeof(value_type) > 1))>>
660 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
664 template<class key_type, class value_type>
665 struct default_merge_sort_block_merge_config<
666 static_cast<unsigned int>(target_arch::gfx900),
669 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
670 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
671 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
672 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
676 template<class key_type, class value_type>
677 struct default_merge_sort_block_merge_config<
678 static_cast<unsigned int>(target_arch::gfx900),
681 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
682 && (sizeof(key_type) > 2)
683 && (std::is_same<value_type, rocprim::empty_type>::value))>>
684 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
688 template<class key_type, class value_type>
689 struct default_merge_sort_block_merge_config<
690 static_cast<unsigned int>(target_arch::gfx900),
693 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
694 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
695 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
699 template<class key_type, class value_type>
700 struct default_merge_sort_block_merge_config<
701 static_cast<unsigned int>(target_arch::gfx900),
704 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
705 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
706 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
710 template<class key_type, class value_type>
711 struct default_merge_sort_block_merge_config<
712 static_cast<unsigned int>(target_arch::gfx900),
715 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
716 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
717 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
721 template<class key_type, class value_type>
722 struct default_merge_sort_block_merge_config<
723 static_cast<unsigned int>(target_arch::gfx900),
726 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
727 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
728 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
732 template<class key_type, class value_type>
733 struct default_merge_sort_block_merge_config<
734 static_cast<unsigned int>(target_arch::gfx900),
737 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
738 && (sizeof(value_type) <= 1)
739 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
740 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
744 template<class key_type, class value_type>
745 struct default_merge_sort_block_merge_config<
746 static_cast<unsigned int>(target_arch::gfx900),
749 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
750 && (std::is_same<value_type, rocprim::empty_type>::value))>>
751 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
755 template<class key_type, class value_type>
756 struct default_merge_sort_block_merge_config<
757 static_cast<unsigned int>(target_arch::gfx900),
760 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
761 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
762 && (sizeof(value_type) > 8))>>
763 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
767 template<class key_type, class value_type>
768 struct default_merge_sort_block_merge_config<
769 static_cast<unsigned int>(target_arch::gfx900),
772 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
773 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
774 && (sizeof(value_type) > 4))>>
775 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
779 template<class key_type, class value_type>
780 struct default_merge_sort_block_merge_config<
781 static_cast<unsigned int>(target_arch::gfx900),
784 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
785 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
786 && (sizeof(value_type) > 2))>>
787 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
791 template<class key_type, class value_type>
792 struct default_merge_sort_block_merge_config<
793 static_cast<unsigned int>(target_arch::gfx900),
796 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
797 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
798 && (sizeof(value_type) > 1))>>
799 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
803 template<class key_type, class value_type>
804 struct default_merge_sort_block_merge_config<
805 static_cast<unsigned int>(target_arch::gfx900),
808 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
809 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
810 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
811 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
815 template<class key_type, class value_type>
816 struct default_merge_sort_block_merge_config<
817 static_cast<unsigned int>(target_arch::gfx900),
820 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
821 && (sizeof(key_type) > 4)
822 && (std::is_same<value_type, rocprim::empty_type>::value))>>
823 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
827 template<class key_type, class value_type>
828 struct default_merge_sort_block_merge_config<
829 static_cast<unsigned int>(target_arch::gfx900),
832 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
833 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
834 && (sizeof(value_type) > 8))>>
835 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
839 template<class key_type, class value_type>
840 struct default_merge_sort_block_merge_config<
841 static_cast<unsigned int>(target_arch::gfx900),
844 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
845 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
846 && (sizeof(value_type) > 4))>>
847 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
851 template<class key_type, class value_type>
852 struct default_merge_sort_block_merge_config<
853 static_cast<unsigned int>(target_arch::gfx900),
856 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
857 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
858 && (sizeof(value_type) > 2))>>
859 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
863 template<class key_type, class value_type>
864 struct default_merge_sort_block_merge_config<
865 static_cast<unsigned int>(target_arch::gfx900),
868 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
869 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
870 && (sizeof(value_type) > 1))>>
871 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
875 template<class key_type, class value_type>
876 struct default_merge_sort_block_merge_config<
877 static_cast<unsigned int>(target_arch::gfx900),
880 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
881 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
882 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
883 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
887 template<class key_type, class value_type>
888 struct default_merge_sort_block_merge_config<
889 static_cast<unsigned int>(target_arch::gfx900),
892 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
893 && (sizeof(key_type) > 2)
894 && (std::is_same<value_type, rocprim::empty_type>::value))>>
895 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
899 template<class key_type, class value_type>
900 struct default_merge_sort_block_merge_config<
901 static_cast<unsigned int>(target_arch::gfx900),
904 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
905 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 16)
906 && (sizeof(value_type) > 8))>>
907 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
911 template<class key_type, class value_type>
912 struct default_merge_sort_block_merge_config<
913 static_cast<unsigned int>(target_arch::gfx900),
916 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
917 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 8)
918 && (sizeof(value_type) > 4))>>
919 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
923 template<class key_type, class value_type>
924 struct default_merge_sort_block_merge_config<
925 static_cast<unsigned int>(target_arch::gfx900),
928 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
929 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 4)
930 && (sizeof(value_type) > 2))>>
931 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
935 template<class key_type, class value_type>
936 struct default_merge_sort_block_merge_config<
937 static_cast<unsigned int>(target_arch::gfx900),
940 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
941 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 2)
942 && (sizeof(value_type) > 1))>>
943 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
947 template<class key_type, class value_type>
948 struct default_merge_sort_block_merge_config<
949 static_cast<unsigned int>(target_arch::gfx900),
952 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
953 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 1)
954 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
955 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
959 template<class key_type, class value_type>
960 struct default_merge_sort_block_merge_config<
961 static_cast<unsigned int>(target_arch::gfx900),
964 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
965 && (sizeof(key_type) > 1)
966 && (std::is_same<value_type, rocprim::empty_type>::value))>>
967 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
971 template<class key_type, class value_type>
972 struct default_merge_sort_block_merge_config<
973 static_cast<unsigned int>(target_arch::gfx900),
976 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
977 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
978 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
982 template<class key_type, class value_type>
983 struct default_merge_sort_block_merge_config<
984 static_cast<unsigned int>(target_arch::gfx900),
987 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
988 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
989 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
993 template<class key_type, class value_type>
994 struct default_merge_sort_block_merge_config<
995 static_cast<unsigned int>(target_arch::gfx900),
998 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
999 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
1000 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1004 template<class key_type, class value_type>
1005 struct default_merge_sort_block_merge_config<
1006 static_cast<unsigned int>(target_arch::gfx900),
1009 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1010 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
1011 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1015 template<class key_type, class value_type>
1016 struct default_merge_sort_block_merge_config<
1017 static_cast<unsigned int>(target_arch::gfx900),
1020 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1021 && (sizeof(value_type) <= 1)
1022 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1023 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1027 template<class key_type, class value_type>
1028 struct default_merge_sort_block_merge_config<
1029 static_cast<unsigned int>(target_arch::gfx900),
1032 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1033 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1034 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1038 template<class key_type, class value_type>
1039 struct default_merge_sort_block_merge_config<
1040 static_cast<unsigned int>(target_arch::gfx908),
1043 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1044 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
1045 && (sizeof(value_type) > 8))>>
1046 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1050 template<class key_type, class value_type>
1051 struct default_merge_sort_block_merge_config<
1052 static_cast<unsigned int>(target_arch::gfx908),
1055 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1056 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
1057 && (sizeof(value_type) > 4))>>
1058 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1062 template<class key_type, class value_type>
1063 struct default_merge_sort_block_merge_config<
1064 static_cast<unsigned int>(target_arch::gfx908),
1067 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1068 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
1069 && (sizeof(value_type) > 2))>>
1070 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1074 template<class key_type, class value_type>
1075 struct default_merge_sort_block_merge_config<
1076 static_cast<unsigned int>(target_arch::gfx908),
1079 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1080 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
1081 && (sizeof(value_type) > 1))>>
1082 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1086 template<class key_type, class value_type>
1087 struct default_merge_sort_block_merge_config<
1088 static_cast<unsigned int>(target_arch::gfx908),
1091 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1092 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
1093 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1094 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1098 template<class key_type, class value_type>
1099 struct default_merge_sort_block_merge_config<
1100 static_cast<unsigned int>(target_arch::gfx908),
1103 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1104 && (sizeof(key_type) > 4)
1105 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1106 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1110 template<class key_type, class value_type>
1111 struct default_merge_sort_block_merge_config<
1112 static_cast<unsigned int>(target_arch::gfx908),
1115 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1116 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
1117 && (sizeof(value_type) > 8))>>
1118 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
1122 template<class key_type, class value_type>
1123 struct default_merge_sort_block_merge_config<
1124 static_cast<unsigned int>(target_arch::gfx908),
1127 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1128 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
1129 && (sizeof(value_type) > 4))>>
1130 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1134 template<class key_type, class value_type>
1135 struct default_merge_sort_block_merge_config<
1136 static_cast<unsigned int>(target_arch::gfx908),
1139 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1140 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
1141 && (sizeof(value_type) > 2))>>
1142 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1146 template<class key_type, class value_type>
1147 struct default_merge_sort_block_merge_config<
1148 static_cast<unsigned int>(target_arch::gfx908),
1151 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1152 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
1153 && (sizeof(value_type) > 1))>>
1154 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1158 template<class key_type, class value_type>
1159 struct default_merge_sort_block_merge_config<
1160 static_cast<unsigned int>(target_arch::gfx908),
1163 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1164 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
1165 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1166 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1170 template<class key_type, class value_type>
1171 struct default_merge_sort_block_merge_config<
1172 static_cast<unsigned int>(target_arch::gfx908),
1175 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1176 && (sizeof(key_type) > 2)
1177 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1178 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1182 template<class key_type, class value_type>
1183 struct default_merge_sort_block_merge_config<
1184 static_cast<unsigned int>(target_arch::gfx908),
1187 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1188 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
1189 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1193 template<class key_type, class value_type>
1194 struct default_merge_sort_block_merge_config<
1195 static_cast<unsigned int>(target_arch::gfx908),
1198 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1199 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
1200 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1204 template<class key_type, class value_type>
1205 struct default_merge_sort_block_merge_config<
1206 static_cast<unsigned int>(target_arch::gfx908),
1209 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1210 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
1211 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1215 template<class key_type, class value_type>
1216 struct default_merge_sort_block_merge_config<
1217 static_cast<unsigned int>(target_arch::gfx908),
1220 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1221 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
1222 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1226 template<class key_type, class value_type>
1227 struct default_merge_sort_block_merge_config<
1228 static_cast<unsigned int>(target_arch::gfx908),
1231 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1232 && (sizeof(value_type) <= 1)
1233 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1234 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1238 template<class key_type, class value_type>
1239 struct default_merge_sort_block_merge_config<
1240 static_cast<unsigned int>(target_arch::gfx908),
1243 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1244 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1245 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1249 template<class key_type, class value_type>
1250 struct default_merge_sort_block_merge_config<
1251 static_cast<unsigned int>(target_arch::gfx908),
1254 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1255 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
1256 && (sizeof(value_type) > 8))>>
1257 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1261 template<class key_type, class value_type>
1262 struct default_merge_sort_block_merge_config<
1263 static_cast<unsigned int>(target_arch::gfx908),
1266 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1267 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
1268 && (sizeof(value_type) > 4))>>
1269 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1273 template<class key_type, class value_type>
1274 struct default_merge_sort_block_merge_config<
1275 static_cast<unsigned int>(target_arch::gfx908),
1278 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1279 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
1280 && (sizeof(value_type) > 2))>>
1281 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1285 template<class key_type, class value_type>
1286 struct default_merge_sort_block_merge_config<
1287 static_cast<unsigned int>(target_arch::gfx908),
1290 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1291 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
1292 && (sizeof(value_type) > 1))>>
1293 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1297 template<class key_type, class value_type>
1298 struct default_merge_sort_block_merge_config<
1299 static_cast<unsigned int>(target_arch::gfx908),
1302 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1303 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
1304 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1305 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1309 template<class key_type, class value_type>
1310 struct default_merge_sort_block_merge_config<
1311 static_cast<unsigned int>(target_arch::gfx908),
1314 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1315 && (sizeof(key_type) > 4)
1316 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1317 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1321 template<class key_type, class value_type>
1322 struct default_merge_sort_block_merge_config<
1323 static_cast<unsigned int>(target_arch::gfx908),
1326 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1327 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
1328 && (sizeof(value_type) > 8))>>
1329 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1333 template<class key_type, class value_type>
1334 struct default_merge_sort_block_merge_config<
1335 static_cast<unsigned int>(target_arch::gfx908),
1338 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1339 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
1340 && (sizeof(value_type) > 4))>>
1341 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1345 template<class key_type, class value_type>
1346 struct default_merge_sort_block_merge_config<
1347 static_cast<unsigned int>(target_arch::gfx908),
1350 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1351 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
1352 && (sizeof(value_type) > 2))>>
1353 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1357 template<class key_type, class value_type>
1358 struct default_merge_sort_block_merge_config<
1359 static_cast<unsigned int>(target_arch::gfx908),
1362 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1363 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
1364 && (sizeof(value_type) > 1))>>
1365 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1369 template<class key_type, class value_type>
1370 struct default_merge_sort_block_merge_config<
1371 static_cast<unsigned int>(target_arch::gfx908),
1374 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1375 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
1376 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1377 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1381 template<class key_type, class value_type>
1382 struct default_merge_sort_block_merge_config<
1383 static_cast<unsigned int>(target_arch::gfx908),
1386 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1387 && (sizeof(key_type) > 2)
1388 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1389 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1393 template<class key_type, class value_type>
1394 struct default_merge_sort_block_merge_config<
1395 static_cast<unsigned int>(target_arch::gfx908),
1398 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1399 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 16)
1400 && (sizeof(value_type) > 8))>>
1401 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1405 template<class key_type, class value_type>
1406 struct default_merge_sort_block_merge_config<
1407 static_cast<unsigned int>(target_arch::gfx908),
1410 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1411 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 8)
1412 && (sizeof(value_type) > 4))>>
1413 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1417 template<class key_type, class value_type>
1418 struct default_merge_sort_block_merge_config<
1419 static_cast<unsigned int>(target_arch::gfx908),
1422 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1423 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 4)
1424 && (sizeof(value_type) > 2))>>
1425 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1429 template<class key_type, class value_type>
1430 struct default_merge_sort_block_merge_config<
1431 static_cast<unsigned int>(target_arch::gfx908),
1434 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1435 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 2)
1436 && (sizeof(value_type) > 1))>>
1437 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1441 template<class key_type, class value_type>
1442 struct default_merge_sort_block_merge_config<
1443 static_cast<unsigned int>(target_arch::gfx908),
1446 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1447 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 1)
1448 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1449 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1453 template<class key_type, class value_type>
1454 struct default_merge_sort_block_merge_config<
1455 static_cast<unsigned int>(target_arch::gfx908),
1458 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1459 && (sizeof(key_type) > 1)
1460 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1461 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1465 template<class key_type, class value_type>
1466 struct default_merge_sort_block_merge_config<
1467 static_cast<unsigned int>(target_arch::gfx908),
1470 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1471 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
1472 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1476 template<class key_type, class value_type>
1477 struct default_merge_sort_block_merge_config<
1478 static_cast<unsigned int>(target_arch::gfx908),
1481 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1482 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
1483 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1487 template<class key_type, class value_type>
1488 struct default_merge_sort_block_merge_config<
1489 static_cast<unsigned int>(target_arch::gfx908),
1492 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1493 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
1494 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1498 template<class key_type, class value_type>
1499 struct default_merge_sort_block_merge_config<
1500 static_cast<unsigned int>(target_arch::gfx908),
1503 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1504 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
1505 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1509 template<class key_type, class value_type>
1510 struct default_merge_sort_block_merge_config<
1511 static_cast<unsigned int>(target_arch::gfx908),
1514 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1515 && (sizeof(value_type) <= 1)
1516 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1517 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1521 template<class key_type, class value_type>
1522 struct default_merge_sort_block_merge_config<
1523 static_cast<unsigned int>(target_arch::gfx908),
1526 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1527 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1528 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1532 template<class key_type, class value_type>
1533 struct default_merge_sort_block_merge_config<
1534 static_cast<unsigned int>(target_arch::unknown),
1537 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1538 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
1539 && (sizeof(value_type) > 8))>>
1540 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1544 template<class key_type, class value_type>
1545 struct default_merge_sort_block_merge_config<
1546 static_cast<unsigned int>(target_arch::unknown),
1549 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1550 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
1551 && (sizeof(value_type) > 4))>>
1552 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1556 template<class key_type, class value_type>
1557 struct default_merge_sort_block_merge_config<
1558 static_cast<unsigned int>(target_arch::unknown),
1561 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1562 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
1563 && (sizeof(value_type) > 2))>>
1564 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1568 template<class key_type, class value_type>
1569 struct default_merge_sort_block_merge_config<
1570 static_cast<unsigned int>(target_arch::unknown),
1573 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1574 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
1575 && (sizeof(value_type) > 1))>>
1576 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1580 template<class key_type, class value_type>
1581 struct default_merge_sort_block_merge_config<
1582 static_cast<unsigned int>(target_arch::unknown),
1585 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1586 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
1587 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1588 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1592 template<class key_type, class value_type>
1593 struct default_merge_sort_block_merge_config<
1594 static_cast<unsigned int>(target_arch::unknown),
1597 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1598 && (sizeof(key_type) > 4)
1599 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1600 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1604 template<class key_type, class value_type>
1605 struct default_merge_sort_block_merge_config<
1606 static_cast<unsigned int>(target_arch::unknown),
1609 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1610 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
1611 && (sizeof(value_type) > 8))>>
1612 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
1616 template<class key_type, class value_type>
1617 struct default_merge_sort_block_merge_config<
1618 static_cast<unsigned int>(target_arch::unknown),
1621 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1622 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
1623 && (sizeof(value_type) > 4))>>
1624 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1628 template<class key_type, class value_type>
1629 struct default_merge_sort_block_merge_config<
1630 static_cast<unsigned int>(target_arch::unknown),
1633 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1634 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
1635 && (sizeof(value_type) > 2))>>
1636 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1640 template<class key_type, class value_type>
1641 struct default_merge_sort_block_merge_config<
1642 static_cast<unsigned int>(target_arch::unknown),
1645 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1646 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
1647 && (sizeof(value_type) > 1))>>
1648 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1652 template<class key_type, class value_type>
1653 struct default_merge_sort_block_merge_config<
1654 static_cast<unsigned int>(target_arch::unknown),
1657 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1658 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
1659 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1660 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1664 template<class key_type, class value_type>
1665 struct default_merge_sort_block_merge_config<
1666 static_cast<unsigned int>(target_arch::unknown),
1669 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1670 && (sizeof(key_type) > 2)
1671 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1672 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1676 template<class key_type, class value_type>
1677 struct default_merge_sort_block_merge_config<
1678 static_cast<unsigned int>(target_arch::unknown),
1681 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1682 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
1683 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1687 template<class key_type, class value_type>
1688 struct default_merge_sort_block_merge_config<
1689 static_cast<unsigned int>(target_arch::unknown),
1692 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1693 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
1694 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1698 template<class key_type, class value_type>
1699 struct default_merge_sort_block_merge_config<
1700 static_cast<unsigned int>(target_arch::unknown),
1703 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1704 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
1705 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1709 template<class key_type, class value_type>
1710 struct default_merge_sort_block_merge_config<
1711 static_cast<unsigned int>(target_arch::unknown),
1714 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1715 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
1716 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1720 template<class key_type, class value_type>
1721 struct default_merge_sort_block_merge_config<
1722 static_cast<unsigned int>(target_arch::unknown),
1725 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1726 && (sizeof(value_type) <= 1)
1727 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1728 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1732 template<class key_type, class value_type>
1733 struct default_merge_sort_block_merge_config<
1734 static_cast<unsigned int>(target_arch::unknown),
1737 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1738 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1739 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1743 template<class key_type, class value_type>
1744 struct default_merge_sort_block_merge_config<
1745 static_cast<unsigned int>(target_arch::unknown),
1748 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1749 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
1750 && (sizeof(value_type) > 8))>>
1751 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1755 template<class key_type, class value_type>
1756 struct default_merge_sort_block_merge_config<
1757 static_cast<unsigned int>(target_arch::unknown),
1760 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1761 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
1762 && (sizeof(value_type) > 4))>>
1763 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1767 template<class key_type, class value_type>
1768 struct default_merge_sort_block_merge_config<
1769 static_cast<unsigned int>(target_arch::unknown),
1772 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1773 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
1774 && (sizeof(value_type) > 2))>>
1775 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1779 template<class key_type, class value_type>
1780 struct default_merge_sort_block_merge_config<
1781 static_cast<unsigned int>(target_arch::unknown),
1784 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1785 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
1786 && (sizeof(value_type) > 1))>>
1787 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1791 template<class key_type, class value_type>
1792 struct default_merge_sort_block_merge_config<
1793 static_cast<unsigned int>(target_arch::unknown),
1796 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1797 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
1798 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1799 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1803 template<class key_type, class value_type>
1804 struct default_merge_sort_block_merge_config<
1805 static_cast<unsigned int>(target_arch::unknown),
1808 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
1809 && (sizeof(key_type) > 4)
1810 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1811 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1815 template<class key_type, class value_type>
1816 struct default_merge_sort_block_merge_config<
1817 static_cast<unsigned int>(target_arch::unknown),
1820 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1821 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
1822 && (sizeof(value_type) > 8))>>
1823 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1827 template<class key_type, class value_type>
1828 struct default_merge_sort_block_merge_config<
1829 static_cast<unsigned int>(target_arch::unknown),
1832 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1833 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
1834 && (sizeof(value_type) > 4))>>
1835 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1839 template<class key_type, class value_type>
1840 struct default_merge_sort_block_merge_config<
1841 static_cast<unsigned int>(target_arch::unknown),
1844 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1845 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
1846 && (sizeof(value_type) > 2))>>
1847 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1851 template<class key_type, class value_type>
1852 struct default_merge_sort_block_merge_config<
1853 static_cast<unsigned int>(target_arch::unknown),
1856 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1857 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
1858 && (sizeof(value_type) > 1))>>
1859 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1863 template<class key_type, class value_type>
1864 struct default_merge_sort_block_merge_config<
1865 static_cast<unsigned int>(target_arch::unknown),
1868 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1869 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
1870 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1871 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1875 template<class key_type, class value_type>
1876 struct default_merge_sort_block_merge_config<
1877 static_cast<unsigned int>(target_arch::unknown),
1880 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
1881 && (sizeof(key_type) > 2)
1882 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1883 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1887 template<class key_type, class value_type>
1888 struct default_merge_sort_block_merge_config<
1889 static_cast<unsigned int>(target_arch::unknown),
1892 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1893 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 16)
1894 && (sizeof(value_type) > 8))>>
1895 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1899 template<class key_type, class value_type>
1900 struct default_merge_sort_block_merge_config<
1901 static_cast<unsigned int>(target_arch::unknown),
1904 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1905 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 8)
1906 && (sizeof(value_type) > 4))>>
1907 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1911 template<class key_type, class value_type>
1912 struct default_merge_sort_block_merge_config<
1913 static_cast<unsigned int>(target_arch::unknown),
1916 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1917 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 4)
1918 && (sizeof(value_type) > 2))>>
1919 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
1923 template<class key_type, class value_type>
1924 struct default_merge_sort_block_merge_config<
1925 static_cast<unsigned int>(target_arch::unknown),
1928 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1929 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 2)
1930 && (sizeof(value_type) > 1))>>
1931 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1935 template<class key_type, class value_type>
1936 struct default_merge_sort_block_merge_config<
1937 static_cast<unsigned int>(target_arch::unknown),
1940 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1941 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 1)
1942 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
1943 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1947 template<class key_type, class value_type>
1948 struct default_merge_sort_block_merge_config<
1949 static_cast<unsigned int>(target_arch::unknown),
1952 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
1953 && (sizeof(key_type) > 1)
1954 && (std::is_same<value_type, rocprim::empty_type>::value))>>
1955 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
1959 template<class key_type, class value_type>
1960 struct default_merge_sort_block_merge_config<
1961 static_cast<unsigned int>(target_arch::unknown),
1964 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1965 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
1966 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1970 template<class key_type, class value_type>
1971 struct default_merge_sort_block_merge_config<
1972 static_cast<unsigned int>(target_arch::unknown),
1975 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1976 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
1977 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1981 template<class key_type, class value_type>
1982 struct default_merge_sort_block_merge_config<
1983 static_cast<unsigned int>(target_arch::unknown),
1986 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1987 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
1988 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
1992 template<class key_type, class value_type>
1993 struct default_merge_sort_block_merge_config<
1994 static_cast<unsigned int>(target_arch::unknown),
1997 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
1998 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
1999 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2003 template<class key_type, class value_type>
2004 struct default_merge_sort_block_merge_config<
2005 static_cast<unsigned int>(target_arch::unknown),
2008 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2009 && (sizeof(value_type) <= 1)
2010 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2011 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2015 template<class key_type, class value_type>
2016 struct default_merge_sort_block_merge_config<
2017 static_cast<unsigned int>(target_arch::unknown),
2020 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2021 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2022 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2026 template<class key_type, class value_type>
2027 struct default_merge_sort_block_merge_config<
2028 static_cast<unsigned int>(target_arch::gfx90a),
2031 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2032 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
2033 && (sizeof(value_type) > 8))>>
2034 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2038 template<class key_type, class value_type>
2039 struct default_merge_sort_block_merge_config<
2040 static_cast<unsigned int>(target_arch::gfx90a),
2043 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2044 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
2045 && (sizeof(value_type) > 4))>>
2046 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2050 template<class key_type, class value_type>
2051 struct default_merge_sort_block_merge_config<
2052 static_cast<unsigned int>(target_arch::gfx90a),
2055 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2056 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
2057 && (sizeof(value_type) > 2))>>
2058 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2062 template<class key_type, class value_type>
2063 struct default_merge_sort_block_merge_config<
2064 static_cast<unsigned int>(target_arch::gfx90a),
2067 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2068 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
2069 && (sizeof(value_type) > 1))>>
2070 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2074 template<class key_type, class value_type>
2075 struct default_merge_sort_block_merge_config<
2076 static_cast<unsigned int>(target_arch::gfx90a),
2079 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2080 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
2081 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2082 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2086 template<class key_type, class value_type>
2087 struct default_merge_sort_block_merge_config<
2088 static_cast<unsigned int>(target_arch::gfx90a),
2091 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2092 && (sizeof(key_type) > 4)
2093 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2094 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2098 template<class key_type, class value_type>
2099 struct default_merge_sort_block_merge_config<
2100 static_cast<unsigned int>(target_arch::gfx90a),
2103 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2104 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
2105 && (sizeof(value_type) > 8))>>
2106 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 1024, 1>
2110 template<class key_type, class value_type>
2111 struct default_merge_sort_block_merge_config<
2112 static_cast<unsigned int>(target_arch::gfx90a),
2115 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2116 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
2117 && (sizeof(value_type) > 4))>>
2118 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2122 template<class key_type, class value_type>
2123 struct default_merge_sort_block_merge_config<
2124 static_cast<unsigned int>(target_arch::gfx90a),
2127 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2128 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
2129 && (sizeof(value_type) > 2))>>
2130 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2134 template<class key_type, class value_type>
2135 struct default_merge_sort_block_merge_config<
2136 static_cast<unsigned int>(target_arch::gfx90a),
2139 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2140 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
2141 && (sizeof(value_type) > 1))>>
2142 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2146 template<class key_type, class value_type>
2147 struct default_merge_sort_block_merge_config<
2148 static_cast<unsigned int>(target_arch::gfx90a),
2151 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2152 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
2153 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2154 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2158 template<class key_type, class value_type>
2159 struct default_merge_sort_block_merge_config<
2160 static_cast<unsigned int>(target_arch::gfx90a),
2163 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2164 && (sizeof(key_type) > 2)
2165 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2166 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2170 template<class key_type, class value_type>
2171 struct default_merge_sort_block_merge_config<
2172 static_cast<unsigned int>(target_arch::gfx90a),
2175 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2176 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
2177 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2181 template<class key_type, class value_type>
2182 struct default_merge_sort_block_merge_config<
2183 static_cast<unsigned int>(target_arch::gfx90a),
2186 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2187 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
2188 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2192 template<class key_type, class value_type>
2193 struct default_merge_sort_block_merge_config<
2194 static_cast<unsigned int>(target_arch::gfx90a),
2197 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2198 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
2199 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2203 template<class key_type, class value_type>
2204 struct default_merge_sort_block_merge_config<
2205 static_cast<unsigned int>(target_arch::gfx90a),
2208 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2209 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
2210 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2214 template<class key_type, class value_type>
2215 struct default_merge_sort_block_merge_config<
2216 static_cast<unsigned int>(target_arch::gfx90a),
2219 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2220 && (sizeof(value_type) <= 1)
2221 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2222 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2226 template<class key_type, class value_type>
2227 struct default_merge_sort_block_merge_config<
2228 static_cast<unsigned int>(target_arch::gfx90a),
2231 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2232 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2233 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2237 template<class key_type, class value_type>
2238 struct default_merge_sort_block_merge_config<
2239 static_cast<unsigned int>(target_arch::gfx90a),
2242 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2243 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 16)
2244 && (sizeof(value_type) > 8))>>
2245 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2249 template<class key_type, class value_type>
2250 struct default_merge_sort_block_merge_config<
2251 static_cast<unsigned int>(target_arch::gfx90a),
2254 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2255 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 8)
2256 && (sizeof(value_type) > 4))>>
2257 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2261 template<class key_type, class value_type>
2262 struct default_merge_sort_block_merge_config<
2263 static_cast<unsigned int>(target_arch::gfx90a),
2266 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2267 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 4)
2268 && (sizeof(value_type) > 2))>>
2269 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2273 template<class key_type, class value_type>
2274 struct default_merge_sort_block_merge_config<
2275 static_cast<unsigned int>(target_arch::gfx90a),
2278 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2279 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 2)
2280 && (sizeof(value_type) > 1))>>
2281 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2285 template<class key_type, class value_type>
2286 struct default_merge_sort_block_merge_config<
2287 static_cast<unsigned int>(target_arch::gfx90a),
2290 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2291 && (sizeof(key_type) > 4) && (sizeof(value_type) <= 1)
2292 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2293 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2297 template<class key_type, class value_type>
2298 struct default_merge_sort_block_merge_config<
2299 static_cast<unsigned int>(target_arch::gfx90a),
2302 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2303 && (sizeof(key_type) > 4)
2304 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2305 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2309 template<class key_type, class value_type>
2310 struct default_merge_sort_block_merge_config<
2311 static_cast<unsigned int>(target_arch::gfx90a),
2314 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2315 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 16)
2316 && (sizeof(value_type) > 8))>>
2317 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2321 template<class key_type, class value_type>
2322 struct default_merge_sort_block_merge_config<
2323 static_cast<unsigned int>(target_arch::gfx90a),
2326 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2327 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 8)
2328 && (sizeof(value_type) > 4))>>
2329 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2333 template<class key_type, class value_type>
2334 struct default_merge_sort_block_merge_config<
2335 static_cast<unsigned int>(target_arch::gfx90a),
2338 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2339 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 4)
2340 && (sizeof(value_type) > 2))>>
2341 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2345 template<class key_type, class value_type>
2346 struct default_merge_sort_block_merge_config<
2347 static_cast<unsigned int>(target_arch::gfx90a),
2350 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2351 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 2)
2352 && (sizeof(value_type) > 1))>>
2353 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2357 template<class key_type, class value_type>
2358 struct default_merge_sort_block_merge_config<
2359 static_cast<unsigned int>(target_arch::gfx90a),
2362 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2363 && (sizeof(key_type) > 2) && (sizeof(value_type) <= 1)
2364 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2365 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2369 template<class key_type, class value_type>
2370 struct default_merge_sort_block_merge_config<
2371 static_cast<unsigned int>(target_arch::gfx90a),
2374 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2375 && (sizeof(key_type) > 2)
2376 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2377 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2381 template<class key_type, class value_type>
2382 struct default_merge_sort_block_merge_config<
2383 static_cast<unsigned int>(target_arch::gfx90a),
2386 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2387 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 16)
2388 && (sizeof(value_type) > 8))>>
2389 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2393 template<class key_type, class value_type>
2394 struct default_merge_sort_block_merge_config<
2395 static_cast<unsigned int>(target_arch::gfx90a),
2398 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2399 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 8)
2400 && (sizeof(value_type) > 4))>>
2401 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2405 template<class key_type, class value_type>
2406 struct default_merge_sort_block_merge_config<
2407 static_cast<unsigned int>(target_arch::gfx90a),
2410 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2411 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 4)
2412 && (sizeof(value_type) > 2))>>
2413 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2417 template<class key_type, class value_type>
2418 struct default_merge_sort_block_merge_config<
2419 static_cast<unsigned int>(target_arch::gfx90a),
2422 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2423 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 2)
2424 && (sizeof(value_type) > 1))>>
2425 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2429 template<class key_type, class value_type>
2430 struct default_merge_sort_block_merge_config<
2431 static_cast<unsigned int>(target_arch::gfx90a),
2434 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2435 && (sizeof(key_type) > 1) && (sizeof(value_type) <= 1)
2436 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2437 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2441 template<class key_type, class value_type>
2442 struct default_merge_sort_block_merge_config<
2443 static_cast<unsigned int>(target_arch::gfx90a),
2446 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2447 && (sizeof(key_type) > 1)
2448 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2449 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2453 template<class key_type, class value_type>
2454 struct default_merge_sort_block_merge_config<
2455 static_cast<unsigned int>(target_arch::gfx90a),
2458 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2459 && (sizeof(value_type) <= 16) && (sizeof(value_type) > 8))>>
2460 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2464 template<class key_type, class value_type>
2465 struct default_merge_sort_block_merge_config<
2466 static_cast<unsigned int>(target_arch::gfx90a),
2469 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2470 && (sizeof(value_type) <= 8) && (sizeof(value_type) > 4))>>
2471 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2475 template<class key_type, class value_type>
2476 struct default_merge_sort_block_merge_config<
2477 static_cast<unsigned int>(target_arch::gfx90a),
2480 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2481 && (sizeof(value_type) <= 4) && (sizeof(value_type) > 2))>>
2482 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 512, 2>
2486 template<class key_type, class value_type>
2487 struct default_merge_sort_block_merge_config<
2488 static_cast<unsigned int>(target_arch::gfx90a),
2491 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2492 && (sizeof(value_type) <= 2) && (sizeof(value_type) > 1))>>
2493 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2497 template<class key_type, class value_type>
2498 struct default_merge_sort_block_merge_config<
2499 static_cast<unsigned int>(target_arch::gfx90a),
2502 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2503 && (sizeof(value_type) <= 1)
2504 && (!std::is_same<value_type, rocprim::empty_type>::value))>>
2505 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2509 template<class key_type, class value_type>
2510 struct default_merge_sort_block_merge_config<
2511 static_cast<unsigned int>(target_arch::gfx90a),
2514 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2515 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2516 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2520 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906), double>
2521 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2525 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906), float>
2526 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2530 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2533 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2537 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906), int>
2538 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2542 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2545 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 256, 4>
2549 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2551 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2555 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2558 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2562 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906), int8_t>
2563 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2567 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2569 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2573 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2576 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2580 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906), short>
2581 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2585 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2588 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2592 struct default_merge_sort_block_merge_config<static_cast<unsigned int>(target_arch::gfx906),
2595 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2599 template<class key_type, class value_type>
2600 struct default_merge_sort_block_merge_config<
2601 static_cast<unsigned int>(target_arch::gfx906),
2604 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2605 && (sizeof(key_type) > 4)
2606 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2607 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2611 template<class key_type, class value_type>
2612 struct default_merge_sort_block_merge_config<
2613 static_cast<unsigned int>(target_arch::gfx906),
2616 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2617 && (sizeof(key_type) > 2)
2618 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2619 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2623 template<class key_type, class value_type>
2624 struct default_merge_sort_block_merge_config<
2625 static_cast<unsigned int>(target_arch::gfx906),
2628 std::enable_if_t<(bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2629 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2630 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2634 template<class key_type, class value_type>
2635 struct default_merge_sort_block_merge_config<
2636 static_cast<unsigned int>(target_arch::gfx906),
2639 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 8)
2640 && (sizeof(key_type) > 4)
2641 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2642 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2646 template<class key_type, class value_type>
2647 struct default_merge_sort_block_merge_config<
2648 static_cast<unsigned int>(target_arch::gfx906),
2651 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 4)
2652 && (sizeof(key_type) > 2)
2653 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2654 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2658 template<class key_type, class value_type>
2659 struct default_merge_sort_block_merge_config<
2660 static_cast<unsigned int>(target_arch::gfx906),
2663 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 2)
2664 && (sizeof(key_type) > 1)
2665 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2666 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2670 template<class key_type, class value_type>
2671 struct default_merge_sort_block_merge_config<
2672 static_cast<unsigned int>(target_arch::gfx906),
2675 std::enable_if_t<(!bool(rocprim::is_floating_point<key_type>::value) && (sizeof(key_type) <= 1)
2676 && (std::is_same<value_type, rocprim::empty_type>::value))>>
2677 : merge_sort_block_merge_config<256, 1, (1 << 17) + 70000, 128, 128, 8>
2682 END_ROCPRIM_NAMESPACE
Definition: device_config_helper.hpp:148
Definition: device_config_helper.hpp:137
Deprecated: Configuration of device-level scan primitives.
Definition: block_histogram.hpp:62
Definition: device_merge_sort_block_merge.hpp:45