This patch implements transform for pattern "(A & B) ^ (A ^ B) -> (A | B)"
Please help in reviewing the same.
Thanks,
Suyog
Differential D4618
Added InstCombine transform for pattern "(A & B) ^ (A ^ B) -> (A | B)" suyog on Jul 22 2014, 6:22 AM. Authored by
Details This patch implements transform for pattern "(A & B) ^ (A ^ B) -> (A | B)" Please help in reviewing the same. Thanks,
Diff Detail Event TimelineComment Actions Hi Suyog, In the future, if it's not too much trouble, could you please include a link like http://rise4fun.com/Z3/Evslo along with any identities just to verify that no errors are slipping through? It's an easy way to save the reviewer some head scratching and increase confidence in correctness. Z3 is pretty easy to use and has a good tutorial http://rise4fun.com/Z3/tutorial/guide . You don't need to read all of it, just skip to the "bit vectors" section for the list of operations and just reuse the boilerplate in my link. Basically, if your identity is "foo == bar", then what you ask Z3 to do is check that the statement "foo != bar" is unsatisfiable. The online Z3 "permalink" feature is what gives you a URL like the above. (The lisp syntax is kind of annoying, but it's workable; they used to have a Python version that was more syntactically convenient, but I can't seem to find it) Comment Actions Accepting revision as per review : http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140721/226835.html |