diff options
Diffstat (limited to 'src/runtime')
| -rw-r--r-- | src/runtime/internal/math/math_test.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/runtime/internal/math/math_test.go b/src/runtime/internal/math/math_test.go index 9447bd23f9..303eb63405 100644 --- a/src/runtime/internal/math/math_test.go +++ b/src/runtime/internal/math/math_test.go @@ -49,3 +49,31 @@ func TestMulUintptr(t *testing.T) { } } } + +var SinkUintptr uintptr +var SinkBool bool + +var x, y uintptr + +func BenchmarkMulUintptr(b *testing.B) { + x, y = 1, 2 + b.Run("small", func(b *testing.B) { + for i := 0; i < b.N; i++ { + var overflow bool + SinkUintptr, overflow = MulUintptr(x, y) + if overflow { + SinkUintptr = 0 + } + } + }) + x, y = MaxUintptr, MaxUintptr-1 + b.Run("large", func(b *testing.B) { + for i := 0; i < b.N; i++ { + var overflow bool + SinkUintptr, overflow = MulUintptr(x, y) + if overflow { + SinkUintptr = 0 + } + } + }) +} |
