I think it makes sense to truncate down to the largest legal type as you've done here. Anything lower than that gets tricky to reason about the quality of code in the backends. LGTM. http://reviews.llvm.org/D5691