I wonder how this will work for Rust where bytes are u8 - will they special-case them ? That would look weird.
Also there are some botched examples, e.g. :
> define void @src(ptr %a, ptr %b)
> {
> %mem = alloca i8
> call void @llvm.memcpy(ptr %mem, ptr %a, i32 1)
> call void @llvm.memcpy(ptr %a, ptr %mem, i32 1)
> ret void
> }
The last %a should be a %b. But you can get the idea anyway.