Initial ternary work in llvm