Relax the MemOperands on atomics a bit. Fixes -verify-machineinstrs failures for...
[oota-llvm.git] / include / llvm / CodeGen / SelectionDAGNodes.h
index 2ecdc9a48c4ac1e4d6235a852b14d783f1035e00..6c7be69b4d2ff330134bb1a2f838841a5cfea49f 100644 (file)
@@ -998,8 +998,10 @@ class AtomicSDNode : public MemSDNode {
     assert(getOrdering() == Ordering && "Ordering encoding error!");
     assert(getSynchScope() == SynchScope && "Synch-scope encoding error!");
 
-    assert(readMem() && "Atomic MachineMemOperand is not a load!");
-    assert(writeMem() && "Atomic MachineMemOperand is not a store!");
+    assert((readMem() || getOrdering() <= Monotonic) &&
+           "Acquire/Release MachineMemOperand must be a load!");
+    assert((writeMem() || getOrdering() <= Monotonic) &&
+           "Acquire/Release MachineMemOperand must be a store!");
   }
 
 public: