(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
vadd_reduc-1.c
       1  /* { dg-do compile } */
       2  /* { dg-additional-options "-O3" } */
       3  /* { dg-final { check-function-bodies "**" "" "" } } */
       4  
       5  #include <arm_neon.h>
       6  
       7  typedef int v4si __attribute__ ((vector_size (16)));
       8  
       9  /*
      10  **bar:
      11  **	...
      12  **	addv	s0, v0.4s
      13  **	fmov	w0, s0
      14  **	lsr	w1, w0, 16
      15  **	add	w0, w1, w0, uxth
      16  **	ret
      17  */
      18  int bar (v4si x)
      19  {
      20    unsigned int sum = vaddvq_s32 (x);
      21    return (((uint16_t)(sum & 0xffff)) + ((uint32_t)sum >> 16));
      22  }