[clang] [llvm] [HLSL] [DXIL] Implement the `AddUint64` HLSL function and the `UAddc` DXIL op (PR #125319)
Deric Cheung via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 4 16:28:40 PST 2025
================
@@ -359,18 +359,21 @@ class OpLowerer {
return lowerToBindAndAnnotateHandle(F);
}
- Error replaceSplitDoubleCallUsages(CallInst *Intrin, CallInst *Op) {
+ Error replaceExtractElementTypeOfCallUsages(CallInst *Intrin, CallInst *Op) {
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");
+ return createStringError(
----------------
Icohedron wrote:
To be as generic as possible, I could replace the entire function so that it reads:
```c++
Error replaceExtractElementTypeOfCallUsages(CallInst *Intrin, CallInst *Op) {
for (Use &U : make_early_inc_range(Intrin->uses())) {
U.set(Op);
}
Intrin->eraseFromParent();
return Error::success();
}
```
This function would just replace all uses of the intrinsic with one to match the new named struct op return type. The function name would need to be changed, or it could be inlined into `replaceFunctionWithNamedStructOp`, since that is the only user of `replaceExtractElementTypeOfCallUsages`.
https://github.com/llvm/llvm-project/pull/125319
More information about the cfe-commits
mailing list