1 /* { dg-do compile } */
2 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mcpu=*" } { "-mcpu=iwmmxt" } } */
3 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-mabi=*" } { "-mabi=iwmmxt" } } */
4 /* { dg-skip-if "Test is specific to the iWMMXt" { arm*-*-* } { "-march=*" } { "-march=iwmmxt" } } */
5 /* { dg-skip-if "Test is specific to ARM mode" { arm*-*-* } { "-mthumb" } { "" } } */
6 /* { dg-require-effective-target arm32 } */
7 /* { dg-require-effective-target arm_iwmmxt_ok } */
8 /* { dg-options "-O3 -mcpu=iwmmxt" } */
9
10 typedef signed char V __attribute__((vector_size (8)));
11
12 void
13 foo (V *a)
14 {
15 *a = *a * 3;
16 }
17
18 typedef signed short Vshort __attribute__((vector_size (8)));
19 void
20 foo_short (Vshort *a)
21 {
22 *a = *a * 3;
23 }
24
25 typedef signed int Vint __attribute__((vector_size (8)));
26 void
27 foo_int (Vint *a)
28 {
29 *a = *a * 3;
30 }