1  /* { dg-do assemble { target { aarch64*-*-* } } } */
       2  /* { dg-require-effective-target arm_v8_2a_i8mm_ok } */
       3  /* { dg-add-options arm_v8_2a_i8mm }  */
       4  /* { dg-additional-options "--save-temps" } */
       5  /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
       6  
       7  #include <arm_neon.h>
       8  
       9  int32x2_t sfoo_lane (int32x2_t r, int8x8_t x, uint8x8_t y)
      10  {
      11    /* { dg-error "lane -1 out of range 0 - 1" "" { target *-*-* } 0 } */
      12    return vsudot_lane_s32 (r, x, y, -1);
      13  }
      14  
      15  int32x2_t sfoo_laneq (int32x2_t r, int8x8_t x, uint8x16_t y)
      16  {
      17    /* { dg-error "lane -1 out of range 0 - 3" "" { target *-*-* } 0 } */
      18    return vsudot_laneq_s32 (r, x, y, -1);
      19  }
      20  
      21  int32x4_t sfooq_lane (int32x4_t r, int8x16_t x, uint8x8_t y)
      22  {
      23    /* { dg-error "lane 2 out of range 0 - 1" "" { target *-*-* } 0 } */
      24    return vsudotq_lane_s32 (r, x, y, 2);
      25  }
      26  
      27  int32x4_t sfooq_laneq (int32x4_t r, int8x16_t x, uint8x16_t y)
      28  {
      29    /* { dg-error "lane 4 out of range 0 - 3" "" { target *-*-* } 0 } */
      30    return vsudotq_laneq_s32 (r, x, y, 4);
      31  }