I was wondering what is the rationale for 'not' utility and if it could be implemented using LIT builtin (like some shell operators). Or at least made independent of LLVM. It’s not really built along with regular tools (it has very limited use contrary to, say, FileCheck) and having it in path is undesirable due to the generic name. This makes testing llvm tools harder. Especially if they don't rely on LLVM directly.