To duplicate the results of MATLAB’s xcorr, you need to pad the vector with zeroes before and after:
#include <stdio.h>
#include <Accelerate/Accelerate.h>
int main(void)
{
#define NF 3
#define NC (2*NF+1)
float A[3*NF] = {0, 0, 0, 1, 2, 3, 0, 0, 0};
float C[NC];
vDSP_conv(A, 1, A+NF, 1, C, 1, NC, NF);
for (vDSP_Length i = 0; i < NC; ++i)
printf("C[%u] = %g.\n", (unsigned) i, C[i]);
return 0;
}