(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
movsi_1.c
       1  /* { dg-do assemble } */
       2  /* { dg-options "-O --save-temps" } */
       3  /* { dg-final { check-function-bodies "**" "" "" } } */
       4  
       5  #pragma GCC target "+nothing+nosimd+fp"
       6  
       7  #include <stdint.h>
       8  
       9  /*
      10  ** fpr_to_fpr:
      11  **	fmov	s0, s1
      12  **	ret
      13  */
      14  void
      15  fpr_to_fpr (void)
      16  {
      17    register uint32_t q0 asm ("q0");
      18    register uint32_t q1 asm ("q1");
      19    asm volatile ("" : "=w" (q1));
      20    q0 = q1;
      21    asm volatile ("" :: "w" (q0));
      22  }
      23  
      24  /*
      25  ** gpr_to_fpr:
      26  **	fmov	s0, w0
      27  **	ret
      28  */
      29  void
      30  gpr_to_fpr (uint32_t w0)
      31  {
      32    register uint32_t q0 asm ("q0");
      33    q0 = w0;
      34    asm volatile ("" :: "w" (q0));
      35  }
      36  
      37  /*
      38  ** zero_to_fpr:
      39  **	fmov	s0, wzr
      40  **	ret
      41  */
      42  void
      43  zero_to_fpr ()
      44  {
      45    register uint32_t q0 asm ("q0");
      46    q0 = 0;
      47    asm volatile ("" :: "w" (q0));
      48  }
      49  
      50  /*
      51  ** fpr_to_gpr:
      52  **	fmov	w0, s0
      53  **	ret
      54  */
      55  uint32_t
      56  fpr_to_gpr ()
      57  {
      58    register uint32_t q0 asm ("q0");
      59    asm volatile ("" : "=w" (q0));
      60    return q0;
      61  }