| Server IP : 185.170.199.33 / Your IP : 216.73.217.143 Web Server : LiteSpeed System : Linux lt-bnk-web922.main-hosting.eu 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64 User : u970350538 ( 970350538) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/golang/1.22.0/src/cmd/compile/internal/test/ |
Upload File : |
// Copyright 2020 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 test
import "testing"
var globl int64
var globl32 int32
func BenchmarkLoadAdd(b *testing.B) {
x := make([]int64, 1024)
y := make([]int64, 1024)
for i := 0; i < b.N; i++ {
var s int64
for i := range x {
s ^= x[i] + y[i]
}
globl = s
}
}
// Added for ppc64 extswsli on power9
func BenchmarkExtShift(b *testing.B) {
x := make([]int32, 1024)
for i := 0; i < b.N; i++ {
var s int64
for i := range x {
s ^= int64(x[i]+32) * 8
}
globl = s
}
}
func BenchmarkModify(b *testing.B) {
a := make([]int64, 1024)
v := globl
for i := 0; i < b.N; i++ {
for j := range a {
a[j] += v
}
}
}
func BenchmarkMullImm(b *testing.B) {
x := make([]int32, 1024)
for i := 0; i < b.N; i++ {
var s int32
for i := range x {
s += x[i] * 100
}
globl32 = s
}
}
func BenchmarkConstModify(b *testing.B) {
a := make([]int64, 1024)
for i := 0; i < b.N; i++ {
for j := range a {
a[j] += 3
}
}
}
func BenchmarkBitSet(b *testing.B) {
const N = 64 * 8
a := make([]uint64, N/64)
for i := 0; i < b.N; i++ {
for j := uint64(0); j < N; j++ {
a[j/64] |= 1 << (j % 64)
}
}
}
func BenchmarkBitClear(b *testing.B) {
const N = 64 * 8
a := make([]uint64, N/64)
for i := 0; i < b.N; i++ {
for j := uint64(0); j < N; j++ {
a[j/64] &^= 1 << (j % 64)
}
}
}
func BenchmarkBitToggle(b *testing.B) {
const N = 64 * 8
a := make([]uint64, N/64)
for i := 0; i < b.N; i++ {
for j := uint64(0); j < N; j++ {
a[j/64] ^= 1 << (j % 64)
}
}
}
func BenchmarkBitSetConst(b *testing.B) {
const N = 64
a := make([]uint64, N)
for i := 0; i < b.N; i++ {
for j := range a {
a[j] |= 1 << 37
}
}
}
func BenchmarkBitClearConst(b *testing.B) {
const N = 64
a := make([]uint64, N)
for i := 0; i < b.N; i++ {
for j := range a {
a[j] &^= 1 << 37
}
}
}
func BenchmarkBitToggleConst(b *testing.B) {
const N = 64
a := make([]uint64, N)
for i := 0; i < b.N; i++ {
for j := range a {
a[j] ^= 1 << 37
}
}
}