Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp =================================================================== --- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -1171,9 +1171,6 @@ EVT OpVT = Op.getValueType(); assert(VT.isInteger() && OpVT.isInteger() && "Cannot getZeroExtendInReg FP types"); - assert(VT.isVector() == OpVT.isVector() && - "getZeroExtendInReg type should be vector iff the operand " - "type is vector!"); assert((!VT.isVector() || VT.getVectorElementCount() == OpVT.getVectorElementCount()) && "Vector element counts must match in getZeroExtendInReg"); Index: llvm/test/CodeGen/AArch64/arm64_32-pointer-extend.ll =================================================================== --- llvm/test/CodeGen/AArch64/arm64_32-pointer-extend.ll +++ llvm/test/CodeGen/AArch64/arm64_32-pointer-extend.ll @@ -47,3 +47,11 @@ %res = inttoptr i32 %sum32 to i8* ret i8* %res } + +define <2 x i8*> @gep_with_vector() { +; CHECK-LABEL: gep_with_vector: +; CHECK: movi.2d v0, #0000000000000000 +; CHECK-NEXT: ret + %vec = getelementptr i8, <2 x i8*> undef, <2 x i32> + ret <2 x i8*> %vec +}