Wouldn't getARMTargetFeatures() be called for both targets? If you call clang with -target arm and no neon, would that also add -crypto to it? Maybe having a check on an ARM test earlier would make things clearer (like CHECK-NOT: -crypto). http://llvm-reviews.chandlerc.com/D2736