1 /* { dg-do run } */
2 /* { dg-require-effective-target arm_neon_hw } */
3 /* { dg-options "-O2" } */
4 /* { dg-add-options arm_neon } */
5
6 #include "arm_neon.h"
7
8 uint32_t buffer[12];
9
10 void __attribute__((noinline))
11 foo (uint32_t *a)
12 {
13 uint32x4x3_t x;
14
15 x = vld3q_u32 (a);
16 x.val[0] = vaddq_u32 (x.val[0], x.val[1]);
17 vst3q_u32 (a, x);
18 }
19
20 int
21 main (void)
22 {
23 buffer[0] = 1;
24 buffer[1] = 2;
25 foo (buffer);
26 return buffer[0] != 3;
27 }