1 /* { dg-options "-O2 -march=armv7-a" } */
2 /* { dg-add-options arm_neon } */
3 /* { dg-require-effective-target arm_neon_ok } */
4 /* { dg-do compile } */
6 #include "addr-modes.h"
10 /* no special function attribute required */
14 /* { dg-final { scan-assembler "strb.*#1]!" } } */
15 PRE_STORE(short, ATTR
)
16 /* { dg-final { scan-assembler "strh.*#2]!" } } */
18 /* { dg-final { scan-assembler "str.*#4]!" } } */
20 /* { dg-final { scan-assembler "strd.*#8]!" } } */
22 POST_STORE(char, ATTR
)
23 /* { dg-final { scan-assembler "strb.*], #1" } } */
24 POST_STORE(short, ATTR
)
25 /* { dg-final { scan-assembler "strh.*], #2" } } */
27 /* { dg-final { scan-assembler "str.*], #4" } } */
29 /* { dg-final { scan-assembler "strd.*], #8" } } */
32 /* { dg-final { scan-assembler "ldrb.*#1]!" } } */
34 /* { dg-final { scan-assembler "ldrsh.*#2]!" } } */
36 /* { dg-final { scan-assembler "ldr.*#4]!" } } */
38 /* { dg-final { scan-assembler "ldrd.*#8]!" } } */
41 /* { dg-final { scan-assembler "ldrb.*], #1" } } */
42 POST_LOAD(short, ATTR
)
43 /* { dg-final { scan-assembler "ldrsh.*], #2" } } */
45 /* { dg-final { scan-assembler "ldr.*], #4" } } */
47 /* { dg-final { scan-assembler "ldrd.*], #8" } } */
49 /* { dg-final { scan-assembler-not "\tadd" } } */