This is part of fixing PR25543:
https://llvm.org/bugs/show_bug.cgi?id=25543
If this looks good, the next step will be to generalize this fold:
trunc ( lshr ( bitcast X) ) -> extractelement (X)
Ie, I'm hoping to replace the existing transform of:
bitcast ( trunc ( lshr ( bitcast X)))
added by:
http://reviews.llvm.org/rL112232
with 2 more general transforms to catch the case in the bug report.