(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
movv8qi_1.c
       1  /* { dg-do assemble } */
       2  /* { dg-options "-O -mtune=neoverse-v1 --save-temps" } */
       3  /* { dg-final { check-function-bodies "**" "" "" } } */
       4  
       5  #pragma GCC target "+nothing+nosimd+fp"
       6  
       7  typedef unsigned char v8qi __attribute__((vector_size(8)));
       8  
       9  /*
      10  ** fpr_to_fpr:
      11  **	fmov	d0, d1
      12  **	ret
      13  */
      14  v8qi
      15  fpr_to_fpr (v8qi q0, v8qi q1)
      16  {
      17    return q1;
      18  }
      19  
      20  /*
      21  ** gpr_to_fpr:
      22  **	fmov	d0, x0
      23  **	ret
      24  */
      25  v8qi
      26  gpr_to_fpr ()
      27  {
      28    register v8qi x0 asm ("x0");
      29    asm volatile ("" : "=r" (x0));
      30    return x0;
      31  }
      32  
      33  /*
      34  ** zero_to_fpr:
      35  **	fmov	d0, xzr
      36  **	ret
      37  */
      38  v8qi
      39  zero_to_fpr ()
      40  {
      41    return (v8qi) {};
      42  }
      43  
      44  /*
      45  ** fpr_to_gpr:
      46  **	fmov	x0, d0
      47  **	ret
      48  */
      49  void
      50  fpr_to_gpr (v8qi q0)
      51  {
      52    register v8qi x0 asm ("x0");
      53    x0 = q0;
      54    asm volatile ("" :: "r" (x0));
      55  }
      56  
      57  /*
      58  ** gpr_to_gpr:
      59  **	mov	x0, x1
      60  **	ret
      61  */
      62  void
      63  gpr_to_gpr ()
      64  {
      65    register v8qi x0 asm ("x0");
      66    register v8qi x1 asm ("x1");
      67    asm volatile ("" : "=r" (x1));
      68    x0 = x1;
      69    asm volatile ("" :: "r" (x0));
      70  }