[ARM][GCC][3/2x]: MVE intrinsics with binary operands.
[official-gcc.git] / gcc / testsuite / gcc.target / arm / mve / intrinsics / vst4q_u32.c
blob943aa0266a7da619295e3e30fe99c011c1b7184e
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" } */
6 #include "arm_mve.h"
8 void
9 foo (uint32_t * addr, uint32x4x4_t value)
11 vst4q_u32 (addr, value);
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" } } */
19 void
20 foo1 (uint32_t * addr, uint32x4x4_t value)
22 vst4q (addr, value);
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" } } */
30 void
31 foo2 (uint32_t * addr, uint32x4x4_t value)
33 vst4q_u32 (addr, value);
34 addr += 16;
35 vst4q_u32 (addr, value);
38 /* { dg-final { scan-assembler {vst43.32\s\{.*\}, \[.*\]!} } } */