Skip to content

Commit 0fd9882

Browse files
authored
[NFC] W/A GCC maybe-uninitialized warning (#2588)
Signed-off-by: Sidorov, Dmitry <[email protected]>
1 parent ece2867 commit 0fd9882

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

lib/SPIRV/SPIRVWriter.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4383,17 +4383,22 @@ SPIRVValue *LLVMToSPIRVBase::transIntrinsicInst(IntrinsicInst *II,
43834383
SPIRVValue *StartingSVal = transValue(II->getArgOperand(0), BB);
43844384
SPIRVTypeInt *I32STy = BM->addIntegerType(32);
43854385
unsigned VecSize = VecTy->getElementCount().getFixedValue();
4386-
SmallVector<SPIRVValue *, 16> Extracts(VecSize);
4387-
for (unsigned Idx = 0; Idx < VecSize; ++Idx) {
4388-
Extracts[Idx] = BM->addVectorExtractDynamicInst(
4389-
VecSVal, BM->addIntegerConstant(I32STy, Idx), BB);
4390-
}
4391-
SPIRVValue *V = BM->addBinaryInst(Op, StartingSVal->getType(), StartingSVal,
4392-
Extracts[0], BB);
4393-
for (unsigned Idx = 1; Idx < VecSize; ++Idx) {
4394-
V = BM->addBinaryInst(Op, StartingSVal->getType(), V, Extracts[Idx], BB);
4386+
if (VecSize > 0) {
4387+
SmallVector<SPIRVValue *, 16> Extracts(VecSize);
4388+
for (unsigned Idx = 0; Idx < VecSize; ++Idx) {
4389+
Extracts[Idx] = BM->addVectorExtractDynamicInst(
4390+
VecSVal, BM->addIntegerConstant(I32STy, Idx), BB);
4391+
}
4392+
SPIRVValue *V = BM->addBinaryInst(Op, StartingSVal->getType(),
4393+
StartingSVal, Extracts[0], BB);
4394+
for (unsigned Idx = 1; Idx < VecSize; ++Idx) {
4395+
V = BM->addBinaryInst(Op, StartingSVal->getType(), V, Extracts[Idx],
4396+
BB);
4397+
}
4398+
return V;
43954399
}
4396-
return V;
4400+
assert(VecSize && "Zero Extracts size for vector reduce lowering");
4401+
return nullptr;
43974402
}
43984403
case Intrinsic::vector_reduce_smax:
43994404
case Intrinsic::vector_reduce_smin:

0 commit comments

Comments
 (0)