fixup
diff --git a/enzyme/Enzyme/CacheUtility.cpp b/enzyme/Enzyme/CacheUtility.cpp
index 836bb64..7041523 100644
--- a/enzyme/Enzyme/CacheUtility.cpp
+++ b/enzyme/Enzyme/CacheUtility.cpp
@@ -263,13 +263,17 @@
     //    https://github.com/llvm/llvm-project/pull/78199
     if (auto addrec = dyn_cast<SCEVAddRecExpr>(S)) {
       if (addrec->getLoop()->getHeader() == Header) {
-        if (auto add_or_mul = dyn_cast<BinaryOperator>(NewIV)) {
+        if (auto add_or_mul = dyn_cast<BinaryOperator>(NewIV)) 
+        if (add_or_mul->getOpcode() == Instruction::Add || add_or_mul->getOpcode() == Instruction::Mul)
+        {
           if (addrec->getNoWrapFlags(llvm::SCEV::FlagNUW))
             add_or_mul->setHasNoUnsignedWrap(true);
           if (addrec->getNoWrapFlags(llvm::SCEV::FlagNSW))
             add_or_mul->setHasNoSignedWrap(true);
           for (int i=0; i<2; i++) {
-              if (auto mul = dyn_cast<BinaryOperator>(add_or_mul->getOperand(i))) {
+              if (auto mul = dyn_cast<BinaryOperator>(add_or_mul->getOperand(i)))
+        if (mul->getOpcode() == Instruction::Add || mul->getOpcode() == Instruction::Mul)
+              {
           if (addrec->getNoWrapFlags(llvm::SCEV::FlagNUW))
             mul->setHasNoUnsignedWrap(true);
           if (addrec->getNoWrapFlags(llvm::SCEV::FlagNSW))