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 /* { dg-final { check-function-bodies "**" "" } } */
10 ** vstrb.8 q[0-7], \[r0, #16\]
13 uint8_t *off_store8_0 (uint8_t * a
, uint8x16_t v
)
22 ** vstrb.16 q[0-7], \[r0, #-1\]
25 int8_t *off_store8_1 (int8_t * a
, int16x8_t v
)
27 vstrbq_s16 (a
- 1, v
);
34 ** vstrb.32 q[0-7], \[r0, #-127\]
37 uint8_t *off_store8_2 (uint8_t * a
, uint32x4_t v
)
39 vstrbq_u32 (a
- 127, v
);
46 ** vstrb.8 q[0-7], \[r0, #127\]
49 int8_t *off_store8_3 (int8_t * a
, int8x16_t v
)
51 vstrbq_s8 (a
+ 127, v
);
58 ** vstrb.8 q[0-7], \[r[0-7]+\]
61 uint8_t *not_off_store8_0 (uint8_t * a
, uint8x16_t v
)
63 vst1q_u8 (a
- 128, v
);
70 ** vstrh.16 q[0-7], \[r0, #250\]
73 float16_t
*off_storefp16_0 (float16_t
*a
, float16x8_t v
)
75 vst1q_f16 (a
+ 125, v
);
82 ** vstrh.16 q[0-7], \[r0, #4\]
85 int16_t *off_store16_0 (int16_t * a
, int16x8_t v
)
94 ** vstrh.32 q[0-7], \[r0, #-254\]
97 int16_t *off_store16_1 (int16_t * a
, int32x4_t v
)
99 vstrhq_s32 (a
- 127, v
);
106 ** vstrh.16 q[0-7], \[r[0-7]+\]
109 uint8_t *not_off_store16_0 (uint8_t * a
, uint16x8_t v
)
111 vst1q_u16 ((uint16_t *)(a
- 1), v
);
118 ** vstrh.32 q[0-7], \[r[0-7]+\]
121 int16_t *not_off_store16_1 (int16_t * a
, int32x4_t v
)
123 vstrhq_s32 ((a
+ 128), v
);
130 ** vstrw.32 q[0-7], \[r0, #-412\]
133 float32_t
*off_storefp32_0 (float32_t
*a
, float32x4_t v
)
135 vst1q_f32 (a
- 103, v
);
142 ** vstrw.32 q[0-7], \[r0, #-4\]
145 int32_t *off_store32_0 (int32_t * a
, int32x4_t v
)
147 vst1q_s32 (a
- 1, v
);
154 ** vstrw.32 q[0-7], \[r0, #508\]
157 uint32_t *off_store32_1 (uint32_t * a
, uint32x4_t v
)
159 vstrwq_u32 (a
+ 127, v
);
166 ** vstrb.8 q[0-7], \[r0, #-16\]!
169 uint8_t* pre_store8_0 (uint8_t * a
, uint8x16_t v
)
179 ** vstrb.16 q[0-7], \[r0, #4\]!
182 int8_t* pre_store8_1 (int8_t * a
, int16x8_t v
)
192 ** vstrh.16 q[0-7], \[r0, #8\]!
195 float16_t
*pre_storefp16_0 (float16_t
*a
, float16x8_t v
)
205 ** vstrh.16 q[0-7], \[r0, #254\]!
208 uint16_t* pre_store16_0 (uint16_t * a
, uint16x8_t v
)
218 ** vstrh.32 q[0-7], \[r0, #-52\]!
221 int16_t* pre_store16_1 (int16_t * a
, int32x4_t v
)
231 ** vstrw.32 q[0-7], \[r0, #-4\]!
234 float32_t
*pre_storefp32_0 (float32_t
*a
, float32x4_t v
)
244 ** vstrw.32 q[0-7], \[r0, #4\]!
247 int32_t* pre_store32_0 (int32_t * a
, int32x4_t v
)
258 ** vstrb.8 q[0-7], \[r0\], #-26
261 int8_t* post_store8_0 (int8_t * a
, int8x16_t v
)
271 ** vstrb.16 q[0-7], \[r0\], #1
274 uint8_t* post_store8_1 (uint8_t * a
, uint16x8_t v
)
284 ** vstrb.8 q[0-7], \[r0\], #-26
287 int8_t* post_store8_2 (int8_t * a
, int8x16_t v
)
297 ** vstrb.16 q[0-7], \[r0\], #7
300 uint8_t* post_store8_3 (uint8_t * a
, uint16x8_t v
)
310 ** vstrh.16 q[0-7], \[r0\], #-16
313 float16_t
*post_storefp16_0 (float16_t
*a
, float16x8_t v
)
323 ** vstrh.16 q[0-7], \[r0\], #126
326 int16_t* post_store16_0 (int16_t * a
, int16x8_t v
)
336 ** vstrh.32 q[0-7], \[r0\], #-16
339 uint16_t* post_store16_1 (uint16_t * a
, uint32x4_t v
)
349 ** vstrw.32 q[0-7], \[r0\], #-16
352 float32_t
* post_storefp32_0 (float32_t
* a
, float32x4_t v
)
362 ** vstrw.32 q[0-7], \[r0\], #16
365 int32_t* post_store32_0 (int32_t * a
, int32x4_t v
)