diff --git a/src/vector.c b/src/vector.c index a5b2aac..0ced82b 100644 --- a/src/vector.c +++ b/src/vector.c @@ -916,15 +916,19 @@ vector_concat(PG_FUNCTION_ARGS) Vector *b = PG_GETARG_VECTOR_P(1); Vector *result; int dim = a->dim + b->dim; + int dim_a = a->dim; + int dim_b = b->dim; CheckDim(dim); result = InitVector(dim); - for (int i = 0; i < a->dim; i++) + /* Auto-vectorized */ + for (int i = 0; i < dim_a; i++) result->x[i] = a->x[i]; - for (int i = 0; i < b->dim; i++) - result->x[i + a->dim] = b->x[i]; + /* Auto-vectorized */ + for (int i = 0; i < dim_b; i++) + result->x[i + dim_a] = b->x[i]; PG_RETURN_POINTER(result); }