While you're here, please change the cast<> to cast<FixedVectorType>(Ty).
I actually skipped that on purpose to keep the patch small. Knowing my luck, this would cause a test failure.
I can make the change.
address code review issues
LGTM
rebase
While you're here, please change the cast<> to cast<FixedVectorType>(Ty).