1 /* { dg-do compile } */
2 /* { dg-options "-O2 -march=armv8.6-a+mops --param=aarch64-mops-memmove-size-threshold=0" } */
3 /* { dg-final { check-function-bodies "**" "" "" } } */
7 /* We want to inline variable-sized memmove.
9 ** cpyp \[x1\]\!, \[x0\]\!, x2\!
10 ** cpym \[x1\]\!, \[x0\]\!, x2\!
11 ** cpye \[x1\]\!, \[x0\]\!, x2\!
14 void do_it_mov (char * in
, char * out
, size_t size
)
16 __builtin_memmove (out
, in
, size
);
22 ** cpyp \[x1\]\!, \[x0\]!, x2\!
23 ** cpym \[x1\]\!, \[x0\]!, x2\!
24 ** cpye \[x1\]\!, \[x0\]\!, x2\!
27 void do_it_mov_large (char * in
, char * out
)
29 __builtin_memmove (out
, in
, 1024);
35 ** cpyp \[x1\]\!, \[x0\]!, x2\!
36 ** cpym \[x1\]\!, \[x0\]!, x2\!
37 ** cpye \[x1\]\!, \[x0\]\!, x2\!
40 void do_it_mov_127 (char * in
, char * out
)
42 __builtin_memmove (out
, in
, 127);
48 ** cpyp \[x1\]\!, \[x0\]!, x2\!
49 ** cpym \[x1\]\!, \[x0\]!, x2\!
50 ** cpye \[x1\]\!, \[x0\]\!, x2\!
53 void do_it_mov_128 (char * in
, char * out
)
55 __builtin_memmove (out
, in
, 128);