This triggers an assert when combining concat_vectors of a bitcast of merge_values.
Assertion failed: (VT.isVector() && !Operand.getValueType().isVector() && (VT.getVectorElementType() == Operand.getValueType() || (VT.getVectorElementType().isInteger() && Operand.getValueType().isInteger() && VT.getVectorElementType().bitsLE(Operand.getValueType()))) && "Illegal SCALAR_TO_VECTOR node!"), function getNode, file ../lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 4172.
With asserts disabled, it fails to select:
fatal error: error in backend: Cannot select: 0x7ff19d000e90: i32 = any_extend 0x7ff19d000ae8 0x7ff19d000ae8: f64,ch = CopyFromReg 0x7ff19d000c20:1, Register:f64 %1 0x7ff19d000b50: f64 = Register %1 In function: d
You mean:
That being said, there is already combine-concatvectors.ll. Your new test case should be added there.