This transform is not safe. Thanks to Eli for pointing that out!
llvm-svn: 137575
diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
index 4166636..41d542a 100644
--- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
@@ -294,14 +294,7 @@
I.setOperand(1, Folded);
// Conservatively clear the optional flags, since they may not be
// preserved by the reassociation.
- if (MaintainNoSignedWrap(I, C1, C2) && Op0->hasNoSignedWrap() &&
- Op1->hasNoSignedWrap()) {
- New->setHasNoSignedWrap(true);
- I.clearSubclassOptionalData();
- I.setHasNoSignedWrap(true);
- } else {
- I.clearSubclassOptionalData();
- }
+ I.clearSubclassOptionalData();
Changed = true;
continue;