1 /* Copyright (C) 2004 Free Software Foundation.
3 Check builtin memmove and bcopy optimization when length is 1.
5 Written by Jakub Jelinek, 9/14/2004. */
7 extern void abort (void);
8 typedef __SIZE_TYPE__
size_t;
9 extern void *memmove (void *, const void *, size_t);
10 extern void bcopy (const void *, void *, size_t);
11 extern int memcmp (const void *, const void *, size_t);
13 char p
[32] = "abcdefg";
19 /* memmove with length 1 can be optimized into memcpy if it can be
21 if (memmove (p
+ 2, p
+ 3, 1) != p
+ 2 || memcmp (p
, "abddefg", 8))
23 if (memmove (p
+ 1, p
+ 1, 1) != p
+ 1 || memcmp (p
, "abddefg", 8))
25 if (memmove (q
, p
+ 4, 1) != p
+ 4 || memcmp (p
, "abddefg", 8))
27 bcopy (p
+ 5, p
+ 6, 1);
28 if (memcmp (p
, "abddeff", 8))
30 bcopy (p
+ 1, p
+ 1, 1);
31 if (memcmp (p
, "abddeff", 8))
34 if (memcmp (p
, "abddeff", 8))