gcc 4.8.2 не знает как инлайнить memcmp (
http://gcc.godbolt.org/ ), увы

Если поииследовать memcpy (хотя она тут как телеге пятое колесо), то
memcpy для выровненных данных заинлайнил:
Код
#include <memory.h>
void do_memcmp(void* p1, const void* p2)
{
memcpy(__builtin_assume_aligned(p1,4),__builtin_assume_aligned(p2,4),4);
}
сделал
Код
do_memcmp(void const*, void const*):
ldr r3, [r1]
str r3, [r0]
bx lr
невыровненный тоже сделал:
Код
#include <memory.h>
void do_memcmp(void* p1, const void* p2)
{
memcpy(p1,p2,4);
}
Код
do_memcmp(void*, void const*):
ldr r3, [r1] @ unaligned
str r3, [r0] @ unaligned
bx lr
Остался только вопрос - под какой это камень