Just discovered this excellent post all about branches on GPUs and how they're fine. THEY'RE FINE. Stop worrying about them.
https://medium.com/@jasonbooth_86226/branching-on-a-gpu-18bfc83694f2
Branching on a GPU - Jason Booth - Medium

If you consult the internet about writing a branch of a GPU, you might think they open the gates of hell and let demons in. They will say you should avoid them at all costs, and that you can avoid…

Medium

@TomF That's a great article, though it's kinda sad that the most important thing in it isn't mentioned in the title and probably isn't noticed by most people:

Creating ways to visually profile the performance of your code is probably the #1 best way to know A) what needs to be optimized and B) whether or not what you did actually optimized it.

Hey, out there! You! Yes, you, the rendering engineer or technical artist! Add more visualization options to your shaders and code! Visual tuning FTW.