@@ -3475,24 +3475,20 @@ ConstantFoldStructCall(StringRef Name, Intrinsic::ID IntrinsicID,
34753475 [&](Constant *Op) -> std::pair<Constant *, Constant *> {
34763476 Constant *SinResult =
34773477 ConstantFoldScalarCall (Name, Intrinsic::sin, TyScalar, Op, TLI, Call);
3478- if (!SinResult)
3479- return {};
34803478 Constant *CosResult =
34813479 ConstantFoldScalarCall (Name, Intrinsic::cos, TyScalar, Op, TLI, Call);
3482- if (!CosResult)
3483- return {};
34843480 return std::make_pair (SinResult, CosResult);
34853481 };
34863482
34873483 if (auto *FVTy = dyn_cast<FixedVectorType>(Ty)) {
3488- SmallVector<Constant *, 4 > SinResults (FVTy->getNumElements ());
3489- SmallVector<Constant *, 4 > CosResults (FVTy->getNumElements ());
3484+ SmallVector<Constant *> SinResults (FVTy->getNumElements ());
3485+ SmallVector<Constant *> CosResults (FVTy->getNumElements ());
34903486
34913487 for (unsigned I = 0 , E = FVTy->getNumElements (); I != E; ++I) {
34923488 Constant *Lane = Operands[0 ]->getAggregateElement (I);
34933489 std::tie (SinResults[I], CosResults[I]) =
34943490 ConstantFoldScalarSincosCall (Lane);
3495- if (!SinResults[I])
3491+ if (!SinResults[I] || !CosResults[I] )
34963492 return nullptr ;
34973493 }
34983494
@@ -3501,7 +3497,7 @@ ConstantFoldStructCall(StringRef Name, Intrinsic::ID IntrinsicID,
35013497 }
35023498
35033499 auto [SinResult, CosResult] = ConstantFoldScalarSincosCall (Operands[0 ]);
3504- if (!SinResult)
3500+ if (!SinResult || !CosResult )
35053501 return nullptr ;
35063502 return ConstantStruct::get (StTy, SinResult, CosResult);
35073503 }
0 commit comments