152
|
1 /* { dg-require-effective-target arm_v8_1m_mve_ok } */
|
|
2 /* { dg-add-options arm_v8_1m_mve } */
|
|
3 /* { dg-additional-options "-O2" } */
|
|
4
|
|
5 #include "arm_mve.h"
|
|
6
|
|
7 void
|
|
8 foo (int32_t * addr, int32x4x4_t value)
|
|
9 {
|
|
10 vst4q_s32 (addr, value);
|
|
11 }
|
|
12
|
|
13 /* { dg-final { scan-assembler "vst40.32" } } */
|
|
14 /* { dg-final { scan-assembler "vst41.32" } } */
|
|
15 /* { dg-final { scan-assembler "vst42.32" } } */
|
|
16 /* { dg-final { scan-assembler "vst43.32" } } */
|
|
17
|
|
18 void
|
|
19 foo1 (int32_t * addr, int32x4x4_t value)
|
|
20 {
|
|
21 vst4q (addr, value);
|
|
22 }
|
|
23
|
|
24 /* { dg-final { scan-assembler "vst40.32" } } */
|
|
25 /* { dg-final { scan-assembler "vst41.32" } } */
|
|
26 /* { dg-final { scan-assembler "vst42.32" } } */
|
|
27 /* { dg-final { scan-assembler "vst43.32" } } */
|
|
28
|
|
29 void
|
|
30 foo2 (int32_t * addr, int32x4x4_t value)
|
|
31 {
|
|
32 vst4q_s32 (addr, value);
|
|
33 addr += 16;
|
|
34 vst4q_s32 (addr, value);
|
|
35 }
|
|
36
|
|
37 /* { dg-final { scan-assembler {vst43.32\s\{.*\}, \[.*\]!} } } */
|