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 ** vldrb.8 q[0-7], \[r0, #16\]
13 int8x16_t
off_load8_0 (int8_t * a
)
15 return vld1q_s8 (a
+ 16);
21 ** vldrb.u16 q[0-7], \[r0, #1\]
24 uint16x8_t
off_load8_1 (uint8_t * a
)
26 return vldrbq_u16 (a
+ 1);
32 ** vldrb.s32 q[0-7], \[r0, #127\]
35 int32x4_t
off_load8_2 (int8_t * a
)
37 return vldrbq_s32 (a
+ 127);
43 ** vldrb.8 q[0-7], \[r0, #-127\]
46 uint8x16_t
off_load8_3 (uint8_t * a
)
48 return vldrbq_u8 (a
- 127);
54 ** vldrb.8 q[0-7], \[r[0-7]+\]
57 int8x16_t
not_off_load8_0 (int8_t * a
)
59 return vld1q_s8 (a
+ 128);
65 ** vldrh.16 q[0-7], \[r0, #-244\]
68 float16x8_t
off_loadfp16_0 (float16_t
*a
)
70 return vld1q_f16 (a
- 122);
76 ** vldrh.16 q[0-7], \[r0, #-2\]
79 uint16x8_t
off_load16_0 (uint16_t * a
)
81 return vld1q_u16 (a
- 1);
87 ** vldrh.u32 q[0-7], \[r0, #254\]
90 uint32x4_t
off_load16_1 (uint16_t * a
)
92 return vldrhq_u32 (a
+ 127);
98 ** vldrh.16 q[0-7], \[r[0-7]+\]
101 int16x8_t
not_off_load16_0 (int8_t * a
)
103 return vld1q_s16 ((int16_t *)(a
+ 1));
109 ** vldrh.u32 q[0-7], \[r[0-7]+\]
112 uint32x4_t
not_off_load16_1 (uint16_t * a
)
114 return vldrhq_u32 ((a
- 128));
120 ** vldrw.32 q[0-7], \[r0, #24\]
123 float32x4_t
off_loadfp32_0 (float32_t
*a
)
125 return vld1q_f32 (a
+ 6);
131 ** vldrw.32 q[0-7], \[r0, #4\]
134 uint32x4_t
off_load32_0 (uint32_t * a
)
136 return vld1q_u32 (a
+ 1);
142 ** vldrw.32 q[0-7], \[r0, #-508\]
145 int32x4_t
off_load32_1 (int32_t * a
)
147 return vldrwq_s32 (a
- 127);
152 ** vldrb.8 q[0-7], \[r0, #16\]!
155 int8_t* pre_load8_0 (int8_t * a
, int8x16_t
*v
)
165 ** vldrb.u16 q[0-7], \[r0, #4\]!
168 uint8_t* pre_load8_1 (uint8_t * a
, uint16x8_t
*v
)
178 ** vldrh.16 q[0-7], \[r0, #128\]!
181 float16_t
* pre_loadfp16_0 (float16_t
*a
, float16x8_t
*v
)
191 ** vldrh.16 q[0-7], \[r0, #-254\]!
194 int16_t* pre_load16_0 (int16_t * a
, int16x8_t
*v
)
204 ** vldrh.s32 q[0-7], \[r0, #52\]!
207 int16_t* pre_load16_1 (int16_t * a
, int32x4_t
*v
)
217 ** vldrw.32 q[0-7], \[r0, #-72\]!
220 float32_t
* pre_loadfp32_0 (float32_t
*a
, float32x4_t
*v
)
231 ** vldrw.32 q[0-7], \[r0, #-4\]!
234 uint32_t* pre_load32_0 (uint32_t * a
, uint32x4_t
*v
)
245 ** vldrb.8 q[0-7], \[r0\], #26
248 uint8_t* post_load8_0 (uint8_t * a
, uint8x16_t
*v
)
258 ** vldrb.s16 q[0-7], \[r0\], #-1
261 int8_t* post_load8_1 (int8_t * a
, int16x8_t
*v
)
271 ** vldrb.8 q[0-7], \[r0\], #26
274 uint8_t* post_load8_2 (uint8_t * a
, uint8x16_t
*v
)
284 ** vldrb.s16 q[0-7], \[r0\], #-1
287 int8_t* post_load8_3 (int8_t * a
, int16x8_t
*v
)
297 ** vldrh.16 q[0-7], \[r0\], #-24
300 float16_t
* post_loadfp16_0 (float16_t
*a
, float16x8_t
*v
)
310 ** vldrh.16 q[0-7], \[r0\], #-126
313 uint16_t* post_load16_0 (uint16_t * a
, uint16x8_t
*v
)
323 ** vldrh.u32 q[0-7], \[r0\], #16
326 uint16_t* post_load16_1 (uint16_t * a
, uint32x4_t
*v
)
336 ** vldrw.32 q[0-7], \[r0\], #4
339 float32_t
* post_loadfp32_0 (float32_t
*a
, float32x4_t
*v
)
349 ** vldrw.32 q[0-7], \[r0\], #-16
352 int32_t* post_load32_0 (int32_t * a
, int32x4_t
*v
)