I'm confused as to why we're not just extending the checks here: if (LHS.get()->getType()->isArithmeticType() && RHS.get()->getType()->isArithmeticType()) { to allow arithmetic or _Atomic of arithmetic? http://llvm-reviews.chandlerc.com/D599