pcu_io allocates temporaries to avoid swapping user bytes