(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
rvv/
vsetvl/
vlmax_single_block-19.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-march=rv32gcv -mabi=ilp32" } */
       3  
       4  #include "riscv_vector.h"
       5  
       6  void f (void * restrict in, void * restrict out)
       7  {
       8    vint8mf8_t v1 = *(vint8mf8_t*)(in + 1);
       9    vint16mf4_t v2;
      10    *(vint8mf8_t*)(out + 1) = v1;
      11    *(vint16mf4_t*)(out + 2) = v2;
      12    
      13    vint8mf8_t v3 = *(vint8mf8_t*)(in + 3);
      14    vint32mf2_t v4;
      15    *(vint8mf8_t*)(out + 3) = v3;
      16    *(vint32mf2_t*)(out + 4) = v4;
      17    
      18    vint8mf8_t v5 = *(vint8mf8_t*)(in + 5);
      19    vint64m1_t v6;
      20    *(vint8mf8_t*)(out + 5) = v5;
      21    *(vint64m1_t*)(out + 6) = v6;
      22    
      23    vint8mf4_t v7 = *(vint8mf4_t*)(in + 7);
      24    vint16mf2_t v8;
      25    *(vint8mf4_t*)(out + 7) = v7;
      26    *(vint16mf2_t*)(out + 8) = v8;
      27    
      28    vint8mf4_t v9 = *(vint8mf4_t*)(in + 9);
      29    vint32m1_t v10;
      30    *(vint8mf4_t*)(out + 9) = v9;
      31    *(vint32m1_t*)(out + 10) = v10;
      32    
      33    vint8mf4_t v11 = *(vint8mf4_t*)(in + 11);
      34    vint64m2_t v12;
      35    *(vint8mf4_t*)(out + 11) = v11;
      36    *(vint64m2_t*)(out + 12) = v12;
      37    
      38    vint8mf2_t v13 = *(vint8mf2_t*)(in + 13);
      39    vint16m1_t v14;
      40    *(vint8mf2_t*)(out + 13) = v13;
      41    *(vint16m1_t*)(out + 14) = v14;
      42    
      43    vint8mf2_t v15 = *(vint8mf2_t*)(in + 15);
      44    vint32m2_t v16;
      45    *(vint8mf2_t*)(out + 15) = v15;
      46    *(vint32m2_t*)(out + 16) = v16;
      47    
      48    vint8mf2_t v17 = *(vint8mf2_t*)(in + 17);
      49    vint64m4_t v18;
      50    *(vint8mf2_t*)(out + 17) = v17;
      51    *(vint64m4_t*)(out + 18) = v18;
      52    
      53    vint8m1_t v19 = *(vint8m1_t*)(in + 19);
      54    vint16m2_t v20;
      55    *(vint8m1_t*)(out + 19) = v19;
      56    *(vint16m2_t*)(out + 20) = v20;
      57    
      58    vint8m1_t v21 = *(vint8m1_t*)(in + 20);
      59    vint32m4_t v22;
      60    *(vint8m1_t*)(out + 20) = v21;
      61    *(vint32m4_t*)(out + 21) = v22;
      62    
      63    vint8m1_t v23 = *(vint8m1_t*)(in + 23);
      64    vint64m8_t v24;
      65    *(vint8m1_t*)(out + 21) = v23;
      66    *(vint64m8_t*)(out + 22) = v24;
      67    
      68    vint8m2_t v25 = *(vint8m2_t*)(in + 25);
      69    vint16m4_t v26;
      70    *(vint8m2_t*)(out + 25) = v25;
      71    *(vint16m4_t*)(out + 26) = v26;
      72    
      73    vint8m2_t v27 = *(vint8m2_t*)(in + 27);
      74    vint32m8_t v28;
      75    *(vint8m2_t*)(out + 27) = v27;
      76    *(vint32m8_t*)(out + 28) = v28;
      77    
      78    vint8m4_t v29 = *(vint8m4_t*)(in + 29);
      79    vint16m8_t v30;
      80    *(vint8m4_t*)(out + 29) = v29;
      81    *(vint16m8_t*)(out + 30) = v30;
      82  }
      83  
      84  /* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf4,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      85  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e32,\s*mf2,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      86  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e64,\s*m1,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      87  
      88  /* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*mf2,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      89  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e32,\s*m1,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      90  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e64,\s*m2,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      91  
      92  /* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*m1,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      93  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e32,\s*m2,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      94  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e64,\s*m4,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      95  
      96  /* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*m2,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      97  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e32,\s*m4,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      98  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e64,\s*m8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
      99  
     100  /* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*m4,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
     101  /* { dg-final { scan-assembler-times {vsetvli\s+zero,\s*zero,\s*e32,\s*m8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
     102  
     103  /* { dg-final { scan-assembler-times {vsetvli\s+[a-x0-9]+,\s*zero,\s*e16,\s*m8,\s*t[au],\s*m[au]} 1 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */
     104  
     105  /* { dg-final { scan-assembler-times {vsetvli} 15 { target { no-opts "-O0" no-opts "-O1"  no-opts "-Os" no-opts "-Oz" no-opts "-O2" } } } } */