When looking through lib/Analysis/AliasAnalysis.cpp, I noticed that we always answer conservatively for volatile loads/stores, but we don't necessarily do this for cmpxchg/atomicrmw. This seems inconsistent to me, so I'd like to know if it was intentional. If not, here's a patch to fix it. :)
The change is fairly insignificant/I can't get it to fire with a lit test, so no test is included. If we'd like one, I'm happy to see what I can do with gtest.