1  /* { dg-do assemble { target { aarch64*-*-* } } } */
       2  /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
       3  /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
       4  /* { dg-add-options arm_v8_2a_bf16_neon }  */
       5  
       6  #include <arm_neon.h>
       7  
       8  void
       9  test_vst1_bf16_x2 (bfloat16_t *ptr, bfloat16x4x2_t val)
      10  {
      11    vst1_bf16_x2 (ptr, val);
      12  }
      13  
      14  void
      15  test_vst1q_bf16_x2 (bfloat16_t *ptr, bfloat16x8x2_t val)
      16  {
      17    vst1q_bf16_x2 (ptr, val);
      18  }
      19  
      20  void
      21  test_vst1_bf16_x3 (bfloat16_t *ptr, bfloat16x4x3_t val)
      22  {
      23    vst1_bf16_x3 (ptr, val);
      24  }
      25  
      26  void
      27  test_vst1q_bf16_x3 (bfloat16_t *ptr, bfloat16x8x3_t val)
      28  {
      29    vst1q_bf16_x3 (ptr, val);
      30  }
      31  
      32  void
      33  test_vst1_bf16_x4 (bfloat16_t *ptr, bfloat16x4x4_t val)
      34  {
      35    vst1_bf16_x4 (ptr, val);
      36  }
      37  
      38  void
      39  test_vst1q_bf16_x4 (bfloat16_t *ptr, bfloat16x8x4_t val)
      40  {
      41    vst1q_bf16_x4 (ptr, val);
      42  }
      43  
      44  void
      45  test_vst1_lane_bf16 (bfloat16_t *ptr, bfloat16x4_t val)
      46  {
      47    vst1_lane_bf16 (ptr, val, 3);
      48  }
      49  
      50  void
      51  test_vst1q_lane_bf16 (bfloat16_t *ptr, bfloat16x8_t val)
      52  {
      53    vst1q_lane_bf16 (ptr, val, 7);
      54  }
      55  
      56  void
      57  test_vst1_bf16 (bfloat16_t *ptr, bfloat16x4_t val)
      58  {
      59    vst1_bf16 (ptr, val);
      60  }
      61  
      62  void
      63  test_vst1q_bf16 (bfloat16_t *ptr, bfloat16x8_t val)
      64  {
      65    vst1q_bf16 (ptr, val);
      66  }
      67  
      68  void
      69  test_vst2_bf16 (bfloat16_t *ptr, bfloat16x4x2_t val)
      70  {
      71    vst2_bf16 (ptr, val);
      72  }
      73  
      74  void
      75  test_vst2q_bf16 (bfloat16_t *ptr, bfloat16x8x2_t val)
      76  {
      77    vst2q_bf16 (ptr, val);
      78  }
      79  
      80  void
      81  test_vst3_bf16 (bfloat16_t *ptr, bfloat16x4x3_t val)
      82  {
      83    vst3_bf16 (ptr, val);
      84  }
      85  
      86  void
      87  test_vst3q_bf16 (bfloat16_t *ptr, bfloat16x8x3_t val)
      88  {
      89    vst3q_bf16 (ptr, val);
      90  }
      91  
      92  void
      93  test_vst4_bf16 (bfloat16_t *ptr, bfloat16x4x4_t val)
      94  {
      95    vst4_bf16 (ptr, val);
      96  }
      97  
      98  void
      99  test_vst4q_bf16 (bfloat16_t *ptr, bfloat16x8x4_t val)
     100  {
     101    vst4q_bf16 (ptr, val);
     102  }
     103  
     104  int main()
     105  {
     106    return 0;
     107  }