@@ -3543,24 +3543,20 @@ ConstantFoldStructCall(StringRef Name, Intrinsic::ID IntrinsicID,
35433543 [&](Constant *Op) -> std::pair<Constant *, Constant *> {
35443544 Constant *SinResult =
35453545 ConstantFoldScalarCall (Name, Intrinsic::sin, TyScalar, Op, TLI, Call);
3546- if (!SinResult)
3547- return {};
35483546 Constant *CosResult =
35493547 ConstantFoldScalarCall (Name, Intrinsic::cos, TyScalar, Op, TLI, Call);
3550- if (!CosResult)
3551- return {};
35523548 return std::make_pair (SinResult, CosResult);
35533549 };
35543550
35553551 if (auto *FVTy = dyn_cast<FixedVectorType>(Ty)) {
3556- SmallVector<Constant *, 4 > SinResults (FVTy->getNumElements ());
3557- SmallVector<Constant *, 4 > CosResults (FVTy->getNumElements ());
3552+ SmallVector<Constant *> SinResults (FVTy->getNumElements ());
3553+ SmallVector<Constant *> CosResults (FVTy->getNumElements ());
35583554
35593555 for (unsigned I = 0 , E = FVTy->getNumElements (); I != E; ++I) {
35603556 Constant *Lane = Operands[0 ]->getAggregateElement (I);
35613557 std::tie (SinResults[I], CosResults[I]) =
35623558 ConstantFoldScalarSincosCall (Lane);
3563- if (!SinResults[I])
3559+ if (!SinResults[I] || !CosResults[I] )
35643560 return nullptr ;
35653561 }
35663562
@@ -3569,7 +3565,7 @@ ConstantFoldStructCall(StringRef Name, Intrinsic::ID IntrinsicID,
35693565 }
35703566
35713567 auto [SinResult, CosResult] = ConstantFoldScalarSincosCall (Operands[0 ]);
3572- if (!SinResult)
3568+ if (!SinResult || !CosResult )
35733569 return nullptr ;
35743570 return ConstantStruct::get (StTy, SinResult, CosResult);
35753571 }
0 commit comments