/* { dg-do compile } */ /* { dg-options "-O2" } */ #include "arm_neon.h" /* { dg-final { scan-assembler-times "\\tfmax\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */ float32x2_t test_vmax_f32 (float32x2_t __a, float32x2_t __b) { return vmax_f32(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */ int8x8_t test_vmax_s8 (int8x8_t __a, int8x8_t __b) { return vmax_s8(__a, __b); } /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */ uint8x8_t test_vmax_u8 (uint8x8_t __a, uint8x8_t __b) { return vmax_u8(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */ int16x4_t test_vmax_s16 (int16x4_t __a, int16x4_t __b) { return vmax_s16(__a, __b); } /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */ uint16x4_t test_vmax_u16 (uint16x4_t __a, uint16x4_t __b) { return vmax_u16(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */ int32x2_t test_vmax_s32 (int32x2_t __a, int32x2_t __b) { return vmax_s32(__a, __b); } /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */ uint32x2_t test_vmax_u32 (uint32x2_t __a, uint32x2_t __b) { return vmax_u32(__a, __b); } /* { dg-final { scan-assembler-times "\\tfmax\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */ float32x4_t test_vmaxq_f32 (float32x4_t __a, float32x4_t __b) { return vmaxq_f32(__a, __b); } /* { dg-final { scan-assembler-times "\\tfmax\\tv\[0-9\]+\.2d, v\[0-9\].2d, v\[0-9\].2d" 1 } } */ float64x2_t test_vmaxq_f64 (float64x2_t __a, float64x2_t __b) { return vmaxq_f64(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */ int8x16_t test_vmaxq_s8 (int8x16_t __a, int8x16_t __b) { return vmaxq_s8(__a, __b); } /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */ uint8x16_t test_vmaxq_u8 (uint8x16_t __a, uint8x16_t __b) { return vmaxq_u8(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */ int16x8_t test_vmaxq_s16 (int16x8_t __a, int16x8_t __b) { return vmaxq_s16(__a, __b); } /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */ uint16x8_t test_vmaxq_u16 (uint16x8_t __a, uint16x8_t __b) { return vmaxq_u16(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmax\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */ int32x4_t test_vmaxq_s32 (int32x4_t __a, int32x4_t __b) { return vmaxq_s32(__a, __b); } /* { dg-final { scan-assembler-times "\\tumax\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */ uint32x4_t test_vmaxq_u32 (uint32x4_t __a, uint32x4_t __b) { return vmaxq_u32(__a, __b); } /* { dg-final { scan-assembler-times "\\tfmin\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */ float32x2_t test_vmin_f32 (float32x2_t __a, float32x2_t __b) { return vmin_f32(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */ int8x8_t test_vmin_s8 (int8x8_t __a, int8x8_t __b) { return vmin_s8(__a, __b); } /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 1 } } */ uint8x8_t test_vmin_u8 (uint8x8_t __a, uint8x8_t __b) { return vmin_u8(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */ int16x4_t test_vmin_s16 (int16x4_t __a, int16x4_t __b) { return vmin_s16(__a, __b); } /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 1 } } */ uint16x4_t test_vmin_u16 (uint16x4_t __a, uint16x4_t __b) { return vmin_u16(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */ int32x2_t test_vmin_s32 (int32x2_t __a, int32x2_t __b) { return vmin_s32(__a, __b); } /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 1 } } */ uint32x2_t test_vmin_u32 (uint32x2_t __a, uint32x2_t __b) { return vmin_u32(__a, __b); } /* { dg-final { scan-assembler-times "\\tfmin\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */ float32x4_t test_vminq_f32 (float32x4_t __a, float32x4_t __b) { return vminq_f32(__a, __b); } /* { dg-final { scan-assembler-times "\\tfmin\\tv\[0-9\]+\.2d, v\[0-9\].2d, v\[0-9\].2d" 1 } } */ float64x2_t test_vminq_f64 (float64x2_t __a, float64x2_t __b) { return vminq_f64(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */ int8x16_t test_vminq_s8 (int8x16_t __a, int8x16_t __b) { return vminq_s8(__a, __b); } /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.16b, v\[0-9\].16b, v\[0-9\].16b" 1 } } */ uint8x16_t test_vminq_u8 (uint8x16_t __a, uint8x16_t __b) { return vminq_u8(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */ int16x8_t test_vminq_s16 (int16x8_t __a, int16x8_t __b) { return vminq_s16(__a, __b); } /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.8h, v\[0-9\].8h, v\[0-9\].8h" 1 } } */ uint16x8_t test_vminq_u16 (uint16x8_t __a, uint16x8_t __b) { return vminq_u16(__a, __b); } /* { dg-final { scan-assembler-times "\\tsmin\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */ int32x4_t test_vminq_s32 (int32x4_t __a, int32x4_t __b) { return vminq_s32(__a, __b); } /* { dg-final { scan-assembler-times "\\tumin\\tv\[0-9\]+\.4s, v\[0-9\].4s, v\[0-9\].4s" 1 } } */ uint32x4_t test_vminq_u32 (uint32x4_t __a, uint32x4_t __b) { return vminq_u32(__a, __b); } /* { dg-final { scan-assembler-times "\\taddp\\tv\[0-9\]+\.8b, v\[0-9\].8b, v\[0-9\].8b" 2 } } */ int8x8_t test_vpadd_s8 (int8x8_t __a, int8x8_t __b) { return vpadd_s8(__a, __b); } uint8x8_t test_vpadd_u8 (uint8x8_t __a, uint8x8_t __b) { return vpadd_u8(__a, __b); } /* { dg-final { scan-assembler-times "\\taddp\\tv\[0-9\]+\.4h, v\[0-9\].4h, v\[0-9\].4h" 2 } } */ int16x4_t test_vpadd_s16 (int16x4_t __a, int16x4_t __b) { return vpadd_s16(__a, __b); } uint16x4_t test_vpadd_u16 (uint16x4_t __a, uint16x4_t __b) { return vpadd_u16(__a, __b); } /* { dg-final { scan-assembler-times "\\taddp\\tv\[0-9\]+\.2s, v\[0-9\].2s, v\[0-9\].2s" 2 } } */ int32x2_t test_vpadd_s32 (int32x2_t __a, int32x2_t __b) { return vpadd_s32(__a, __b); } uint32x2_t test_vpadd_u32 (uint32x2_t __a, uint32x2_t __b) { return vpadd_u32(__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.4h" 1 } } */ int32x4_t test_vqdmlal_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c) { return vqdmlal_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.8h" 1 } } */ int32x4_t test_vqdmlal_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c) { return vqdmlal_high_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.h" 3 } } */ int32x4_t test_vqdmlal_high_lane_s16 (int32x4_t a, int16x8_t b, int16x4_t c) { return vqdmlal_high_lane_s16 (a, b, c, 3); } int32x4_t test_vqdmlal_high_laneq_s16 (int32x4_t a, int16x8_t b, int16x8_t c) { return vqdmlal_high_laneq_s16 (a, b, c, 6); } int32x4_t test_vqdmlal_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c) { return vqdmlal_high_n_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.h" 3 } } */ int32x4_t test_vqdmlal_lane_s16 (int32x4_t a, int16x4_t b, int16x4_t c) { return vqdmlal_lane_s16 (a, b, c, 3); } int32x4_t test_vqdmlal_laneq_s16 (int32x4_t a, int16x4_t b, int16x8_t c) { return vqdmlal_laneq_s16 (a, b, c, 6); } int32x4_t test_vqdmlal_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c) { return vqdmlal_n_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.2s" 1 } } */ int64x2_t test_vqdmlal_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) { return vqdmlal_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.4s" 1 } } */ int64x2_t test_vqdmlal_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c) { return vqdmlal_high_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlal2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.s" 3 } } */ int64x2_t test_vqdmlal_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c) { return vqdmlal_high_lane_s32 (__a, __b, __c, 1); } int64x2_t test_vqdmlal_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c) { return vqdmlal_high_laneq_s32 (__a, __b, __c, 3); } int64x2_t test_vqdmlal_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c) { return vqdmlal_high_n_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlal\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.s" 3 } } */ int64x2_t test_vqdmlal_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) { return vqdmlal_lane_s32 (__a, __b, __c, 1); } int64x2_t test_vqdmlal_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c) { return vqdmlal_laneq_s32 (__a, __b, __c, 3); } int64x2_t test_vqdmlal_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c) { return vqdmlal_n_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.4h" 1 } } */ int32x4_t test_vqdmlsl_s16 (int32x4_t __a, int16x4_t __b, int16x4_t __c) { return vqdmlsl_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.8h" 1 } } */ int32x4_t test_vqdmlsl_high_s16 (int32x4_t __a, int16x8_t __b, int16x8_t __c) { return vqdmlsl_high_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.h" 3 } } */ int32x4_t test_vqdmlsl_high_lane_s16 (int32x4_t a, int16x8_t b, int16x4_t c) { return vqdmlsl_high_lane_s16 (a, b, c, 3); } int32x4_t test_vqdmlsl_high_laneq_s16 (int32x4_t a, int16x8_t b, int16x8_t c) { return vqdmlsl_high_laneq_s16 (a, b, c, 6); } int32x4_t test_vqdmlsl_high_n_s16 (int32x4_t __a, int16x8_t __b, int16_t __c) { return vqdmlsl_high_n_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.h" 3 } } */ int32x4_t test_vqdmlsl_lane_s16 (int32x4_t a, int16x4_t b, int16x4_t c) { return vqdmlsl_lane_s16 (a, b, c, 3); } int32x4_t test_vqdmlsl_laneq_s16 (int32x4_t a, int16x4_t b, int16x8_t c) { return vqdmlsl_laneq_s16 (a, b, c, 6); } int32x4_t test_vqdmlsl_n_s16 (int32x4_t __a, int16x4_t __b, int16_t __c) { return vqdmlsl_n_s16 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.2s" 1 } } */ int64x2_t test_vqdmlsl_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) { return vqdmlsl_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.4s" 1 } } */ int64x2_t test_vqdmlsl_high_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c) { return vqdmlsl_high_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.s" 3 } } */ int64x2_t test_vqdmlsl_high_lane_s32 (int64x2_t __a, int32x4_t __b, int32x2_t __c) { return vqdmlsl_high_lane_s32 (__a, __b, __c, 1); } int64x2_t test_vqdmlsl_high_laneq_s32 (int64x2_t __a, int32x4_t __b, int32x4_t __c) { return vqdmlsl_high_laneq_s32 (__a, __b, __c, 3); } int64x2_t test_vqdmlsl_high_n_s32 (int64x2_t __a, int32x4_t __b, int32_t __c) { return vqdmlsl_high_n_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmlsl\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.s" 3 } } */ int64x2_t test_vqdmlsl_lane_s32 (int64x2_t __a, int32x2_t __b, int32x2_t __c) { return vqdmlsl_lane_s32 (__a, __b, __c, 1); } int64x2_t test_vqdmlsl_laneq_s32 (int64x2_t __a, int32x2_t __b, int32x4_t __c) { return vqdmlsl_laneq_s32 (__a, __b, __c, 3); } int64x2_t test_vqdmlsl_n_s32 (int64x2_t __a, int32x2_t __b, int32_t __c) { return vqdmlsl_n_s32 (__a, __b, __c); } /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.4h" 1 } } */ int32x4_t test_vqdmull_s16 (int16x4_t __a, int16x4_t __b) { return vqdmull_s16 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.8h" 1 } } */ int32x4_t test_vqdmull_high_s16 (int16x8_t __a, int16x8_t __b) { return vqdmull_high_s16 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.4s, v\[0-9\]+\.8h, v\[0-9\]+\.h" 3 } } */ int32x4_t test_vqdmull_high_lane_s16 (int16x8_t a, int16x4_t b) { return vqdmull_high_lane_s16 (a, b, 3); } int32x4_t test_vqdmull_high_laneq_s16 (int16x8_t a, int16x8_t b) { return vqdmull_high_laneq_s16 (a, b, 6); } int32x4_t test_vqdmull_high_n_s16 (int16x8_t __a, int16_t __b) { return vqdmull_high_n_s16 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.4s, v\[0-9\]+\.4h, v\[0-9\]+\.h" 3 } } */ int32x4_t test_vqdmull_lane_s16 (int16x4_t a, int16x4_t b) { return vqdmull_lane_s16 (a, b, 3); } int32x4_t test_vqdmull_laneq_s16 (int16x4_t a, int16x8_t b) { return vqdmull_laneq_s16 (a, b, 6); } int32x4_t test_vqdmull_n_s16 (int16x4_t __a, int16_t __b) { return vqdmull_n_s16 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.2s" 1 } } */ int64x2_t test_vqdmull_s32 (int32x2_t __a, int32x2_t __b) { return vqdmull_s32 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.4s" 1 } } */ int64x2_t test_vqdmull_high_s32 (int32x4_t __a, int32x4_t __b) { return vqdmull_high_s32 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmull2\\tv\[0-9\]+\.2d, v\[0-9\]+\.4s, v\[0-9\]+\.s" 3 } } */ int64x2_t test_vqdmull_high_lane_s32 (int32x4_t __a, int32x2_t __b) { return vqdmull_high_lane_s32 (__a, __b, 1); } int64x2_t test_vqdmull_high_laneq_s32 (int32x4_t __a, int32x4_t __b) { return vqdmull_high_laneq_s32 (__a, __b, 3); } int64x2_t test_vqdmull_high_n_s32 (int32x4_t __a, int32_t __b) { return vqdmull_high_n_s32 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsqdmull\\tv\[0-9\]+\.2d, v\[0-9\]+\.2s, v\[0-9\]+\.s" 3 } } */ int64x2_t test_vqdmull_lane_s32 (int32x2_t __a, int32x2_t __b) { return vqdmull_lane_s32 (__a, __b, 1); } int64x2_t test_vqdmull_laneq_s32 (int32x2_t __a, int32x4_t __b) { return vqdmull_laneq_s32 (__a, __b, 1); } int64x2_t test_vqdmull_n_s32 (int32x2_t __a, int32_t __b) { return vqdmull_n_s32 (__a, __b); } /* { dg-final { scan-assembler-times "\\tsshll\\tv\[0-9\]+\.2d" 1 } } */ int64x2_t test_vshll_n_s32 (int32x2_t __a) { return vshll_n_s32 (__a, 9); } /* { dg-final { scan-assembler-times "\\tushll\\tv\[0-9\]+\.2d" 1 } } */ uint64x2_t test_vshll_n_u32 (uint32x2_t __a) { return vshll_n_u32 (__a, 9); } /* { dg-final { scan-assembler-times "\\tshll\\tv\[0-9\]+\.2d" 2 } } */ int64x2_t test_vshll_n_s32_2 (int32x2_t __a) { return vshll_n_s32 (__a, 32); } uint64x2_t test_vshll_n_u32_2 (uint32x2_t __a) { return vshll_n_u32 (__a, 32); } /* { dg-final { scan-assembler-times "\\tsshll\\tv\[0-9\]+\.4s" 1 } } */ int32x4_t test_vshll_n_s16 (int16x4_t __a) { return vshll_n_s16 (__a, 3); } /* { dg-final { scan-assembler-times "\\tushll\\tv\[0-9\]+\.4s" 1 } } */ uint32x4_t test_vshll_n_u16 (uint16x4_t __a) { return vshll_n_u16 (__a, 3); } /* { dg-final { scan-assembler-times "\\tshll\\tv\[0-9\]+\.4s" 2 } } */ int32x4_t test_vshll_n_s16_2 (int16x4_t __a) { return vshll_n_s16 (__a, 16); } uint32x4_t test_vshll_n_u16_2 (uint16x4_t __a) { return vshll_n_u16 (__a, 16); } /* { dg-final { scan-assembler-times "\\tsshll\\tv\[0-9\]+\.8h" 1 } } */ int16x8_t test_vshll_n_s8 (int8x8_t __a) { return vshll_n_s8 (__a, 3); } /* { dg-final { scan-assembler-times "\\tushll\\tv\[0-9\]+\.8h" 1 } } */ uint16x8_t test_vshll_n_u8 (uint8x8_t __a) { return vshll_n_u8 (__a, 3); } /* { dg-final { scan-assembler-times "\\tshll\\tv\[0-9\]+\.8h" 2 } } */ int16x8_t test_vshll_n_s8_2 (int8x8_t __a) { return vshll_n_s8 (__a, 8); } uint16x8_t test_vshll_n_u8_2 (uint8x8_t __a) { return vshll_n_u8 (__a, 8); } /* { dg-final { scan-assembler-times "\\tsshll2\\tv\[0-9\]+\.2d" 1 } } */ int64x2_t test_vshll_high_n_s32 (int32x4_t __a) { return vshll_high_n_s32 (__a, 9); } /* { dg-final { scan-assembler-times "\\tushll2\\tv\[0-9\]+\.2d" 1 } } */ uint64x2_t test_vshll_high_n_u32 (uint32x4_t __a) { return vshll_high_n_u32 (__a, 9); } /* { dg-final { scan-assembler-times "\\tshll2\\tv\[0-9\]+\.2d" 2 } } */ int64x2_t test_vshll_high_n_s32_2 (int32x4_t __a) { return vshll_high_n_s32 (__a, 32); } uint64x2_t test_vshll_high_n_u32_2 (uint32x4_t __a) { return vshll_high_n_u32 (__a, 32); } /* { dg-final { scan-assembler-times "\\tsshll2\\tv\[0-9\]+\.4s" 1 } } */ int32x4_t test_vshll_high_n_s16 (int16x8_t __a) { return vshll_high_n_s16 (__a, 3); } /* { dg-final { scan-assembler-times "\\tushll2\\tv\[0-9\]+\.4s" 1 } } */ uint32x4_t test_vshll_high_n_u16 (uint16x8_t __a) { return vshll_high_n_u16 (__a, 3); } /* { dg-final { scan-assembler-times "\\tshll2\\tv\[0-9\]+\.4s" 2 } } */ int32x4_t test_vshll_high_n_s16_2 (int16x8_t __a) { return vshll_high_n_s16 (__a, 16); } uint32x4_t test_vshll_high_n_u16_2 (uint16x8_t __a) { return vshll_high_n_u16 (__a, 16); } /* { dg-final { scan-assembler-times "\\tsshll2\\tv\[0-9\]+\.8h" 1 } } */ int16x8_t test_vshll_high_n_s8 (int8x16_t __a) { return vshll_high_n_s8 (__a, 3); } /* { dg-final { scan-assembler-times "\\tushll2\\tv\[0-9\]+\.8h" 1 } } */ uint16x8_t test_vshll_high_n_u8 (uint8x16_t __a) { return vshll_high_n_u8 (__a, 3); } /* { dg-final { scan-assembler-times "\\tshll2\\tv\[0-9\]+\.8h" 2 } } */ int16x8_t test_vshll_high_n_s8_2 (int8x16_t __a) { return vshll_high_n_s8 (__a, 8); } uint16x8_t test_vshll_high_n_u8_2 (uint8x16_t __a) { return vshll_high_n_u8 (__a, 8); }