diff --git a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp --- a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp @@ -624,10 +624,12 @@ } } break; - case Type::FixedVectorTyID: case Type::ScalableVectorTyID: + report_fatal_error( + "Scalable vector support not yet implemented in ExecutionEngine"); + case Type::FixedVectorTyID: // if the whole vector is 'undef' just reserve memory for the value. - auto *VTy = cast(C->getType()); + auto *VTy = cast(C->getType()); Type *ElemTy = VTy->getElementType(); unsigned int elemNum = VTy->getNumElements(); Result.AggregateVal.resize(elemNum); @@ -927,9 +929,9 @@ elemNum = CDV->getNumElements(); ElemTy = CDV->getElementType(); } else if (CV || CAZ) { - auto* VTy = cast(C->getType()); - elemNum = VTy->getNumElements(); - ElemTy = VTy->getElementType(); + auto *VTy = cast(C->getType()); + elemNum = VTy->getNumElements(); + ElemTy = VTy->getElementType(); } else { llvm_unreachable("Unknown constant vector type!"); } @@ -1100,7 +1102,8 @@ } case Type::FixedVectorTyID: case Type::ScalableVectorTyID: { - auto *VT = cast(Ty); + // FIXME: this needs to handle scalable vectors correctly + auto *VT = cast(Ty); Type *ElemT = VT->getElementType(); const unsigned numElems = VT->getNumElements(); if (ElemT->isFloatTy()) {