(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
riscv/
rvv/
base/
mov-4.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-march=rv32gcv -mabi=ilp32d -O3" } */
       3  /* { dg-final { check-function-bodies "**" "" } } */
       4  
       5  #include "riscv_vector.h"
       6  
       7  /*
       8  ** mov4:
       9  **	vl1re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      10  **	vs1r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      11  **  ret
      12  */
      13  void mov4 (int64_t *in, int64_t *out)
      14  {
      15    vint64m1_t v = *(vint64m1_t*)in;
      16    *(vint64m1_t*)out = v;
      17  }
      18  
      19  /*
      20  ** mov5:
      21  **	vl2re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      22  **	vs2r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      23  **  ret
      24  */
      25  void mov5 (int64_t *in, int64_t *out)
      26  {
      27    vint64m2_t v = *(vint64m2_t*)in;
      28    *(vint64m2_t*)out = v;
      29  }
      30  
      31  /*
      32  ** mov6:
      33  **	vl4re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      34  **	vs4r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      35  **  ret
      36  */
      37  void mov6 (int64_t *in, int64_t *out)
      38  {
      39    vint64m4_t v = *(vint64m4_t*)in;
      40    *(vint64m4_t*)out = v;
      41  }
      42  
      43  /*
      44  ** mov7:
      45  **	vl8re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      46  **	vs8r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      47  **  ret
      48  */
      49  void mov7 (int64_t *in, int64_t *out)
      50  {
      51    vint64m8_t v = *(vint64m8_t*)in;
      52    *(vint64m8_t*)out = v;
      53  }
      54  
      55  /*
      56  ** mov8:
      57  **	vl1re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      58  **	vs1r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      59  **  ret
      60  */
      61  void mov8 (uint64_t *in, uint64_t *out)
      62  {
      63    vuint64m1_t v = *(vuint64m1_t*)in;
      64    *(vuint64m1_t*)out = v;
      65  }
      66  
      67  /*
      68  ** mov9:
      69  **	vl2re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      70  **	vs2r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      71  **  ret
      72  */
      73  void mov9 (uint64_t *in, uint64_t *out)
      74  {
      75    vuint64m2_t v = *(vuint64m2_t*)in;
      76    *(vuint64m2_t*)out = v;
      77  }
      78  
      79  /*
      80  ** mov10:
      81  **	vl4re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      82  **	vs4r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      83  **  ret
      84  */
      85  void mov10 (uint64_t *in, uint64_t *out)
      86  {
      87    vuint64m4_t v = *(vuint64m4_t*)in;
      88    *(vuint64m4_t*)out = v;
      89  }
      90  
      91  /*
      92  ** mov11:
      93  **	vl8re64\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      94  **	vs8r\.v\s+(?:v[0-9]|v[1-2][0-9]|v3[0-1]),0\s*\([a-x0-9]+\)
      95  **  ret
      96  */
      97  void mov11 (uint64_t *in, uint64_t *out)
      98  {
      99    vuint64m8_t v = *(vuint64m8_t*)in;
     100    *(vuint64m8_t*)out = v;
     101  }