/external/swiftshader/third_party/LLVM/lib/Transforms/InstCombine/ |
D | InstCombineMulDivRem.cpp | 26 static Value *simplifyValueKnownNonZero(Value *V, InstCombiner &IC) { in simplifyValueKnownNonZero() 99 Instruction *InstCombiner::visitMul(BinaryOperator &I) { in visitMul() 255 Instruction *InstCombiner::visitFMul(BinaryOperator &I) { in visitFMul() 296 bool InstCombiner::SimplifyDivRemOfSelect(BinaryOperator &I) { in SimplifyDivRemOfSelect() 370 Instruction *InstCombiner::commonIDivTransforms(BinaryOperator &I) { in commonIDivTransforms() 435 Instruction *InstCombiner::visitUDiv(BinaryOperator &I) { in visitUDiv() 503 Instruction *InstCombiner::visitSDiv(BinaryOperator &I) { in visitSDiv() 556 Instruction *InstCombiner::visitFDiv(BinaryOperator &I) { in visitFDiv() 581 Instruction *InstCombiner::commonIRemTransforms(BinaryOperator &I) { in commonIRemTransforms() 613 Instruction *InstCombiner::visitURem(BinaryOperator &I) { in visitURem() [all …]
|
D | InstCombineCasts.cpp | 78 Instruction *InstCombiner::PromoteCastOfAllocation(BitCastInst &CI, in PromoteCastOfAllocation() 155 Value *InstCombiner::EvaluateInDifferentType(Value *V, Type *Ty, in EvaluateInDifferentType() 263 bool InstCombiner::ShouldOptimizeCast(Instruction::CastOps opc, const Value *V, in ShouldOptimizeCast() 284 Instruction *InstCombiner::commonCastTransforms(CastInst &CI) { in commonCastTransforms() 429 Instruction *InstCombiner::visitTrunc(TruncInst &CI) { in visitTrunc() 503 Instruction *InstCombiner::transformZExtICmp(ICmpInst *ICI, Instruction &CI, in transformZExtICmp() 746 Instruction *InstCombiner::visitZExt(ZExtInst &CI) { in visitZExt() 890 Instruction *InstCombiner::transformSExtICmp(ICmpInst *ICI, Instruction &CI) { in transformSExtICmp() 1052 Instruction *InstCombiner::visitSExt(SExtInst &CI) { in visitSExt() 1179 Instruction *InstCombiner::visitFPTrunc(FPTruncInst &CI) { in visitFPTrunc() [all …]
|
D | InstructionCombining.cpp | 76 char InstCombiner::ID = 0; 77 INITIALIZE_PASS(InstCombiner, "instcombine", 80 void InstCombiner::getAnalysisUsage(AnalysisUsage &AU) const { in getAnalysisUsage() 88 bool InstCombiner::ShouldChangeType(Type *From, Type *To) const { in ShouldChangeType() 171 bool InstCombiner::SimplifyAssociativeOrCommutative(BinaryOperator &I) { in SimplifyAssociativeOrCommutative() 366 Value *InstCombiner::SimplifyUsingDistributiveLaws(BinaryOperator &I) { in SimplifyUsingDistributiveLaws() 485 Value *InstCombiner::dyn_castNegVal(Value *V) const { in dyn_castNegVal() 504 Value *InstCombiner::dyn_castFNegVal(Value *V) const { in dyn_castFNegVal() 520 InstCombiner *IC) { in FoldOperationIntoSelectOperand() 555 Instruction *InstCombiner::FoldOpIntoSelect(Instruction &Op, SelectInst *SI) { in FoldOpIntoSelect() [all …]
|
D | InstCombineLoadStoreAlloca.cpp | 25 Instruction *InstCombiner::visitAllocaInst(AllocaInst &AI) { in visitAllocaInst() 89 static Instruction *InstCombineLoadCast(InstCombiner &IC, LoadInst &LI, in InstCombineLoadCast() 144 Instruction *InstCombiner::visitLoadInst(LoadInst &LI) { in visitLoadInst() 256 static Instruction *InstCombineStoreToCast(InstCombiner &IC, StoreInst &SI) { in InstCombineStoreToCast() 369 Instruction *InstCombiner::visitStoreInst(StoreInst &SI) { in visitStoreInst() 499 bool InstCombiner::SimplifyStoreAtEndOfBlock(StoreInst &SI) { in SimplifyStoreAtEndOfBlock()
|
D | InstCombineAddSub.cpp | 64 bool InstCombiner::WillNotOverflowSignedAdd(Value *LHS, Value *RHS) { in WillNotOverflowSignedAdd() 86 Instruction *InstCombiner::visitAdd(BinaryOperator &I) { in visitAdd() 324 Instruction *InstCombiner::visitFAdd(BinaryOperator &I) { in visitFAdd() 401 Value *InstCombiner::EmitGEPOffset(User *GEP) { in EmitGEPOffset() 462 Value *InstCombiner::OptimizePointerDifference(Value *LHS, Value *RHS, in OptimizePointerDifference() 529 Instruction *InstCombiner::visitSub(BinaryOperator &I) { in visitSub() 689 Instruction *InstCombiner::visitFSub(BinaryOperator &I) { in visitFSub()
|
D | InstCombineShifts.cpp | 22 Instruction *InstCombiner::commonShiftTransforms(BinaryOperator &I) { in commonShiftTransforms() 69 InstCombiner &IC) { in CanEvaluateShifted() 184 InstCombiner &IC) { in GetShiftedValue() 311 Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, ConstantInt *Op1, in FoldShiftByConstant() 629 Instruction *InstCombiner::visitShl(BinaryOperator &I) { in visitShl() 667 Instruction *InstCombiner::visitLShr(BinaryOperator &I) { in visitLShr() 707 Instruction *InstCombiner::visitAShr(BinaryOperator &I) { in visitAShr()
|
D | InstCombineCalls.cpp | 33 Instruction *InstCombiner::SimplifyMemTransfer(MemIntrinsic *MI) { in SimplifyMemTransfer() 123 Instruction *InstCombiner::SimplifyMemSet(MemSetInst *MI) { in SimplifyMemSet() 172 Instruction *InstCombiner::visitCallInst(CallInst &CI) { in visitCallInst() 747 Instruction *InstCombiner::visitInvokeInst(InvokeInst &II) { in visitInvokeInst() 778 InstCombiner *IC; 804 InstCombineFortifiedLibCalls(InstCombiner *IC) : IC(IC), NewInstruction(0) { } in InstCombineFortifiedLibCalls() 813 Instruction *InstCombiner::tryOptimizeCall(CallInst *CI, const TargetData *TD) { in tryOptimizeCall() 900 Instruction *InstCombiner::visitCallSite(CallSite CS) { in visitCallSite() 998 bool InstCombiner::transformConstExprCastCall(CallSite CS) { in transformConstExprCastCall() 1244 InstCombiner::transformCallThroughTrampoline(CallSite CS, in transformCallThroughTrampoline()
|
D | InstCombinePHI.cpp | 24 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) { in FoldPHIArgBinOpIntoPHI() 130 Instruction *InstCombiner::FoldPHIArgGEPIntoPHI(PHINode &PN) { in FoldPHIArgGEPIntoPHI() 287 Instruction *InstCombiner::FoldPHIArgLoadIntoPHI(PHINode &PN) { in FoldPHIArgLoadIntoPHI() 391 Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) { in FoldPHIArgOpIntoPHI() 620 Instruction *InstCombiner::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) { in SliceUpIllegalIntegerPHI() 794 Instruction *InstCombiner::visitPHINode(PHINode &PN) { in visitPHINode()
|
D | InstCombineSelect.cpp | 124 Instruction *InstCombiner::FoldSelectOpOp(SelectInst &SI, Instruction *TI, in FoldSelectOpOp() 205 Instruction *InstCombiner::FoldSelectIntoOp(SelectInst &SI, Value *TrueVal, in FoldSelectIntoOp() 343 Instruction *InstCombiner::visitSelectInstWithICmp(SelectInst &SI, in visitSelectInstWithICmp() 554 Instruction *InstCombiner::FoldSPFofSPF(Instruction *Inner, in FoldSPFofSPF() 585 InstCombiner::BuilderTy *Builder) { in foldSelectICmpAnd() 649 Instruction *InstCombiner::visitSelectInst(SelectInst &SI) { in visitSelectInst()
|
D | InstCombineAndOrXor.cpp | 142 InstCombiner::BuilderTy *Builder) { in getICmpValue() 165 InstCombiner::BuilderTy *Builder) { in getFCmpValue() 194 Instruction *InstCombiner::OptAndOp(Instruction *Op, in OptAndOp() 338 Value *InstCombiner::InsertRangeTest(Value *V, Constant *Lo, Constant *Hi, in InsertRangeTest() 407 Value *InstCombiner::FoldLogicalPlusAnd(Value *LHS, Value *RHS, in FoldLogicalPlusAnd() 645 llvm::InstCombiner::BuilderTy* Builder) { in foldLogOpOfMaskedICmps() 718 Value *InstCombiner::FoldAndOfICmps(ICmpInst *LHS, ICmpInst *RHS) { in FoldAndOfICmps() 962 Value *InstCombiner::FoldAndOfFCmps(FCmpInst *LHS, FCmpInst *RHS) { in FoldAndOfFCmps() 1033 Instruction *InstCombiner::visitAnd(BinaryOperator &I) { in visitAnd() 1403 Instruction *InstCombiner::MatchBSwap(BinaryOperator &I) { in MatchBSwap() [all …]
|
D | InstCombine.h | 70 class LLVM_LIBRARY_VISIBILITY InstCombiner 72 public InstVisitor<InstCombiner, Instruction*> { 85 InstCombiner() : FunctionPass(ID), TD(0), Builder(0) { in InstCombiner() function
|
D | InstCombineCompares.cpp | 200 Instruction *InstCombiner:: 470 static Value *EvaluateGEPOffsetExpression(User *GEP, InstCombiner &IC) { in EvaluateGEPOffsetExpression() 566 Instruction *InstCombiner::FoldGEPICmp(GEPOperator *GEPLHS, Value *RHS, in FoldGEPICmp() 680 Instruction *InstCombiner::FoldICmpAddOpCst(ICmpInst &ICI, in FoldICmpAddOpCst() 745 Instruction *InstCombiner::FoldICmpDivCst(ICmpInst &ICI, BinaryOperator *DivI, in FoldICmpDivCst() 902 Instruction *InstCombiner::FoldICmpShrCst(ICmpInst &ICI, BinaryOperator *Shr, in FoldICmpShrCst() 992 Instruction *InstCombiner::visitICmpInstWithInstAndIntCst(ICmpInst &ICI, in visitICmpInstWithInstAndIntCst() 1518 Instruction *InstCombiner::visitICmpInstWithCastAndCast(ICmpInst &ICI) { in visitICmpInstWithCastAndCast() 1636 InstCombiner &IC) { in ProcessUGT_ADDCST_ADD() 1688 InstCombiner::BuilderTy *Builder = IC.Builder; in ProcessUGT_ADDCST_ADD() [all …]
|
/external/llvm/lib/Transforms/InstCombine/ |
D | InstCombineCasts.cpp | 81 Instruction *InstCombiner::PromoteCastOfAllocation(BitCastInst &CI, in PromoteCastOfAllocation() 159 Value *InstCombiner::EvaluateInDifferentType(Value *V, Type *Ty, in EvaluateInDifferentType() 267 bool InstCombiner::ShouldOptimizeCast(Instruction::CastOps opc, const Value *V, in ShouldOptimizeCast() 288 Instruction *InstCombiner::commonCastTransforms(CastInst &CI) { in commonCastTransforms() 331 static bool canEvaluateTruncated(Value *V, Type *Ty, InstCombiner &IC, in canEvaluateTruncated() 439 static Instruction *foldVecTruncToExtElt(TruncInst &Trunc, InstCombiner &IC, in foldVecTruncToExtElt() 477 Instruction *InstCombiner::visitTrunc(TruncInst &CI) { in visitTrunc() 583 Instruction *InstCombiner::transformZExtICmp(ICmpInst *ICI, Instruction &CI, in transformZExtICmp() 725 InstCombiner &IC, Instruction *CxtI) { in canEvaluateZExtd() 832 Instruction *InstCombiner::visitZExt(ZExtInst &CI) { in visitZExt() [all …]
|
D | InstCombineLoadStoreAlloca.cpp | 170 static Instruction *simplifyAllocaArraySize(InstCombiner &IC, AllocaInst &AI) { in simplifyAllocaArraySize() 226 Instruction *InstCombiner::visitAllocaInst(AllocaInst &AI) { in visitAllocaInst() 320 static LoadInst *combineLoadToNewType(InstCombiner &IC, LoadInst &LI, Type *NewTy, in combineLoadToNewType() 394 static StoreInst *combineStoreToNewValue(InstCombiner &IC, StoreInst &SI, Value *V) { in combineStoreToNewValue() 460 static Instruction *combineLoadToOperationType(InstCombiner &IC, LoadInst &LI) { in combineLoadToOperationType() 518 static Instruction *unpackLoadToAggregate(InstCombiner &IC, LoadInst &LI) { in unpackLoadToAggregate() 700 static bool canReplaceGEPIdxWithZero(InstCombiner &IC, GetElementPtrInst *GEPI, in canReplaceGEPIdxWithZero() 772 static Instruction *replaceGEPIdxWithZero(InstCombiner &IC, Value *Ptr, in replaceGEPIdxWithZero() 789 Instruction *InstCombiner::visitLoadInst(LoadInst &LI) { in visitLoadInst() 934 static Value *likeBitCastFromVector(InstCombiner &IC, Value *V) { in likeBitCastFromVector() [all …]
|
D | InstCombineMulDivRem.cpp | 28 static Value *simplifyValueKnownNonZero(Value *V, InstCombiner &IC, in simplifyValueKnownNonZero() 135 bool InstCombiner::WillNotOverflowSignedMul(Value *LHS, Value *RHS, in WillNotOverflowSignedMul() 175 Instruction *InstCombiner::visitMul(BinaryOperator &I) { in visitMul() 489 Value *InstCombiner::foldFMulConst(Instruction *FMulOrDiv, Constant *C, in foldFMulConst() 537 Instruction *InstCombiner::visitFMul(BinaryOperator &I) { in visitFMul() 730 bool InstCombiner::SimplifyDivRemOfSelect(BinaryOperator &I) { in SimplifyDivRemOfSelect() 803 Instruction *InstCombiner::commonIDivTransforms(BinaryOperator &I) { in commonIDivTransforms() 949 InstCombiner &IC); 975 const BinaryOperator &I, InstCombiner &IC) { in foldUDivPow2Cst() 986 const BinaryOperator &I, InstCombiner &IC) { in foldUDivNegCst() [all …]
|
D | InstCombineCalls.cpp | 81 Instruction *InstCombiner::SimplifyMemTransfer(MemIntrinsic *MI) { in SimplifyMemTransfer() 175 Instruction *InstCombiner::SimplifyMemSet(MemSetInst *MI) { in SimplifyMemSet() 219 InstCombiner::BuilderTy &Builder) { in simplifyX86immShift() 332 InstCombiner::BuilderTy &Builder) { in simplifyX86varShift() 440 InstCombiner::BuilderTy &Builder) { in simplifyX86movmsk() 479 InstCombiner::BuilderTy &Builder) { in simplifyX86insertps() 539 InstCombiner::BuilderTy &Builder) { in simplifyX86extrq() 632 InstCombiner::BuilderTy &Builder) { in simplifyX86insertq() 727 InstCombiner::BuilderTy &Builder) { in simplifyX86pshufb() 774 InstCombiner::BuilderTy &Builder) { in simplifyX86vpermilvar() [all …]
|
D | InstructionCombining.cpp | 85 Value *InstCombiner::EmitGEPOffset(User *GEP) { in EmitGEPOffset() 93 bool InstCombiner::ShouldChangeType(unsigned FromWidth, in ShouldChangeType() 114 bool InstCombiner::ShouldChangeType(Type *From, Type *To) const { in ShouldChangeType() 185 bool InstCombiner::SimplifyAssociativeOrCommutative(BinaryOperator &I) { in SimplifyAssociativeOrCommutative() 450 static Value *tryFactorization(InstCombiner::BuilderTy *Builder, in tryFactorization() 550 Value *InstCombiner::SimplifyUsingDistributiveLaws(BinaryOperator &I) { in SimplifyUsingDistributiveLaws() 663 Value *InstCombiner::dyn_castNegVal(Value *V) const { in dyn_castNegVal() 680 Value *InstCombiner::dyn_castFNegVal(Value *V, bool IgnoreZeroSign) const { in dyn_castFNegVal() 696 InstCombiner *IC) { in FoldOperationIntoSelectOperand() 736 Instruction *InstCombiner::FoldOpIntoSelect(Instruction &Op, SelectInst *SI) { in FoldOpIntoSelect() [all …]
|
D | InstCombineShifts.cpp | 24 Instruction *InstCombiner::commonShiftTransforms(BinaryOperator &I) { in commonShiftTransforms() 62 Instruction *SecondShift, InstCombiner &IC, in canEvaluateShiftedShift() 116 InstCombiner &IC, Instruction *CxtI) { in CanEvaluateShifted() 189 InstCombiner &IC, const DataLayout &DL) { in GetShiftedValue() 322 Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, Constant *Op1, in FoldShiftByConstant() 696 Instruction *InstCombiner::visitShl(BinaryOperator &I) { in visitShl() 738 Instruction *InstCombiner::visitLShr(BinaryOperator &I) { in visitLShr() 782 Instruction *InstCombiner::visitAShr(BinaryOperator &I) { in visitAShr()
|
D | InstCombineSelect.cpp | 62 static Value *generateMinMaxSelectPattern(InstCombiner::BuilderTy *Builder, in generateMinMaxSelectPattern() 120 Instruction *InstCombiner::FoldSelectOpOp(SelectInst &SI, Instruction *TI, in FoldSelectOpOp() 229 Instruction *InstCombiner::FoldSelectIntoOp(SelectInst &SI, Value *TrueVal, in FoldSelectIntoOp() 311 InstCombiner::BuilderTy *Builder) { in foldSelectICmpAndOr() 371 InstCombiner::BuilderTy *Builder) { in foldSelectCttzCtlz() 415 Instruction *InstCombiner::visitSelectInstWithICmp(SelectInst &SI, in visitSelectInstWithICmp() 651 Instruction *InstCombiner::FoldSPFofSPF(Instruction *Inner, in FoldSPFofSPF() 771 InstCombiner::BuilderTy *Builder) { in foldSelectICmpAnd() 843 InstCombiner::BuilderTy &Builder) { in foldAddSubSelect() 912 Instruction *InstCombiner::visitSelectInst(SelectInst &SI) { in visitSelectInst()
|
D | InstCombinePHI.cpp | 28 Instruction *InstCombiner::FoldPHIArgBinOpIntoPHI(PHINode &PN) { in FoldPHIArgBinOpIntoPHI() 121 Instruction *InstCombiner::FoldPHIArgGEPIntoPHI(PHINode &PN) { in FoldPHIArgGEPIntoPHI() 276 Instruction *InstCombiner::FoldPHIArgLoadIntoPHI(PHINode &PN) { in FoldPHIArgLoadIntoPHI() 393 Instruction *InstCombiner::FoldPHIArgZextsIntoPHI(PHINode &Phi) { in FoldPHIArgZextsIntoPHI() 467 Instruction *InstCombiner::FoldPHIArgOpIntoPHI(PHINode &PN) { in FoldPHIArgOpIntoPHI() 694 Instruction *InstCombiner::SliceUpIllegalIntegerPHI(PHINode &FirstPhi) { in SliceUpIllegalIntegerPHI() 866 Instruction *InstCombiner::visitPHINode(PHINode &PN) { in visitPHINode()
|
D | InstCombineAndOrXor.cpp | 72 InstCombiner::BuilderTy *Builder) { in getNewICmpValue() 82 InstCombiner::BuilderTy *Builder) { in getFCmpValue() 97 Value *InstCombiner::SimplifyBSwap(BinaryOperator &I) { in SimplifyBSwap() 150 Instruction *InstCombiner::OptAndOp(Instruction *Op, in OptAndOp() 290 Value *InstCombiner::InsertRangeTest(Value *V, Constant *Lo, Constant *Hi, in InsertRangeTest() 358 Value *InstCombiner::FoldLogicalPlusAnd(Value *LHS, Value *RHS, in FoldLogicalPlusAnd() 692 llvm::InstCombiner::BuilderTy *Builder) { in foldLogOpOfMaskedICmps() 815 Value *InstCombiner::simplifyRangeCheck(ICmpInst *Cmp0, ICmpInst *Cmp1, in simplifyRangeCheck() 868 Value *InstCombiner::FoldAndOfICmps(ICmpInst *LHS, ICmpInst *RHS) { in FoldAndOfICmps() 1098 Value *InstCombiner::FoldAndOfFCmps(FCmpInst *LHS, FCmpInst *RHS) { in FoldAndOfFCmps() [all …]
|
D | InstCombineAddSub.cpp | 166 FAddCombine(InstCombiner::BuilderTy *B) : Builder(B), Instr(nullptr) {} in FAddCombine() 189 InstCombiner::BuilderTy *Builder; 873 bool InstCombiner::WillNotOverflowSignedAdd(Value *LHS, Value *RHS, in WillNotOverflowSignedAdd() 925 bool InstCombiner::WillNotOverflowSignedSub(Value *LHS, Value *RHS, in WillNotOverflowSignedSub() 954 bool InstCombiner::WillNotOverflowUnsignedSub(Value *LHS, Value *RHS, in WillNotOverflowUnsignedSub() 975 InstCombiner::BuilderTy *Builder) { in checkForNegativeOperand() 1030 Instruction *InstCombiner::visitAdd(BinaryOperator &I) { in visitAdd() 1295 Instruction *InstCombiner::visitFAdd(BinaryOperator &I) { in visitFAdd() 1408 Value *InstCombiner::OptimizePointerDifference(Value *LHS, Value *RHS, in OptimizePointerDifference() 1472 Instruction *InstCombiner::visitSub(BinaryOperator &I) { in visitSub() [all …]
|
D | InstCombineVectorOps.cpp | 68 Instruction *InstCombiner::scalarizePHI(ExtractElementInst &EI, PHINode *PN) { in scalarizePHI() 146 Instruction *InstCombiner::visitExtractElementInst(ExtractElementInst &EI) { in visitExtractElementInst() 376 InstCombiner &IC) { in replaceExtractElements() 453 InstCombiner &IC) { in collectShuffleElements() 541 Instruction *InstCombiner::visitInsertValueInst(InsertValueInst &I) { in visitInsertValueInst() 569 Instruction *InstCombiner::visitInsertElementInst(InsertElementInst &IE) { in visitInsertElementInst() 786 InstCombiner::EvaluateInDifferentElementOrder(Value *V, ArrayRef<int> Mask) { in EvaluateInDifferentElementOrder() 919 Instruction *InstCombiner::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst()
|
D | InstCombineCompares.cpp | 234 Instruction *InstCombiner:: 512 static Value *EvaluateGEPOffsetExpression(User *GEP, InstCombiner &IC, in EvaluateGEPOffsetExpression() 922 Instruction *InstCombiner::FoldGEPICmp(GEPOperator *GEPLHS, Value *RHS, in FoldGEPICmp() 1059 Instruction *InstCombiner::FoldAllocaCmp(ICmpInst &ICI, AllocaInst *Alloca, in FoldAllocaCmp() 1137 Instruction *InstCombiner::FoldICmpAddOpCst(Instruction &ICI, in FoldICmpAddOpCst() 1186 Instruction *InstCombiner::FoldICmpDivCst(ICmpInst &ICI, BinaryOperator *DivI, in FoldICmpDivCst() 1342 Instruction *InstCombiner::FoldICmpShrCst(ICmpInst &ICI, BinaryOperator *Shr, in FoldICmpShrCst() 1430 Instruction *InstCombiner::FoldICmpCstShrCst(ICmpInst &I, Value *Op, Value *A, in FoldICmpCstShrCst() 1494 Instruction *InstCombiner::FoldICmpCstShlCst(ICmpInst &I, Value *Op, Value *A, in FoldICmpCstShlCst() 1538 Instruction *InstCombiner::visitICmpInstWithInstAndIntCst(ICmpInst &ICI, in visitICmpInstWithInstAndIntCst() [all …]
|
/external/llvm/test/Transforms/InstCombine/ |
D | vector-type.ll | 1 ; The code in InstCombiner::FoldSelectOpOp was calling
|