clang-format changes "<<<" to "<< <" which is problematic for CUDA code. Change the behavior of clang-format to operate correctly with CUDA kernel launches without changing language options.
- No space required between "<<" and "<" in "<<<".
- No space required between identifier and "<<<". This avoids changing "f<<<" to "f <<<"
- No space required between ">" and "<<<". Avoids changing "f<t><<<" to "f<t> <<<".
- No space required between ">>>" and "("
Such that "f<param><<<1, 1>>>();" remains unchanged instead of being changed to "f<param> << <1, 1>>> ();"
Wouldn't we want to fall back to merging in this case?
I think if the user formats the incomplete line "llvm::outs() <<", we should not rip apart the <<. Add a test for this.