Added more template functions so that some programs with vector
operations will at least produce valid llvm, even though the llvm code
isn't incorrect