1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
3 
4 /* Check that we can perform this in a single INS without doing any DUPs.  */
5 
6 #include <arm_neon.h>
7 
8 float16x8_t
foo(float16x8_t a,float16x8_t b)9 foo (float16x8_t a, float16x8_t b)
10 {
11   return vsetq_lane_f16 (vgetq_lane_f16 (b, 2), a, 3);
12 }
13 
14 float16x4_t
bar(float16x4_t a,float16x4_t b)15 bar (float16x4_t a, float16x4_t b)
16 {
17   return vset_lane_f16 (vget_lane_f16 (b, 2), a, 3);
18 }
19 
20 /* { dg-final { scan-assembler-times "ins\\t" 2 } } */
21 /* { dg-final { scan-assembler-not "dup\\t" } } */
22