We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 8926274 commit 2a8090dCopy full SHA for 2a8090d
libevmasm/RuleList.h
@@ -681,6 +681,22 @@ std::vector<SimplificationRule<Pattern>> simplificationRuleListPart8(
681
// X - (A + Y) -> (X - Y) + (-A)
682
Builtins::SUB(X, Builtins::ADD(A, Y)),
683
[=]() -> Pattern { return Builtins::ADD(Builtins::SUB(X, Y), 0 - A.d()); }
684
+ }, {
685
+ // (X - A) - Y -> (X - Y) - A
686
+ Builtins::SUB(Builtins::SUB(X, A), Y),
687
+ [=]() -> Pattern { return Builtins::SUB(Builtins::SUB(X, Y), A); }
688
689
+ // (A - X) - Y -> A - (X + Y)
690
+ Builtins::SUB(Builtins::SUB(A, X), Y),
691
+ [=]() -> Pattern { return Builtins::SUB(A, Builtins::ADD(X, Y)); }
692
693
+ // X - (Y - A) -> (X - Y) + A
694
+ Builtins::SUB(X, Builtins::SUB(Y, A)),
695
+ [=]() -> Pattern { return Builtins::ADD(Builtins::SUB(X, Y), A.d()); }
696
697
+ // X - (A - Y) -> (X + Y) + (-A)
698
+ Builtins::SUB(X, Builtins::SUB(A, Y)),
699
+ [=]() -> Pattern { return Builtins::ADD(Builtins::ADD(X, Y), 0 - A.d()); }
700
}
701
};
702
return rules;
0 commit comments