================ @@ -264,6 +264,24 @@ class OpLowerer { return lowerToBindAndAnnotateHandle(F); } + Error replaceSplitDoubleCallUsages(CallInst *Intrin, CallInst *Op) { + IRBuilder<> &IRB = OpBuilder.getIRB(); + + for (Use &U : make_early_inc_range(Intrin->uses())) { + if (auto *EVI = dyn_cast<ExtractValueInst>(U.getUser())) { + + if (EVI->getNumIndices() != 1) + return createStringError(std::errc::invalid_argument, + "Splitdouble has only 2 elements"); + EVI->setOperand(0, Op); + } + } + + Intrin->eraseFromParent(); ---------------- bogner wrote:
We'll crash here if any of the uses weren't `ExtractValueInst`. https://github.com/llvm/llvm-project/pull/109331 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits