1/* PR tree-optimization/65369 */ 2 3static const char data[] = 4 "12345678901234567890123456789012345678901234567890" 5 "123456789012345678901234567890"; 6 7__attribute__ ((noinline)) 8static void foo (const unsigned int *buf) 9{ 10 if (__builtin_memcmp (buf, data, 64)) 11 __builtin_abort (); 12} 13 14__attribute__ ((noinline)) 15static void bar (const unsigned char *block) 16{ 17 unsigned int buf[16]; 18 __builtin_memcpy (buf + 0, block + 0, 4); 19 __builtin_memcpy (buf + 1, block + 4, 4); 20 __builtin_memcpy (buf + 2, block + 8, 4); 21 __builtin_memcpy (buf + 3, block + 12, 4); 22 __builtin_memcpy (buf + 4, block + 16, 4); 23 __builtin_memcpy (buf + 5, block + 20, 4); 24 __builtin_memcpy (buf + 6, block + 24, 4); 25 __builtin_memcpy (buf + 7, block + 28, 4); 26 __builtin_memcpy (buf + 8, block + 32, 4); 27 __builtin_memcpy (buf + 9, block + 36, 4); 28 __builtin_memcpy (buf + 10, block + 40, 4); 29 __builtin_memcpy (buf + 11, block + 44, 4); 30 __builtin_memcpy (buf + 12, block + 48, 4); 31 __builtin_memcpy (buf + 13, block + 52, 4); 32 __builtin_memcpy (buf + 14, block + 56, 4); 33 __builtin_memcpy (buf + 15, block + 60, 4); 34 foo (buf); 35} 36 37int 38main () 39{ 40 unsigned char input[sizeof data + 16] __attribute__((aligned (16))); 41 __builtin_memset (input, 0, sizeof input); 42 __builtin_memcpy (input + 1, data, sizeof data); 43 bar (input + 1); 44 return 0; 45} 46