1 /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
2 /* { dg-add-options arm_v8_1m_mve_fp } */
3 /* { dg-additional-options "-O2" } */
4 
5 #include <arm_mve.h>
6 mve_pred16_t p;
7 
fn1(int32x4_t vecIdx)8 int32x4_t fn1 (int32x4_t vecIdx)
9 {
10   return vaddq_m(vuninitializedq_s32(), vecIdx, 1, p);
11 }
12 
fn2(int16x8_t vecIdx)13 int16x8_t fn2 (int16x8_t vecIdx)
14 {
15   return vaddq_m(vuninitializedq_s16(), vecIdx, 1, p);
16 }
17 
fn3(int8x16_t vecIdx)18 int8x16_t fn3 (int8x16_t vecIdx)
19 {
20   return vaddq_m(vuninitializedq_s8(), vecIdx, 1, p);
21 }
22 
fn4(uint32x4_t vecIdx)23 uint32x4_t fn4 (uint32x4_t vecIdx)
24 {
25   return vaddq_m(vuninitializedq_u32(), vecIdx, 1, p);
26 }
27 
fn5(uint16x8_t vecIdx)28 uint16x8_t fn5 (uint16x8_t vecIdx)
29 {
30   return vaddq_m(vuninitializedq_u16(), vecIdx, 1, p);
31 }
32 
fn6(uint8x16_t vecIdx)33 uint8x16_t fn6 (uint8x16_t vecIdx)
34 {
35   return vaddq_m(vuninitializedq_u8(), vecIdx, 1, p);
36 }
37 
fn7(float32x4_t vecIdx)38 float32x4_t fn7 (float32x4_t vecIdx)
39 {
40   return vaddq_m(vuninitializedq_f32(), vecIdx, (float32_t) 1.23, p);
41 }
42 
fn8(float16x8_t vecIdx)43 float16x8_t fn8 (float16x8_t vecIdx)
44 {
45   return vaddq_m(vuninitializedq_f16(), vecIdx, (float16_t) 1.40, p);
46 }
47 
48 /* { dg-final { scan-assembler-not "__ARM_undef" } } */
49