1  /* { dg-do compile } */
       2  /* { dg-skip-if "" { arm*-*-* } } */
       3  /* { dg-options "-O3" } */
       4  
       5  
       6  #include <arm_neon.h>
       7  
       8  float32x2_t foo_f32 (float32x2_t a, float32x2_t b, float32x2_t c)
       9  {
      10    return vmla_f32 (a, b, c);
      11  }
      12  
      13  float32x4_t fooq_f32 (float32x4_t a, float32x4_t b, float32x4_t c)
      14  {
      15    return vmlaq_f32 (a, b, c);
      16  }
      17  
      18  float32x2_t foo_n_f32 (float32x2_t a, float32x2_t b, float32_t c)
      19  {
      20    return vmla_n_f32 (a, b, c);
      21  }
      22  
      23  float32x4_t fooq_n_f32 (float32x4_t a, float32x4_t b, float32_t c)
      24  {
      25    return vmlaq_n_f32 (a, b, c);
      26  }
      27  
      28  float32x2_t foo_lane_f32 (float32x2_t a,
      29  			  float32x2_t b,
      30  			  float32x2_t v)
      31  {
      32    return vmla_lane_f32 (a, b, v, 0);
      33  }
      34  
      35  float32x4_t fooq_lane_f32 (float32x4_t a,
      36  			   float32x4_t b,
      37  			   float32x2_t v)
      38  {
      39    return vmlaq_lane_f32 (a, b, v, 0);
      40  }
      41  
      42  float32x2_t foo_laneq_f32 (float32x2_t a,
      43  			   float32x2_t b,
      44  			   float32x4_t v)
      45  {
      46    return vmla_laneq_f32 (a, b, v, 0);
      47  }
      48  
      49  float32x4_t fooq_laneq_f32 (float32x4_t a,
      50  			    float32x4_t b,
      51  			    float32x4_t v)
      52  {
      53    return vmlaq_laneq_f32 (a, b, v, 0);
      54  }
      55  
      56  float64x1_t foo_f64 (float64x1_t a, float64x1_t b, float64x1_t c)
      57  {
      58    return vmla_f64 (a, b, c);
      59  }
      60  
      61  float64x2_t fooq_f64 (float64x2_t a, float64x2_t b, float64x2_t c)
      62  {
      63    return vmlaq_f64 (a, b, c);
      64  }
      65  
      66  /* { dg-final { scan-assembler-times {\tfmul\t} 10} }  */
      67  /* { dg-final { scan-assembler-times {\tfadd\t} 10} }  */