I did not review the code carefully but I think it looks fine. We are not generating new shuffle masks so there should not be any lowering problems. http://reviews.llvm.org/D3525