(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
simd/
bf16_ma_2.c
       1  /* { dg-do compile { target { arm*-*-* } } } */
       2  /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
       3  /* { dg-add-options arm_v8_2a_bf16_neon } */
       4  
       5  #include "arm_neon.h"
       6  
       7  /* Test lane index limits for vfmabq_lane_f32  */
       8  float32x4_t
       9  test_vfmabq_lane_f32_low (float32x4_t r, bfloat16x8_t a, bfloat16x4_t b)
      10  {
      11    /* { dg-error "lane -1 out of range 0 - 3" "" { target *-*-* } 0 } */
      12    return vbfmlalbq_lane_f32 (r, a, b, -1);
      13  }
      14  
      15  float32x4_t
      16  test_vfmabq_lane_f32_high (float32x4_t r, bfloat16x8_t a, bfloat16x4_t b)
      17  {
      18    /* { dg-error "lane 4 out of range 0 - 3" "" { target *-*-* } 0 } */
      19    return vbfmlalbq_lane_f32 (r, a, b, 4);
      20  }
      21  
      22  /* Test lane index limits for vfmatq_lane_f32  */
      23  float32x4_t
      24  test_vfmatq_lane_f32_low (float32x4_t r, bfloat16x8_t a, bfloat16x4_t b)
      25  {
      26    /* { dg-error "lane -2 out of range 0 - 3" "" { target *-*-* } 0 } */
      27    return vbfmlaltq_lane_f32 (r, a, b, -2);
      28  }
      29  
      30  float32x4_t
      31  test_vfmatq_lane_f32_high (float32x4_t r, bfloat16x8_t a, bfloat16x4_t b)
      32  {
      33    /* { dg-error "lane 5 out of range 0 - 3" "" { target *-*-* } 0 } */
      34    return vbfmlaltq_lane_f32 (r, a, b, 5);
      35  }