PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / arm / addr-modes-float.c
blob5ffbcb1c1c26e2bbf1715bebbc29be5624d8d6b1
1 /* { dg-options "-O2" } */
2 /* { dg-require-effective-target arm_neon_ok } */
3 /* { dg-add-options arm_neon } */
4 /* { dg-do compile } */
6 #include <arm_neon.h>
8 #include "addr-modes.h"
10 #define ATTR __attribute__((__pcs__("aapcs-vfp")))
12 POST_STORE(float, ATTR)
13 /* { dg-final { scan-assembler "vstmia.32" } } */
14 POST_STORE(double, ATTR)
15 /* { dg-final { scan-assembler "vstmia.64" } } */
17 POST_LOAD(float, ATTR)
18 /* { dg-final { scan-assembler "vldmia.32" } } */
19 POST_LOAD(double, ATTR)
20 /* { dg-final { scan-assembler "vldmia.64" } } */
22 POST_STORE_VEC (int8_t, int8x8_t, vst1_s8, ATTR)
23 /* { dg-final { scan-assembler "vst1.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
24 POST_STORE_VEC (int8_t, int8x16_t, vst1q_s8, ATTR)
25 /* { dg-final { scan-assembler "vst1.8\t\{.*\[-,\]d.*\}, \\\[r\[0-9\]+\\\]!" } } */
27 POST_STORE_VEC (int8_t, int8x8x2_t, vst2_s8, ATTR)
28 /* { dg-final { scan-assembler "vst2.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
29 POST_STORE_VEC (int8_t, int8x16x2_t, vst2q_s8, ATTR)
30 /* { dg-final { scan-assembler "vst2.8\t\{.*-d.*\}, \\\[r\[0-9\]+\\\]!" } } */
32 POST_STORE_VEC (int8_t, int8x8x3_t, vst3_s8, ATTR)
33 /* { dg-final { scan-assembler "vst3.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
34 POST_STORE_VEC (int8_t, int8x16x3_t, vst3q_s8, ATTR)
35 /* { dg-final { scan-assembler "vst3.8\t\{d\[02468\], d\[02468\], d\[02468\]\}, \\\[r\[0-9\]+\\\]!" } } */
36 /* { dg-final { scan-assembler "vst3.8\t\{d\[13579\], d\[13579\], d\[13579\]\}, \\\[r\[0-9\]+\\\]!" { xfail *-*-* } } } */
38 POST_STORE_VEC (int8_t, int8x8x4_t, vst4_s8, ATTR)
39 /* { dg-final { scan-assembler "vst4.8\t\{.*\}, \\\[r\[0-9\]+\\\]!" } } */
40 POST_STORE_VEC (int8_t, int8x16x4_t, vst4q_s8, ATTR)
41 /* { dg-final { scan-assembler "vst4.8\t\{d\[02468\], d\[02468\], d\[02468\], d\[02468\]\}, \\\[r\[0-9\]+\\\]!" } } */
42 /* { dg-final { scan-assembler "vst4.8\t\{d\[13579\], d\[13579\], d\[13579\], d\[13579\]\}, \\\[r\[0-9\]+\\\]!" { xfail *-*-* } } } */
44 /* { dg-final { scan-assembler-not "add" { xfail *-*-* } } } */