Taming control divergence for vectorizing programs on SIMD Extensions