Closed
Description
When casting from i8x3 -> i16x3 there's an ICE on rustc 1.17.0-nightly (24a70eb59 2017-02-09)
PromoteIntegerResult #0: t35: v4i16 = sign_extend_vector_inreg t34
Do not know how to promote this operator!
UNREACHABLE executed at /Users/rustbuild/src/rust-buildbot/slave/nightly-dist-rustc-mac/build/src/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp:51!
Test case: https://gist.github.com/rawrasaur/27a3e624e5a6e071bc4e9059795fd97b
It seems to trigger when the width is 3, the source is not a float, and in size is smaller than the out size. Clang handles this case fine in its __builtin_convertvector.