secure/precis: add ascii fast path to enforce

benchmark                                                    old ns/op     new ns/op     delta
BenchmarkAppend/UsernameCaseMapped/ASCII-4                   526           85.6          -83.73%
BenchmarkBytes/UsernameCaseMapped/ASCII-4                    523           114           -78.20%
BenchmarkString/UsernameCaseMapped/ASCII-4                   593           146           -75.38%
BenchmarkAppend/UsernameCasePreserved/ASCII-4                180           82.5          -54.17%
BenchmarkBytes/UsernameCasePreserved/ASCII-4                 214           110           -48.60%
BenchmarkString/UsernameCasePreserved/ASCII-4                247           146           -40.89%
BenchmarkAppend/FreeForm/ASCII-4                             112           81.4          -27.32%
BenchmarkBytes/FreeForm/ASCII-4                              143           112           -21.68%
BenchmarkString/FreeForm/ASCII-4                             170           139           -18.24%
BenchmarkAppend/OpaqueString/ASCII-4                         242           208           -14.05%
BenchmarkBytes/OpaqueString/ASCII-4                          276           242           -12.32%
BenchmarkString/OpaqueString/ASCII-4                         305           270           -11.48%
BenchmarkAppend/Nickname/ASCII-4                             481           446           -7.28%
BenchmarkString/Nickname/ASCII-4                             548           512           -6.57%
BenchmarkBytes/Nickname/ASCII-4                              478           450           -5.86%
BenchmarkBytes/OpaqueString/Arabic-4                         334           324           -2.99%
BenchmarkTransform/UsernameCaseMapped/Arabic-4               516           506           -1.94%
BenchmarkString/FreeForm/Hangul-4                            671           658           -1.94%
BenchmarkBytes/OpaqueString/Hangul-4                         760           775           +1.97%
BenchmarkString/Nickname/Hangul-4                            1016          1036          +1.97%
…

Updates golang/go#17423

Change-Id: Ia70335212f1089f280653c2b7bea9f769373ae1d
Reviewed-on: https://go-review.googlesource.com/33435
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
2 files changed