]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/gcc.target/arm/mve/intrinsics/vst4q_s32.c
[ARM][GCC][4/x]: MVE ACLE vector interleaving store intrinsics.
[thirdparty/gcc.git] / gcc / testsuite / gcc.target / arm / mve / intrinsics / vst4q_s32.c
1 /* { dg-do compile } */
2 /* { dg-require-effective-target arm_v8_1m_mve_ok } */
3 /* { dg-add-options arm_v8_1m_mve } */
4 /* { dg-additional-options "-O2" } */
5
6 #include "arm_mve.h"
7
8 void
9 foo (int32_t * addr, int32x4x4_t value)
10 {
11 vst4q_s32 (addr, value);
12 }
13
14 /* { dg-final { scan-assembler "vst40.32" } } */
15 /* { dg-final { scan-assembler "vst41.32" } } */
16 /* { dg-final { scan-assembler "vst42.32" } } */
17 /* { dg-final { scan-assembler "vst43.32" } } */
18
19 void
20 foo1 (int32_t * addr, int32x4x4_t value)
21 {
22 vst4q (addr, value);
23 }
24
25 /* { dg-final { scan-assembler "vst40.32" } } */
26 /* { dg-final { scan-assembler "vst41.32" } } */
27 /* { dg-final { scan-assembler "vst42.32" } } */
28 /* { dg-final { scan-assembler "vst43.32" } } */
29
30 void
31 foo2 (int32_t * addr, int32x4x4_t value)
32 {
33 vst4q_s32 (addr, value);
34 addr += 16;
35 vst4q_s32 (addr, value);
36 }
37
38 /* { dg-final { scan-assembler {vst43.32\s\{.*\}, \[.*\]!} } } */