diff options
author | Zhongwei Yao <zhongwei.yao@arm.com> | 2016-04-25 11:08:38 +0800 |
---|---|---|
committer | Michael Munday <munday@ca.ibm.com> | 2016-04-27 17:47:49 +0000 |
commit | 74a9bad63899ffb02b747678c2c181ffb13983b9 (patch) | |
tree | c932ed719c212346073b988d7d3e7be61900751c /test/bench | |
parent | 7538b1db8ec0d82a623847fe5987f1988fe16448 (diff) | |
download | go-74a9bad63899ffb02b747678c2c181ffb13983b9.tar.gz go-74a9bad63899ffb02b747678c2c181ffb13983b9.zip |
cmd/compile: enable const division for arm64
performance:
benchmark old ns/op new ns/op delta
BenchmarkDivconstI64-8 8.28 2.70 -67.39%
BenchmarkDivconstU64-8 8.28 4.69 -43.36%
BenchmarkDivconstI32-8 8.28 6.39 -22.83%
BenchmarkDivconstU32-8 8.28 4.43 -46.50%
BenchmarkDivconstI16-8 5.17 5.17 +0.00%
BenchmarkDivconstU16-8 5.33 5.34 +0.19%
BenchmarkDivconstI8-8 3.50 3.50 +0.00%
BenchmarkDivconstU8-8 3.51 3.50 -0.28%
Fixes #15382
Change-Id: Ibce7b28f0586d593b33c4d4ecc5d5e7e7c905d13
Reviewed-on: https://go-review.googlesource.com/22292
Reviewed-by: Michael Munday <munday@ca.ibm.com>
Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'test/bench')
-rw-r--r-- | test/bench/go1/divconst_test.go | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/test/bench/go1/divconst_test.go b/test/bench/go1/divconst_test.go new file mode 100644 index 0000000000..3cf6c26094 --- /dev/null +++ b/test/bench/go1/divconst_test.go @@ -0,0 +1,73 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package go1 + +import ( + "testing" +) + +var i64res int64 + +func BenchmarkDivconstI64(b *testing.B) { + for i := 0; i < b.N; i++ { + i64res = int64(i) / 7 + } +} + +var u64res uint64 + +func BenchmarkDivconstU64(b *testing.B) { + for i := 0; i < b.N; i++ { + u64res = uint64(i) / 7 + } +} + +var i32res int32 + +func BenchmarkDivconstI32(b *testing.B) { + for i := 0; i < b.N; i++ { + i32res = int32(i) / 7 + } +} + +var u32res uint32 + +func BenchmarkDivconstU32(b *testing.B) { + for i := 0; i < b.N; i++ { + u32res = uint32(i) / 7 + } +} + +var i16res int16 + +func BenchmarkDivconstI16(b *testing.B) { + for i := 0; i < b.N; i++ { + i16res = int16(i) / 7 + } +} + +var u16res uint16 + +func BenchmarkDivconstU16(b *testing.B) { + for i := 0; i < b.N; i++ { + u16res = uint16(i) / 7 + } +} + +var i8res int8 + +func BenchmarkDivconstI8(b *testing.B) { + for i := 0; i < b.N; i++ { + i8res = int8(i) / 7 + } +} + +var u8res uint8 + +func BenchmarkDivconstU8(b *testing.B) { + for i := 0; i < b.N; i++ { + u8res = uint8(i) / 7 + } +} |