(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
vec-init-12.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O" } */
       3  /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
       4  
       5  #include <arm_neon.h>
       6  
       7  /*
       8  ** s32_1:
       9  **	ldr	q0, \[x0\]
      10  **	ret
      11  */
      12  int32x4_t s32_1(int32x2_t *ptr) {
      13    if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
      14      return vcombine_s32 (ptr[1], ptr[0]);
      15    else
      16      return vcombine_s32 (ptr[0], ptr[1]);
      17  }
      18  /*
      19  ** s32_2:
      20  **	add	x([0-9])+, x0, #?8
      21  **	ld1	{v0\.d}\[1\], \[x\1\]
      22  **	ret
      23  */
      24  int32x4_t s32_2(int32x2_t a0, int32x2_t *ptr) {
      25    return vcombine_s32 (a0, ptr[1]);
      26  }
      27  /*
      28  ** s32_3:
      29  **	ldr	d0, \[x0\], #?16
      30  **	ld1	{v0\.d}\[1\], \[x0\]
      31  **	ret
      32  */
      33  int32x4_t s32_3(int32x2_t *ptr) {
      34    return vcombine_s32 (ptr[0], ptr[2]);
      35  }
      36  
      37  /*
      38  ** f32_1:
      39  **	ldr	q0, \[x0\]
      40  **	ret
      41  */
      42  float32x4_t f32_1(float32x2_t *ptr) {
      43    if (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
      44      return vcombine_f32 (ptr[1], ptr[0]);
      45    else
      46      return vcombine_f32 (ptr[0], ptr[1]);
      47  }
      48  /*
      49  ** f32_2:
      50  **	add	x([0-9])+, x0, #?8
      51  **	ld1	{v0\.d}\[1\], \[x\1\]
      52  **	ret
      53  */
      54  float32x4_t f32_2(float32x2_t a0, float32x2_t *ptr) {
      55    return vcombine_f32 (a0, ptr[1]);
      56  }
      57  /*
      58  ** f32_3:
      59  **	ldr	d0, \[x0\], #?16
      60  **	ld1	{v0\.d}\[1\], \[x0\]
      61  **	ret
      62  */
      63  float32x4_t f32_3(float32x2_t *ptr) {
      64    return vcombine_f32 (ptr[0], ptr[2]);
      65  }