10 #define TO_SEQUENCE(a, n)                                                                    \ 
   11     _Pragma("clang diagnostic push") _Pragma(                                                \
 
   12         "clang diagnostic ignored \"-Wc++20-extensions\"")[a]<ck_tile::index_t... IDX_IDX_>( \
 
   13         ck_tile::sequence<IDX_IDX_...>)                                                      \
 
   15         return ck_tile::sequence<a.at(ck_tile::number<IDX_IDX_>{})...>{};                    \
 
   17     (ck_tile::make_index_sequence<n>{});                                                     \
 
   18     _Pragma("clang diagnostic pop")
 
   23 #define TO_SEQUENCE(a, n)                                                                     \ 
   25         static_assert(a.size() >= n, "wrong! out of bound");                                  \
 
   26         static_assert(n <= 10, "not implemented");                                            \
 
   27         if constexpr(n == 0)                                                                  \
 
   29             return ck_tile::sequence<>{};                                                     \
 
   31         else if constexpr(n == 1)                                                             \
 
   33             return ck_tile::sequence<a[0]>{};                                                 \
 
   35         else if constexpr(n == 2)                                                             \
 
   37             return ck_tile::sequence<a[0], a[1]>{};                                           \
 
   39         else if constexpr(n == 3)                                                             \
 
   41             return ck_tile::sequence<a[0], a[1], a[2]>{};                                     \
 
   43         else if constexpr(n == 4)                                                             \
 
   45             return ck_tile::sequence<a[0], a[1], a[2], a[3]>{};                               \
 
   47         else if constexpr(n == 5)                                                             \
 
   49             return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4]>{};                         \
 
   51         else if constexpr(n == 6)                                                             \
 
   53             return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5]>{};                   \
 
   55         else if constexpr(n == 7)                                                             \
 
   57             return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6]>{};             \
 
   59         else if constexpr(n == 8)                                                             \
 
   61             return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]>{};       \
 
   63         else if constexpr(n == 9)                                                             \
 
   65             return ck_tile::sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]>{}; \
 
   67         else if constexpr(n == 10)                                                            \
 
   70                 sequence<a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]>{};       \