done with coalesce loop unrolling