1 /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
2 /* { dg-add-options arm_v8_1m_mve_fp } */
3 /* { dg-additional-options "-O3" } */
4 
5 #include "arm_mve.h"
6 
7 uint8x16_t *vu8;
8 int8x16_t *vs8;
9 uint16x8_t *vu16;
10 int16x8_t *vs16;
11 uint32x4_t *vu32;
12 int32x4_t *vs32;
13 uint64x2_t *vu64;
14 int64x2_t *vs64;
15 float16x8_t *vf16;
16 float32x4_t *vf32;
17 uint8_t u8;
18 uint16_t u16;
19 uint32_t u32;
20 uint64_t u64;
21 int8_t s8;
22 int16_t s16;
23 int32_t s32;
24 int64_t s64;
25 float16_t f16;
26 float32_t f32;
27 
foo(void)28 void foo (void)
29 {
30   u8 = vgetq_lane (*vu8, 1);
31   u16 = vgetq_lane (*vu16, 1);
32   u32 = vgetq_lane (*vu32, 1);
33   u64 = vgetq_lane (*vu64, 1);
34   s8 = vgetq_lane (*vs8, 1);
35   s16 = vgetq_lane (*vs16, 1);
36   s32 = vgetq_lane (*vs32, 1);
37   s64 = vgetq_lane (*vs64, 1);
38   f16 = vgetq_lane (*vf16, 1);
39   f32 = vgetq_lane (*vf32, 1);
40 }
41