Fix a performance regression caused by r322737.
While trying to make it easier to replace compares with existing adds and subtracts, I accidentally stopped it from doing so in some cases. This should fix that. I'm also fixing another potential bug in that commit.
Is there some reason to expect that --E is a valid, given E could be the first instruction in its basic block?