|
@@ -237,7 +237,10 @@ Value *HLMatrixSubscriptUseReplacer::loadVector(IRBuilder<> &Builder) {
|
|
}
|
|
}
|
|
|
|
|
|
// Otherwise load elements one by one
|
|
// Otherwise load elements one by one
|
|
- Type* ElemTy = LoweredPtr->getType()->getPointerElementType()->getScalarType();
|
|
|
|
|
|
+ // Lowered form may be array when AllowLoweredPtrGEPs == true.
|
|
|
|
+ Type* LoweredTy = LoweredPtr->getType()->getPointerElementType();
|
|
|
|
+ Type* ElemTy = LoweredTy->isVectorTy() ? LoweredTy->getScalarType() :
|
|
|
|
+ cast<ArrayType>(LoweredTy)->getArrayElementType();
|
|
VectorType *VecTy = VectorType::get(ElemTy, static_cast<unsigned>(ElemIndices.size()));
|
|
VectorType *VecTy = VectorType::get(ElemTy, static_cast<unsigned>(ElemIndices.size()));
|
|
Value *Result = UndefValue::get(VecTy);
|
|
Value *Result = UndefValue::get(VecTy);
|
|
for (unsigned SubIdx = 0; SubIdx < ElemIndices.size(); ++SubIdx) {
|
|
for (unsigned SubIdx = 0; SubIdx < ElemIndices.size(); ++SubIdx) {
|