Merge loop pass

Hi,

is there a pass that should merge similar loops?
for example:
void foo(int* a, int* b, int c,int a1, int* b1, int *c1, int limit){
int i = 0;

for(i=0;i<limit;i++){
	*a++ = (*b++ + *c++);
}
for(i=0;i<limit;i++){
	*a1++ = (*b1++ + *c1++);
}	
return ;

}

I would expect to have only 1 loop.

Thanks,
David