1 /* Funtional memmov test. */
4 /* { dg-options "-O3" } */
6 #define MAX_LEN (8 * 1000)
9 char gsrc
[MAX_LEN
+ 2];
10 char gdst
[MAX_LEN
+ 2];
12 __attribute__ ((noinline
))
20 for (i
= 1; i
<= len
; i
++)
21 if (gsrc
[i
] != gdst
[i
])
23 for (i
= len
+ 1; i
< MAX_LEN
; i
++)
24 if (gdst
[i
] != 0x61 + i
% 4)
28 __attribute__ ((noinline
))
36 p1
= (unsigned int *)gsrc
;
37 p2
= (unsigned int *)gdst
;
38 for (i
= 0; i
< MAX_LEN
/ sizeof(unsigned int); i
++)
45 #define MEMCPY_CHECK(DST, SRC, LEN) \
47 __builtin_memcpy ((DST) + 1, (SRC) + 1, (LEN)); \
66 for (t
= 0; lens
[t
] != -999; t
++)
68 MEMCPY_CHECK (gdst
, gsrc
, lens
[t
]);
71 MEMCPY_CHECK (gdst
, gsrc
, 0);
72 MEMCPY_CHECK (gdst
, gsrc
, 1);
73 MEMCPY_CHECK (gdst
, gsrc
, 2);
74 MEMCPY_CHECK (gdst
, gsrc
, 3);
75 MEMCPY_CHECK (gdst
, gsrc
, 256);
76 MEMCPY_CHECK (gdst
, gsrc
, 257);
77 MEMCPY_CHECK (gdst
, gsrc
, 511);
78 MEMCPY_CHECK (gdst
, gsrc
, 512);
79 MEMCPY_CHECK (gdst
, gsrc
, 513);
80 MEMCPY_CHECK (gdst
, gsrc
, 767);
81 MEMCPY_CHECK (gdst
, gsrc
, 768);
82 MEMCPY_CHECK (gdst
, gsrc
, 769);
83 MEMCPY_CHECK (gdst
, gsrc
, 1023);
84 MEMCPY_CHECK (gdst
, gsrc
, 1024);
85 MEMCPY_CHECK (gdst
, gsrc
, 1025);
86 MEMCPY_CHECK (gdst
, gsrc
, 1279);
87 MEMCPY_CHECK (gdst
, gsrc
, 1280);
88 MEMCPY_CHECK (gdst
, gsrc
, 1281);
89 MEMCPY_CHECK (gdst
, gsrc
, 1535);
90 MEMCPY_CHECK (gdst
, gsrc
, 1536);
91 MEMCPY_CHECK (gdst
, gsrc
, 1537);