Skip to content

Commit c7473b8

Browse files
authored
Add abs to known integral values interpretation (rust-lang#621)
1 parent 435ad32 commit c7473b8

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

enzyme/Enzyme/GradientUtils.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2289,17 +2289,14 @@ class DiffeGradientUtils : public GradientUtils {
22892289
assert(ptr);
22902290
if (OrigOffset) {
22912291
Value *newOffset = lookupM(getNewFromOriginal(OrigOffset), BuilderM);
2292-
#if LLVM_VERSION_MAJOR > 7
22932292
auto rule = [&](Value *ptr) {
2293+
#if LLVM_VERSION_MAJOR > 7
22942294
return BuilderM.CreateGEP(ptr->getType()->getPointerElementType(), ptr,
22952295
newOffset);
2296-
};
22972296
#else
2298-
auto rule = [&](Value *ptr) {
2299-
return BuilderM.CreateGEP(
2300-
ptr, lookupM(getNewFromOriginal(OrigOffset), BuilderM));
2301-
};
2297+
return BuilderM.CreateGEP(ptr, newOffset);
23022298
#endif
2299+
};
23032300
ptr = applyChainRule(diffType, BuilderM, rule, ptr);
23042301
}
23052302

enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4349,7 +4349,13 @@ FnTypeInfo::knownIntegralValues(llvm::Value *val, const DominatorTree &DT,
43494349
};
43504350
if (auto II = dyn_cast<IntrinsicInst>(val)) {
43514351
switch (II->getIntrinsicID()) {
4352-
4352+
#if LLVM_VERSION_MAJOR >= 12
4353+
case Intrinsic::abs:
4354+
for (auto val :
4355+
knownIntegralValues(II->getArgOperand(0), DT, intseen, SE))
4356+
insert(abs(val));
4357+
break;
4358+
#endif
43534359
case Intrinsic::nvvm_read_ptx_sreg_tid_x:
43544360
case Intrinsic::nvvm_read_ptx_sreg_tid_y:
43554361
case Intrinsic::nvvm_read_ptx_sreg_tid_z:

0 commit comments

Comments
 (0)