I came up with the following in GNU C
One could argue there is a branch here
So I also came up with this one
I'm depending on implicit int here as well.
Can you make it any smaller?
Explanation of the above code, or at least parts of how I got there can be found here http://codepad.org/L0MvnCe9
Must not use function calls (recursion, standard library functions like fma, exp, etc), loops (while, for, do), or branches (if, ?:, etc). No using the divide or multiply operator either (that's cheating.) goto is allowed for branching.