(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
simd/
vaddlv_1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  
       4  
       5  #include <arm_neon.h>
       6  
       7  #define FUNC(IT, OT, S)	\
       8  OT			\
       9  foo_##S (IT a)		\
      10  {			\
      11    return vaddlv_##S (a);\
      12  }
      13  
      14  FUNC (int8x8_t, int16_t, s8)
      15  /* { dg-final { scan-assembler-times {saddlv\th0, v0\.8b} 1} }  */
      16  
      17  FUNC (int16x4_t, int32_t, s16)
      18  /* { dg-final { scan-assembler-times {saddlv\ts0, v0\.4h} 1} }  */
      19  
      20  FUNC (int32x2_t, int64_t, s32)
      21  /* { dg-final { scan-assembler-times {saddlp\tv0\.1d, v0\.2s} 1} }  */
      22  
      23  FUNC (uint8x8_t, uint16_t, u8)
      24  /* { dg-final { scan-assembler-times {uaddlv\th0, v0\.8b} 1} }  */
      25  
      26  FUNC (uint16x4_t, uint32_t, u16)
      27  /* { dg-final { scan-assembler-times {uaddlv\ts0, v0\.4h} 1} }  */
      28  
      29  FUNC (uint32x2_t, uint64_t, u32)
      30  /* { dg-final { scan-assembler-times {uaddlp\tv0.1d, v0\.2s} 1} }  */
      31  
      32  #define FUNCQ(IT, OT, S)	\
      33  OT				\
      34  fooq_##S (IT a)			\
      35  {				\
      36    return vaddlvq_##S (a);	\
      37  }
      38  
      39  FUNCQ (int8x16_t, int16_t, s8)
      40  /* { dg-final { scan-assembler-times {saddlv\th0, v0\.16b} 1} }  */
      41  
      42  FUNCQ (int16x8_t, int32_t, s16)
      43  /* { dg-final { scan-assembler-times {saddlv\ts0, v0\.8h} 1} }  */
      44  
      45  FUNCQ (int32x4_t, int64_t, s32)
      46  /* { dg-final { scan-assembler-times {saddlv\td0, v0\.4s} 1} }  */
      47  
      48  FUNCQ (uint8x16_t, uint16_t, u8)
      49  /* { dg-final { scan-assembler-times {uaddlv\th0, v0\.16b} 1} }  */
      50  
      51  FUNCQ (uint16x8_t, uint32_t, u16)
      52  /* { dg-final { scan-assembler-times {uaddlv\ts0, v0\.8h} 1} }  */
      53  
      54  FUNCQ (uint32x4_t, uint64_t, u32)
      55  /* { dg-final { scan-assembler-times {uaddlv\td0, v0\.4s} 1} }  */
      56