2
0
Эх сурвалжийг харах

HLMatrixSubscript lowering: support lowering directly to array

Tex Riddell 5 жил өмнө
parent
commit
8a54ceba7c

+ 4 - 1
lib/HLSL/HLMatrixSubscriptUseReplacer.cpp

@@ -237,7 +237,10 @@ Value *HLMatrixSubscriptUseReplacer::loadVector(IRBuilder<> &Builder) {
   }
 
   // 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()));
   Value *Result = UndefValue::get(VecTy);
   for (unsigned SubIdx = 0; SubIdx < ElemIndices.size(); ++SubIdx) {