================ @@ -229,6 +230,75 @@ static bool expandLog10Intrinsic(CallInst *Orig) { return expandLogIntrinsic(Orig, numbers::ln2f / numbers::ln10f); } +static bool expandNormalizeIntrinsic(CallInst *Orig) { + Value *X = Orig->getOperand(0); + Type *Ty = Orig->getType(); + Type *EltTy = Ty->getScalarType(); + IRBuilder<> Builder(Orig->getParent()); + Builder.SetInsertPoint(Orig); + + auto *XVec = dyn_cast<FixedVectorType>(Ty); + if (!XVec) { + if (auto *constantFP = dyn_cast<ConstantFP>(X)) { + const APFloat &fpVal = constantFP->getValueAPF(); + if (fpVal.isZero()) + report_fatal_error(Twine("Invalid input scalar: length is zero"), + /* gen_crash_diag=*/false); + } + Value *Result = Builder.CreateFDiv(X, X); + + Orig->replaceAllUsesWith(Result); + Orig->eraseFromParent(); + return true; + } + + Value *Elt = Builder.CreateExtractElement(X, (uint64_t)0); ---------------- bharadwajy wrote:
I see a build failure due to unused variable `Elt`. https://github.com/llvm/llvm-project/pull/102683 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits