<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/133217>133217</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [llvm][RISCV]riscv backend can not handle type v2048i1 and v2048i8 when enable loop vectorize in frontend
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          hippyll123
      </td>
    </tr>
</table>

<pre>
    In target riscv, use -O3 to compile the code:
`template <typename FromT, typename ToT>
__attribute__((noinline)) static
void cast_data(FromT *__restrict__ x, ToT *__restrict__ y, const int n,
               const int enable_clip) {
    int i = 0;
    FromT *ptr_x = x;
    ToT *ptr_y = y;
    asm volatile("fence\n\tfence");
    for (i = 0; i <= n - 8; i += 8) {
        ptr_y[0] = (ToT)ptr_x[0];
 ptr_y[1] = (ToT)ptr_x[1];
        ptr_y[2] = (ToT)ptr_x[2];
 ptr_y[3] = (ToT)ptr_x[3];
        ptr_y[4] = (ToT)ptr_x[4];
 ptr_y[5] = (ToT)ptr_x[5];
        ptr_y[6] = (ToT)ptr_x[6];
 ptr_y[7] = (ToT)ptr_x[7];
        ptr_x += 8;
        ptr_y += 8;
    }
 asm volatile("fence\n\tfence\n\tfence");
    // for (; i < n; i++) y[i] = (ToT)x[i];
}
`
when FromT is int8_t ToT is bool, the IR will generate 2048 x i1, the type may compile error in riscv backend.
`
%strided.vec = shufflevector <2048 x i8> %wide.vec, <2048 x i8>
%strided.vec8 = shufflevector <2048 x i8> %wide.vec, <2048 x i8>
%strided.vec9 = shufflevector <2048 x i8> %wide.vec, <2048 x i8>
%strided.vec10 = shufflevector <2048 x i8> %wide.vec, <2048 x i8> 
%strided.vec11 = shufflevector <2048 x i8> %wide.vec, <2048 x i8> 
%strided.vec12 = shufflevector <2048 x i8> %wide.vec, <2048 x i8> 
%strided.vec13 = shufflevector <2048 x i8> %wide.vec, <2048 x i8> 
%strided.vec14 = shufflevector <2048 x i8> %wide.vec, <2048 x i8> 
%7 = icmp ne <256 x i8> %strided.vec, zeroinitializer
%8 = icmp ne <256 x i8> %strided.vec8, zeroinitializer
%9 = icmp ne <256 x i8> %strided.vec9, zeroinitializer
%10 = icmp ne <256 x i8> %strided.vec10, zeroinitializer
%11 = icmp ne <256 x i8> %strided.vec11, zeroinitializer
%12 = icmp ne <256 x i8> %strided.vec12, zeroinitializer
%13 = icmp ne <256 x i8> %strided.vec13, zeroinitializer
%14 = icmp ne <256 x i8> %strided.vec14, zeroinitializer
%15 = shufflevector <256 x i1> %7, <256 x i1> %8, <512 x i32>
%16 = shufflevector <256 x i1> %9, <256 x i1> %10, <512 x i32>
%17 = shufflevector <256 x i1> %11, <256 x i1> %12, <512 x i32>
%18 = shufflevector <256 x i1> %13, <256 x i1> %14, <512 x i32>
%19 = shufflevector <512 x i1> %15, <512 x i1> %16, <1024 x i32>
%20 = shufflevector <512 x i1> %17, <512 x i1> %18, <1024 x i32>
%21 = shufflevector <1024 x i1> %19, <1024 x i1> %20, <2048 x i32>
`
expect disable loop vectorize, how to avoid this problem.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0l11v4joTxz-NuRkVJeO8ccEFpYu0V4-0T3VuIycZiM8xdpQYCvvpj2wCbKFeUZ0tqtQwM_79xy8ZxmIY5EYTzVn6zNKXidjZ1vTzVnbdUakY-aQyzXH-XYMV_YYs9HKo9wyXsBsInv7HwRqozbaTisC2BLVpiPEFixYsiyxtOyUsAeNLe-xIiy3BqjfbV0e4WF7NK-PfWLQoS2FtL6udpbJkWDAstJFaSU0MZwxnMFhhZc2ixd7IBmox2LIRVjAsPBYYLsqyp8H2srZlCQcn9GruHUfnqI0eLEhtQTNcsmgB7z9XP2lRKSprJTuXBsufx2jnlMD4C0SMn42XXDrblwfvPVy9YzrOd_S-49Unhi3sjRJWKvILgGvSNbF0qVm6tKcviG41LmPWpgeGxTULn9DSfdPwBMVowWdnKd6n7z4-EZY-Ryx98QyGhdsSnPn0R8-odw6Og8HxNfhGAINj8F6AB4N5UCAJjknuBdJgcBoUyIJjsnuBPBicfyhwuO7RvfgHPpa_uKeHjszvzg_DFcPV-Rhdzg9o_-h03d8M3Jzk3ZwOo_XEO-XEsohFi7eW9PgqyMG9KEVp_eGXA1TGKF8DWoLvP-BNKgUb0tS7aoFRUsABZHyOcJUCtuJ4qTTU96YHqU_lCCpR_0O6mV6kGabuTW-ome6p9gkP7W69VrSn2rqJ8uVZpWD8GzBM32RDLtqJ3rjviMWfR87-PDKO_jMT7qHxV0DxK6D8K6DJn4LmHiTrbQfa_0Jimv1K-EXUQX5Sb6SWVgolf1J_YhSPM4ogZPY4ZBaEjGftIUochTHxJzBxGIOfwGAYwz-B4WFM8glMEsakgaN3gsUjLD8fuffmYjS7tTmA5HipGHH2EHf2Mfe0mR-D84fAp338wI5hcqgA3xB4gJyEyYE6PEZeCOl7wsWejfY4wuQGjYFyfIvIA-jiN-hAUT6HXhizG8bZgdFNobrA_e8pHTqqLTRycG0wKGM6OKnIn-RGtubN3QSEb8ttKwfoelMp2k4nzZw3Mz4TE5rHecKjjGfIJ-28oponWZYkPM-xygTnmIskWWd1sm6SdTaRc4wwjTjmUYER4jSPBFHF46jOqgxFxpKItkKqqVL77dT0m4kchh3NY84xzidKVKQGf7NB1PQG3uu6n_Rl0s_doKdqtxlYEik52OGKsdIqfyVyFtfbpM8_vv9_-RdLX941HFALDdpYaIVu1Nin7N0SyhiEbsbnAnwrdLpD3Cyea2LWvdGWdDPZ9WreWtsN7gblu7KNtO2umtZmy3Dlszn9e-p68zfVluHKz2pguBqnvZ_jvwEAAP__PSTlGA">