Extended Description
To reproduce: compare the output of "lli abortbug.bc" and "opt -indvars abortbug.bc -o - | lli" with the attached testcase.
I think it's somehow illegally rewriting the induction variable z.
Original source (from X86/README.txt):
main ()
{
int i = 0;
unsigned long int z = 0;
do {
z -= 0x00004000;
i++;
if (i > 0x00040000)
abort ();
} while (z > 0);
exit (0);
}
compiled with clang.