Fix odd clang error with shuffle

Old clang choke son a << b in some static context.
Code is rewritten to not do that.