Lines Matching refs:CI
72 static bool optimizeCallInst(CallInst *CI, bool &ModifiedDT,
143 static void scalarizeMaskedLoad(const DataLayout &DL, CallInst *CI,
145 Value *Ptr = CI->getArgOperand(0);
146 Value *Alignment = CI->getArgOperand(1);
147 Value *Mask = CI->getArgOperand(2);
148 Value *Src0 = CI->getArgOperand(3);
151 VectorType *VecType = cast<FixedVectorType>(CI->getType());
155 IRBuilder<> Builder(CI->getContext());
156 Instruction *InsertPt = CI;
157 BasicBlock *IfBlock = CI->getParent();
160 Builder.SetCurrentDebugLocation(CI->getDebugLoc());
165 CI->replaceAllUsesWith(NewI);
166 CI->eraseFromParent();
186 CI->replaceAllUsesWith(VResult);
187 CI->eraseFromParent();
249 CI->replaceAllUsesWith(VResult);
250 CI->eraseFromParent();
281 static void scalarizeMaskedStore(const DataLayout &DL, CallInst *CI,
283 Value *Src = CI->getArgOperand(0);
284 Value *Ptr = CI->getArgOperand(1);
285 Value *Alignment = CI->getArgOperand(2);
286 Value *Mask = CI->getArgOperand(3);
293 IRBuilder<> Builder(CI->getContext());
294 Instruction *InsertPt = CI;
296 Builder.SetCurrentDebugLocation(CI->getDebugLoc());
301 CI->eraseFromParent();
318 CI->eraseFromParent();
371 CI->eraseFromParent();
405 static void scalarizeMaskedGather(const DataLayout &DL, CallInst *CI,
407 Value *Ptrs = CI->getArgOperand(0);
408 Value *Alignment = CI->getArgOperand(1);
409 Value *Mask = CI->getArgOperand(2);
410 Value *Src0 = CI->getArgOperand(3);
412 auto *VecType = cast<FixedVectorType>(CI->getType());
415 IRBuilder<> Builder(CI->getContext());
416 Instruction *InsertPt = CI;
417 BasicBlock *IfBlock = CI->getParent();
421 Builder.SetCurrentDebugLocation(CI->getDebugLoc());
438 CI->replaceAllUsesWith(VResult);
439 CI->eraseFromParent();
503 CI->replaceAllUsesWith(VResult);
504 CI->eraseFromParent();
535 static void scalarizeMaskedScatter(const DataLayout &DL, CallInst *CI,
537 Value *Src = CI->getArgOperand(0);
538 Value *Ptrs = CI->getArgOperand(1);
539 Value *Alignment = CI->getArgOperand(2);
540 Value *Mask = CI->getArgOperand(3);
549 IRBuilder<> Builder(CI->getContext());
550 Instruction *InsertPt = CI;
552 Builder.SetCurrentDebugLocation(CI->getDebugLoc());
567 CI->eraseFromParent();
620 CI->eraseFromParent();
625 static void scalarizeMaskedExpandLoad(const DataLayout &DL, CallInst *CI,
627 Value *Ptr = CI->getArgOperand(0);
628 Value *Mask = CI->getArgOperand(1);
629 Value *PassThru = CI->getArgOperand(2);
630 Align Alignment = CI->getParamAlign(0).valueOrOne();
632 auto *VecType = cast<FixedVectorType>(CI->getType());
636 IRBuilder<> Builder(CI->getContext());
637 Instruction *InsertPt = CI;
638 BasicBlock *IfBlock = CI->getParent();
641 Builder.SetCurrentDebugLocation(CI->getDebugLoc());
676 CI->replaceAllUsesWith(VResult);
677 CI->eraseFromParent();
751 CI->replaceAllUsesWith(VResult);
752 CI->eraseFromParent();
757 static void scalarizeMaskedCompressStore(const DataLayout &DL, CallInst *CI,
760 Value *Src = CI->getArgOperand(0);
761 Value *Ptr = CI->getArgOperand(1);
762 Value *Mask = CI->getArgOperand(2);
763 Align Alignment = CI->getParamAlign(1).valueOrOne();
767 IRBuilder<> Builder(CI->getContext());
768 Instruction *InsertPt = CI;
769 BasicBlock *IfBlock = CI->getParent();
772 Builder.SetCurrentDebugLocation(CI->getDebugLoc());
794 CI->eraseFromParent();
860 CI->eraseFromParent();
865 static void scalarizeMaskedVectorHistogram(const DataLayout &DL, CallInst *CI,
870 assert(CI->getType()->isVoidTy() && "Histogram with non-void return.");
871 Value *Ptrs = CI->getArgOperand(0);
872 Value *Inc = CI->getArgOperand(1);
873 Value *Mask = CI->getArgOperand(2);
878 IRBuilder<> Builder(CI->getContext());
879 Instruction *InsertPt = CI;
882 Builder.SetCurrentDebugLocation(CI->getDebugLoc());
897 CI->eraseFromParent();
924 CI->eraseFromParent();
981 if (CallInst *CI = dyn_cast<CallInst>(&*CurInstIterator++))
982 MadeChange |= optimizeCallInst(CI, ModifiedDT, TTI, DL, DTU);
990 static bool optimizeCallInst(CallInst *CI, bool &ModifiedDT,
993 IntrinsicInst *II = dyn_cast<IntrinsicInst>(CI);
1005 if (TTI.isLegalMaskedVectorHistogram(CI->getArgOperand(0)->getType(),
1006 CI->getArgOperand(1)->getType()))
1008 scalarizeMaskedVectorHistogram(DL, CI, DTU, ModifiedDT);
1013 CI->getType(),
1014 cast<ConstantInt>(CI->getArgOperand(1))->getAlignValue()))
1016 scalarizeMaskedLoad(DL, CI, DTU, ModifiedDT);
1020 CI->getArgOperand(0)->getType(),
1021 cast<ConstantInt>(CI->getArgOperand(2))->getAlignValue()))
1023 scalarizeMaskedStore(DL, CI, DTU, ModifiedDT);
1027 cast<ConstantInt>(CI->getArgOperand(1))->getMaybeAlignValue();
1028 Type *LoadTy = CI->getType();
1034 scalarizeMaskedGather(DL, CI, DTU, ModifiedDT);
1039 cast<ConstantInt>(CI->getArgOperand(2))->getMaybeAlignValue();
1040 Type *StoreTy = CI->getArgOperand(0)->getType();
1047 scalarizeMaskedScatter(DL, CI, DTU, ModifiedDT);
1052 CI->getType(),
1053 CI->getAttributes().getParamAttrs(0).getAlignment().valueOrOne()))
1055 scalarizeMaskedExpandLoad(DL, CI, DTU, ModifiedDT);
1059 CI->getArgOperand(0)->getType(),
1060 CI->getAttributes().getParamAttrs(1).getAlignment().valueOrOne()))
1062 scalarizeMaskedCompressStore(DL, CI, DTU, ModifiedDT);