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  bfloat16x4_t
       9  test_vld1_dup_bf16 (bfloat16_t * ptr)
      10  {
      11    return vld1_dup_bf16 (ptr);
      12  }
      13  
      14  bfloat16x8_t
      15  test_vld1q_dup_bf16 (bfloat16_t * ptr)
      16  {
      17    return vld1q_dup_bf16 (ptr);
      18  }
      19  
      20  bfloat16x4_t
      21  test_vld1_lane_bf16 (bfloat16_t * ptr, bfloat16x4_t src)
      22  {
      23    return vld1_lane_bf16 (ptr, src, 3);
      24  }
      25  
      26  bfloat16x8_t
      27  test_vld1q_lane_bf16 (bfloat16_t * ptr, bfloat16x8_t src)
      28  {
      29    return vld1q_lane_bf16 (ptr, src, 7);
      30  }
      31  
      32  bfloat16x4_t
      33  test_vld1_bf16 (bfloat16_t * ptr)
      34  {
      35    return vld1_bf16 (ptr);
      36  }
      37  
      38  bfloat16x8_t
      39  test_vld1q_bf16 (bfloat16_t * ptr)
      40  {
      41    return vld1q_bf16 (ptr);
      42  }
      43  
      44  bfloat16x4x2_t
      45  test_vld1_bf16_x2 (bfloat16_t * ptr)
      46  {
      47    return vld1_bf16_x2 (ptr);
      48  }
      49  
      50  bfloat16x8x2_t
      51  test_vld1q_bf16_x2 (bfloat16_t * ptr)
      52  {
      53    return vld1q_bf16_x2 (ptr);
      54  }
      55  
      56  bfloat16x4x3_t
      57  test_vld1_bf16_x3 (bfloat16_t * ptr)
      58  {
      59    return vld1_bf16_x3 (ptr);
      60  }
      61  
      62  bfloat16x8x3_t
      63  test_vld1q_bf16_x3 (bfloat16_t * ptr)
      64  {
      65    return vld1q_bf16_x3 (ptr);
      66  }
      67  
      68  bfloat16x4x4_t
      69  test_vld1_bf16_x4 (bfloat16_t * ptr)
      70  {
      71    return vld1_bf16_x4 (ptr);
      72  }
      73  
      74  bfloat16x8x4_t
      75  test_vld1q_bf16_x4 (bfloat16_t * ptr)
      76  {
      77    return vld1q_bf16_x4 (ptr);
      78  }
      79  
      80  bfloat16x4x2_t
      81  test_vld2_bf16 (bfloat16_t * ptr)
      82  {
      83    return vld2_bf16 (ptr);
      84  }
      85  
      86  bfloat16x8x2_t
      87  test_vld2q_bf16 (bfloat16_t * ptr)
      88  {
      89    return vld2q_bf16 (ptr);
      90  }
      91  
      92  bfloat16x4x2_t
      93  test_vld2_dup_bf16 (bfloat16_t * ptr)
      94  {
      95    return vld2_dup_bf16 (ptr);
      96  }
      97  
      98  bfloat16x8x2_t
      99  test_vld2q_dup_bf16 (bfloat16_t * ptr)
     100  {
     101    return vld2q_dup_bf16 (ptr);
     102  }
     103  
     104  bfloat16x4x3_t
     105  test_vld3_bf16 (bfloat16_t * ptr)
     106  {
     107    return vld3_bf16 (ptr);
     108  }
     109  
     110  bfloat16x8x3_t
     111  test_vld3q_bf16 (bfloat16_t * ptr)
     112  {
     113    return vld3q_bf16 (ptr);
     114  }
     115  
     116  bfloat16x4x3_t
     117  test_vld3_dup_bf16 (bfloat16_t * ptr)
     118  {
     119    return vld3_dup_bf16 (ptr);
     120  }
     121  
     122  bfloat16x8x3_t
     123  test_vld3q_dup_bf16 (bfloat16_t * ptr)
     124  {
     125    return vld3q_dup_bf16 (ptr);
     126  }
     127  
     128  bfloat16x4x4_t
     129  test_vld4_bf16 (bfloat16_t * ptr)
     130  {
     131   return vld4_bf16 (ptr);
     132  }
     133  
     134  bfloat16x8x4_t
     135  test_vld4q_bf16 (bfloat16_t * ptr)
     136  {
     137   return vld4q_bf16 (ptr);
     138  }
     139  
     140  bfloat16x4x4_t
     141  test_vld4_dup_bf16 (bfloat16_t * ptr)
     142  {
     143    return vld4_dup_bf16 (ptr);
     144  }
     145  
     146  bfloat16x8x4_t
     147  test_vld4q_dup_bf16 (bfloat16_t * ptr)
     148  {
     149    return vld4q_dup_bf16 (ptr);
     150  }