152
|
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
|
|
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 }
|