<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go/test/codegen/bits.go, branch makepkg</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=makepkg</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=makepkg'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2026-01-30T00:48:45Z</updated>
<entry>
<title>test/codegen: add bitwise operation combination tests</title>
<updated>2026-01-30T00:48:45Z</updated>
<author>
<name>Xiaolin Zhao</name>
<email>zhaoxiaolin@loongson.cn</email>
</author>
<published>2026-01-15T08:30:30Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=5aa006dee0fae19cea85843cb0c83636a3181e0e'/>
<id>urn:sha1:5aa006dee0fae19cea85843cb0c83636a3181e0e</id>
<content type='text'>
This commit adds two test functions, bitsOptXor1 and bitsOptXor2,
to verify that the compiler correctly optimizes certain bitwise
expression patterns in future CLs.

Change-Id: Idf5bd1ff8653f8fa218604d857639e063546d8e7
Reviewed-on: https://go-review.googlesource.com/c/go/+/736540
Reviewed-by: Carlos Amedee &lt;carlos@golang.org&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Reviewed-by: abner chenc &lt;chenguoqi@loongson.cn&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
</content>
</entry>
<entry>
<title>test/codegen: codify bit related code generation for arm64</title>
<updated>2026-01-03T03:25:50Z</updated>
<author>
<name>Joel Sing</name>
<email>joel@sing.id.au</email>
</author>
<published>2025-12-24T08:11:52Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=b094749bad125db5b89e48248bbb9c7dc1292a95'/>
<id>urn:sha1:b094749bad125db5b89e48248bbb9c7dc1292a95</id>
<content type='text'>
Also more consistently include commas after constants to increase
accuracy (i.e. "1," cannot inadvertantly match "10")

Change-Id: I480a73859d2e83354b8e9f94bc73c6563976d0e3
Reviewed-on: https://go-review.googlesource.com/c/go/+/733460
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
</content>
</entry>
<entry>
<title>test/codegen: tidy tests for bits</title>
<updated>2025-12-26T15:51:44Z</updated>
<author>
<name>Joel Sing</name>
<email>joel@sing.id.au</email>
</author>
<published>2025-12-23T12:43:15Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=7971fcdf537054608b2443a32f0fbb6dd4eba12a'/>
<id>urn:sha1:7971fcdf537054608b2443a32f0fbb6dd4eba12a</id>
<content type='text'>
Use Go idiomatic function names, use a common prefix, attempt to
maintain some consistency, avoid naming functions based upon
machine specific instructions and combine a duplicate test that
likely exists due to this confusion.

Change-Id: I996e9efd7497821edef94c1997d4a310d9d79a71
Reviewed-on: https://go-review.googlesource.com/c/go/+/732200
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Auto-Submit: Joel Sing &lt;joel@sing.id.au&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
</content>
</entry>
<entry>
<title>test/codegen: codify bit related code generation for riscv64</title>
<updated>2025-12-23T18:51:32Z</updated>
<author>
<name>Joel Sing</name>
<email>joel@sing.id.au</email>
</author>
<published>2025-12-23T10:06:49Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3e0e1667f694e989371e021dd8f269dae5a78e9f'/>
<id>urn:sha1:3e0e1667f694e989371e021dd8f269dae5a78e9f</id>
<content type='text'>
Change-Id: Iba4d3ded15d578e97a978780069e70a51a5e944b
Reviewed-on: https://go-review.googlesource.com/c/go/+/732180
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Nicholas Husin &lt;husin@google.com&gt;
Reviewed-by: Meng Zhuo &lt;mengzhuo1203@gmail.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
Auto-Submit: Joel Sing &lt;joel@sing.id.au&gt;
</content>
</entry>
<entry>
<title>test/codegen: simplify asmcheck pattern matching</title>
<updated>2025-10-29T20:55:00Z</updated>
<author>
<name>Russ Cox</name>
<email>rsc@golang.org</email>
</author>
<published>2025-10-27T02:51:14Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=915c1839fe76aef4bea6191282be1e48ef1c64e2'/>
<id>urn:sha1:915c1839fe76aef4bea6191282be1e48ef1c64e2</id>
<content type='text'>
Separate patterns in asmcheck by spaces instead of commas.
Many patterns end in comma (like "MOV [$]123,") so separating
patterns by comma is not great; they're already quoted, so spaces are fine.

Also replace all tabs in the assembly lines with spaces before matching.
Finally, replace \$ or \\$ with [$] as the matching idiom.
The effect of all these is to make the patterns look like:

  	   // amd64:"BSFQ" "ORQ [$]256"

instead of the old:

  	   // amd64:"BSFQ","ORQ\t\\$256"

Update all tests as well.

Change-Id: Ia39febe5d7f67ba115846422789e11b185d5c807
Reviewed-on: https://go-review.googlesource.com/c/go/+/716060
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Alan Donovan &lt;adonovan@google.com&gt;
Reviewed-by: Jorropo &lt;jorropo.pgm@gmail.com&gt;
</content>
</entry>
<entry>
<title>cmd/compile: add rules about ORN and ANDN</title>
<updated>2025-05-21T15:28:37Z</updated>
<author>
<name>Xiaolin Zhao</name>
<email>zhaoxiaolin@loongson.cn</email>
</author>
<published>2025-05-20T02:28:17Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=4ce1c8e9e1aab695bb0da506f2de336a5caa81f6'/>
<id>urn:sha1:4ce1c8e9e1aab695bb0da506f2de336a5caa81f6</id>
<content type='text'>
Reduce the number of go toolchain instructions on loong64 as follows.

    file      before    after     Δ       %
    addr2line 279880    279776  -104   -0.0372%
    asm       556638    556410  -228   -0.0410%
    buildid   272272    272072  -200   -0.0735%
    cgo       481522    481318  -204   -0.0424%
    compile   2457788   2457580 -208   -0.0085%
    covdata   323384    323280  -104   -0.0322%
    cover     518450    518234  -216   -0.0417%
    dist      340790    340686  -104   -0.0305%
    distpack  282456    282252  -204   -0.0722%
    doc       789932    789688  -244   -0.0309%
    fix       324332    324228  -104   -0.0321%
    link      704622    704390  -232   -0.0329%
    nm        277132    277028  -104   -0.0375%
    objdump   507862    507758  -104   -0.0205%
    pack      221774    221674  -100   -0.0451%
    pprof     1469816   1469552 -264   -0.0180%
    test2json 254836    254732  -104   -0.0408%
    trace     1100002   1099738 -264   -0.0240%
    vet       781078    780874  -204   -0.0261%
    go        1529116   1528848 -268   -0.0175%
    gofmt     318556    318448  -108   -0.0339%
    total     13792238 13788566 -3672  -0.0266%

Change-Id: I23fb3ebd41309252c7075e57ea7094e79f8c4fef
Reviewed-on: https://go-review.googlesource.com/c/go/+/674335
Reviewed-by: abner chenc &lt;chenguoqi@loongson.cn&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: abner chenc &lt;chenguoqi@loongson.cn&gt;
Reviewed-by: David Chase &lt;drchase@google.com&gt;
Reviewed-by: Meidan Li &lt;limeidan@loongson.cn&gt;
</content>
</entry>
<entry>
<title>cmd/compile: fix the implementation of NORconst on loong64</title>
<updated>2025-05-21T03:24:09Z</updated>
<author>
<name>Xiaolin Zhao</name>
<email>zhaoxiaolin@loongson.cn</email>
</author>
<published>2025-05-19T09:02:48Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d37a1bdd48458e48de13cdc320c8ddf9b021e356'/>
<id>urn:sha1:d37a1bdd48458e48de13cdc320c8ddf9b021e356</id>
<content type='text'>
In the loong64 instruction set, there is no NORI instruction,
so the immediate value in NORconst need to be stored in register
and then use the three-register NOR instruction.

Change-Id: I5ef697450619317218cb3ef47fc07e238bdc2139
Reviewed-on: https://go-review.googlesource.com/c/go/+/673836
Reviewed-by: abner chenc &lt;chenguoqi@loongson.cn&gt;
Reviewed-by: David Chase &lt;drchase@google.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
</content>
</entry>
<entry>
<title>cmd/compile: prefer an add when shifting left by 1</title>
<updated>2025-02-06T17:05:20Z</updated>
<author>
<name>Jakub Ciolek</name>
<email>jakub@ciolek.dev</email>
</author>
<published>2025-01-11T18:26:57Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=cd595be6d669af171bc28bdc939cc36785717718'/>
<id>urn:sha1:cd595be6d669af171bc28bdc939cc36785717718</id>
<content type='text'>
ADD(Q|L) has generally twice the throughput.

Came up in CL 626998.

Throughput by arch:

Zen 4:

SHLL (R64, 1):   0.5
ADD  (R64, R64): 0.25

Intel Alder Lake:

SHLL (R64, 1):   0.5
ADD  (R64, R64): 0.2

Intel Haswell:

SHLL (R64, 1):   0.5
ADD  (R64, R64): 0.25

Also include a minor opt for:

(x + x) &lt;&lt; c -&gt; x &lt;&lt; (c + 1)

Before this, the code:

func addShift(x int64) int64 {
    return (x + x) &lt;&lt; 1
}

emitted two instructions:

        ADDQ    AX, AX
        SHLQ    $1, AX

but we can do it in a single shift:

        SHLQ    $2, AX

Add a codegen test for clearing the last bit.

compilecmp linux/amd64:

math
math.sqrt 243 -&gt; 242  (-0.41%)

math [cmd/compile]
math.sqrt 243 -&gt; 242  (-0.41%)

runtime
runtime.selectgo 5455 -&gt; 5445  (-0.18%)
runtime.sysargs 665 -&gt; 662  (-0.45%)
runtime.isPinned 145 -&gt; 141  (-2.76%)
runtime.atoi64 198 -&gt; 194  (-2.02%)
runtime.setPinned 714 -&gt; 709  (-0.70%)

runtime [cmd/compile]
runtime.sysargs 665 -&gt; 662  (-0.45%)
runtime.setPinned 714 -&gt; 709  (-0.70%)
runtime.atoi64 198 -&gt; 194  (-2.02%)
runtime.isPinned 145 -&gt; 141  (-2.76%)

strconv
strconv.computeBounds 109 -&gt; 107  (-1.83%)
strconv.FormatInt 201 -&gt; 197  (-1.99%)
strconv.ryuFtoaShortest 1298 -&gt; 1266  (-2.47%)
strconv.small 144 -&gt; 134  (-6.94%)
strconv.AppendInt 357 -&gt; 344  (-3.64%)
strconv.ryuDigits32 490 -&gt; 488  (-0.41%)
strconv.AppendUint 342 -&gt; 340  (-0.58%)

strconv [cmd/compile]
strconv.FormatInt 201 -&gt; 197  (-1.99%)
strconv.ryuFtoaShortest 1298 -&gt; 1266  (-2.47%)
strconv.ryuDigits32 490 -&gt; 488  (-0.41%)
strconv.AppendUint 342 -&gt; 340  (-0.58%)
strconv.computeBounds 109 -&gt; 107  (-1.83%)
strconv.small 144 -&gt; 134  (-6.94%)
strconv.AppendInt 357 -&gt; 344  (-3.64%)

image
image.Rectangle.Inset 101 -&gt; 97  (-3.96%)

regexp/syntax
regexp/syntax.inCharClass.func1 111 -&gt; 110  (-0.90%)
regexp/syntax.(*compiler).quest 586 -&gt; 573  (-2.22%)
regexp/syntax.ranges.Less 153 -&gt; 150  (-1.96%)
regexp/syntax.(*compiler).loop 583 -&gt; 568  (-2.57%)

time
time.Time.Before 179 -&gt; 161  (-10.06%)
time.Time.Compare 189 -&gt; 166  (-12.17%)
time.Time.Sub 444 -&gt; 425  (-4.28%)
time.Time.UnixMicro 106 -&gt; 95  (-10.38%)
time.div 592 -&gt; 587  (-0.84%)
time.Time.UnixNano 85 -&gt; 78  (-8.24%)
time.(*Time).UnixMilli 141 -&gt; 140  (-0.71%)
time.Time.UnixMilli 106 -&gt; 95  (-10.38%)
time.(*Time).UnixMicro 141 -&gt; 140  (-0.71%)
time.Time.After 179 -&gt; 161  (-10.06%)
time.Time.Equal 170 -&gt; 150  (-11.76%)
time.Time.AppendBinary 766 -&gt; 757  (-1.17%)
time.Time.IsZero 74 -&gt; 66  (-10.81%)
time.(*Time).UnixNano 124 -&gt; 113  (-8.87%)
time.(*Time).IsZero 113 -&gt; 108  (-4.42%)

regexp
regexp.(*Regexp).FindAllStringSubmatch.func1 590 -&gt; 569  (-3.56%)
regexp.QuoteMeta 485 -&gt; 469  (-3.30%)

regexp/syntax [cmd/compile]
regexp/syntax.inCharClass.func1 111 -&gt; 110  (-0.90%)
regexp/syntax.(*compiler).loop 583 -&gt; 568  (-2.57%)
regexp/syntax.(*compiler).quest 586 -&gt; 573  (-2.22%)
regexp/syntax.ranges.Less 153 -&gt; 150  (-1.96%)

encoding/base64
encoding/base64.decodedLen 92 -&gt; 90  (-2.17%)
encoding/base64.(*Encoding).DecodedLen 99 -&gt; 97  (-2.02%)

time [cmd/compile]
time.(*Time).IsZero 113 -&gt; 108  (-4.42%)
time.Time.IsZero 74 -&gt; 66  (-10.81%)
time.(*Time).UnixNano 124 -&gt; 113  (-8.87%)
time.Time.UnixMilli 106 -&gt; 95  (-10.38%)
time.Time.Equal 170 -&gt; 150  (-11.76%)
time.Time.UnixMicro 106 -&gt; 95  (-10.38%)
time.(*Time).UnixMicro 141 -&gt; 140  (-0.71%)
time.Time.Before 179 -&gt; 161  (-10.06%)
time.Time.UnixNano 85 -&gt; 78  (-8.24%)
time.Time.AppendBinary 766 -&gt; 757  (-1.17%)
time.div 592 -&gt; 587  (-0.84%)
time.Time.After 179 -&gt; 161  (-10.06%)
time.Time.Compare 189 -&gt; 166  (-12.17%)
time.(*Time).UnixMilli 141 -&gt; 140  (-0.71%)
time.Time.Sub 444 -&gt; 425  (-4.28%)

index/suffixarray
index/suffixarray.sais_8_32 1677 -&gt; 1645  (-1.91%)
index/suffixarray.sais_32 1677 -&gt; 1645  (-1.91%)
index/suffixarray.sais_64 1677 -&gt; 1654  (-1.37%)
index/suffixarray.sais_8_64 1677 -&gt; 1654  (-1.37%)
index/suffixarray.writeInt 249 -&gt; 247  (-0.80%)

os
os.Expand 1070 -&gt; 1051  (-1.78%)
os.Chtimes 787 -&gt; 774  (-1.65%)

regexp [cmd/compile]
regexp.(*Regexp).FindAllStringSubmatch.func1 590 -&gt; 569  (-3.56%)
regexp.QuoteMeta 485 -&gt; 469  (-3.30%)

encoding/base64 [cmd/compile]
encoding/base64.decodedLen 92 -&gt; 90  (-2.17%)
encoding/base64.(*Encoding).DecodedLen 99 -&gt; 97  (-2.02%)

encoding/hex
encoding/hex.Encode 138 -&gt; 136  (-1.45%)
encoding/hex.(*decoder).Read 830 -&gt; 824  (-0.72%)

crypto/des
crypto/des.initFeistelBox 235 -&gt; 229  (-2.55%)
crypto/des.cryptBlock 549 -&gt; 538  (-2.00%)

os [cmd/compile]
os.Chtimes 787 -&gt; 774  (-1.65%)
os.Expand 1070 -&gt; 1051  (-1.78%)

math/big
math/big.newFloat 238 -&gt; 223  (-6.30%)
math/big.nat.mul 2138 -&gt; 2122  (-0.75%)
math/big.karatsubaSqr 1372 -&gt; 1369  (-0.22%)
math/big.(*Float).sqrtInverse 895 -&gt; 878  (-1.90%)
math/big.basicSqr 1032 -&gt; 1017  (-1.45%)

cmd/vendor/golang.org/x/sys/unix
cmd/vendor/golang.org/x/sys/unix.TimeToTimespec 72 -&gt; 66  (-8.33%)

encoding/json
encoding/json.Indent 404 -&gt; 403  (-0.25%)
encoding/json.MarshalIndent 303 -&gt; 297  (-1.98%)

testing
testing.(*T).Deadline 84 -&gt; 82  (-2.38%)
testing.(*M).Run 3545 -&gt; 3525  (-0.56%)

archive/zip
archive/zip.headerFileInfo.ModTime 229 -&gt; 223  (-2.62%)

encoding/gob
encoding/gob.(*encoderState).encodeInt 474 -&gt; 469  (-1.05%)

crypto/elliptic
crypto/elliptic.Marshal 728 -&gt; 714  (-1.92%)

debug/buildinfo
debug/buildinfo.readString 325 -&gt; 315  (-3.08%)

image/png
image/png.(*decoder).readImagePass 10866 -&gt; 10834  (-0.29%)

archive/tar
archive/tar.Header.allowedFormats.func3 1768 -&gt; 1736  (-1.81%)
archive/tar.formatPAXTime 389 -&gt; 358  (-7.97%)
archive/tar.(*Writer).writeGNUHeader 741 -&gt; 727  (-1.89%)
archive/tar.readGNUSparseMap0x1 709 -&gt; 695  (-1.97%)
archive/tar.(*Writer).templateV7Plus 915 -&gt; 909  (-0.66%)

crypto/internal/cryptotest
crypto/internal/cryptotest.TestHash.func4 890 -&gt; 879  (-1.24%)
crypto/internal/cryptotest.TestStream.func6.1 646 -&gt; 645  (-0.15%)
crypto/internal/cryptotest.testCipher.func3 1300 -&gt; 1289  (-0.85%)

internal/pkgbits
internal/pkgbits.(*Encoder).Int64 113 -&gt; 103  (-8.85%)
internal/pkgbits.(*Encoder).rawVarint 74 -&gt; 72  (-2.70%)

testing/quick
testing/quick.(*Config).getRand 316 -&gt; 315  (-0.32%)

log/slog
log/slog.TimeValue 489 -&gt; 479  (-2.04%)

runtime/pprof
runtime/pprof.(*profileBuilder).build 2341 -&gt; 2322  (-0.81%)

internal/coverage/cfile
internal/coverage/cfile.(*emitState).openMetaFile 824 -&gt; 822  (-0.24%)
internal/coverage/cfile.(*emitState).openCounterFile 904 -&gt; 892  (-1.33%)

cmd/internal/objabi
cmd/internal/objabi.expandArgs 1177 -&gt; 1169  (-0.68%)

crypto/ecdsa
crypto/ecdsa.pointFromAffine 1162 -&gt; 1144  (-1.55%)

net
net.minNonzeroTime 313 -&gt; 308  (-1.60%)
net.cgoLookupAddrPTR 812 -&gt; 797  (-1.85%)
net.(*IPNet).String 851 -&gt; 827  (-2.82%)
net.IP.AppendText 488 -&gt; 471  (-3.48%)
net.IPMask.String 281 -&gt; 270  (-3.91%)
net.partialDeadline 374 -&gt; 366  (-2.14%)
net.hexString 249 -&gt; 240  (-3.61%)
net.IP.String 454 -&gt; 453  (-0.22%)

internal/fuzz
internal/fuzz.newPcgRand 240 -&gt; 234  (-2.50%)

crypto/x509
crypto/x509.(*Certificate).isValid 2642 -&gt; 2611  (-1.17%)

cmd/internal/obj/s390x
cmd/internal/obj/s390x.buildop 33676 -&gt; 33644  (-0.10%)

encoding/hex [cmd/compile]
encoding/hex.(*decoder).Read 830 -&gt; 824  (-0.72%)
encoding/hex.Encode 138 -&gt; 136  (-1.45%)

cmd/internal/objabi [cmd/compile]
cmd/internal/objabi.expandArgs 1177 -&gt; 1169  (-0.68%)

math/big [cmd/compile]
math/big.(*Float).sqrtInverse 895 -&gt; 878  (-1.90%)
math/big.nat.mul 2138 -&gt; 2122  (-0.75%)
math/big.karatsubaSqr 1372 -&gt; 1369  (-0.22%)
math/big.basicSqr 1032 -&gt; 1017  (-1.45%)
math/big.newFloat 238 -&gt; 223  (-6.30%)

encoding/json [cmd/compile]
encoding/json.MarshalIndent 303 -&gt; 297  (-1.98%)
encoding/json.Indent 404 -&gt; 403  (-0.25%)

cmd/covdata
main.(*metaMerge).emitCounters 985 -&gt; 973  (-1.22%)

runtime/pprof [cmd/compile]
runtime/pprof.(*profileBuilder).build 2341 -&gt; 2322  (-0.81%)

cmd/compile/internal/syntax
cmd/compile/internal/syntax.(*source).fill 722 -&gt; 703  (-2.63%)

cmd/dist
main.runInstall 19081 -&gt; 19049  (-0.17%)

crypto/tls
crypto/tls.extractPadding 176 -&gt; 175  (-0.57%)
slices.Clone[[]crypto/tls.SignatureScheme,crypto/tls.SignatureScheme] 253 -&gt; 247  (-2.37%)
slices.Clone[[]uint16,uint16] 253 -&gt; 247  (-2.37%)
slices.Clone[[]crypto/tls.CurveID,crypto/tls.CurveID] 253 -&gt; 247  (-2.37%)
crypto/tls.(*Config).cipherSuites 335 -&gt; 326  (-2.69%)
slices.DeleteFunc[go.shape.[]crypto/tls.CurveID,go.shape.uint16] 437 -&gt; 434  (-0.69%)
crypto/tls.dial 1349 -&gt; 1339  (-0.74%)
slices.DeleteFunc[go.shape.[]uint16,go.shape.uint16] 437 -&gt; 434  (-0.69%)

internal/pkgbits [cmd/compile]
internal/pkgbits.(*Encoder).Int64 113 -&gt; 103  (-8.85%)
internal/pkgbits.(*Encoder).rawVarint 74 -&gt; 72  (-2.70%)

cmd/compile/internal/syntax [cmd/compile]
cmd/compile/internal/syntax.(*source).fill 722 -&gt; 703  (-2.63%)

cmd/internal/obj/s390x [cmd/compile]
cmd/internal/obj/s390x.buildop 33676 -&gt; 33644  (-0.10%)

cmd/go/internal/trace
cmd/go/internal/trace.Flow 910 -&gt; 886  (-2.64%)
cmd/go/internal/trace.(*Span).Done 311 -&gt; 304  (-2.25%)
cmd/go/internal/trace.StartSpan 620 -&gt; 615  (-0.81%)

cmd/internal/script
cmd/internal/script.(*Engine).Execute.func2 534 -&gt; 528  (-1.12%)

cmd/link/internal/loader
cmd/link/internal/loader.(*Loader).SetSymSect 344 -&gt; 338  (-1.74%)

net/http
net/http.(*Transport).queueForIdleConn 1797 -&gt; 1766  (-1.73%)
net/http.(*Transport).getConn 2149 -&gt; 2131  (-0.84%)
net/http.(*http2ClientConn).tooIdleLocked 207 -&gt; 197  (-4.83%)
net/http.(*http2responseWriter).SetWriteDeadline.func1 520 -&gt; 508  (-2.31%)
net/http.(*Cookie).Valid 837 -&gt; 818  (-2.27%)
net/http.(*http2responseWriter).SetReadDeadline 373 -&gt; 357  (-4.29%)
net/http.checkIfRange 701 -&gt; 690  (-1.57%)
net/http.(*http2SettingsFrame).Value 325 -&gt; 298  (-8.31%)
net/http.(*http2SettingsFrame).HasDuplicates 777 -&gt; 767  (-1.29%)
net/http.(*Server).Serve 1746 -&gt; 1739  (-0.40%)
net/http.http2traceGotConn 569 -&gt; 556  (-2.28%)

net/http/pprof
net/http/pprof.collectProfile 242 -&gt; 239  (-1.24%)

cmd/compile/internal/coverage
cmd/compile/internal/coverage.metaHashAndLen 439 -&gt; 438  (-0.23%)

cmd/vendor/golang.org/x/telemetry/internal/upload
cmd/vendor/golang.org/x/telemetry/internal/upload.(*uploader).findWork 4570 -&gt; 4540  (-0.66%)
cmd/vendor/golang.org/x/telemetry/internal/upload.(*uploader).reports 3604 -&gt; 3572  (-0.89%)

cmd/compile/internal/coverage [cmd/compile]
cmd/compile/internal/coverage.metaHashAndLen 439 -&gt; 438  (-0.23%)

cmd/vendor/golang.org/x/text/language
cmd/vendor/golang.org/x/text/language.regionGroupDist 287 -&gt; 284  (-1.05%)

cmd/go/internal/vcweb
cmd/go/internal/vcweb.(*Server).overview.func1 1045 -&gt; 1041  (-0.38%)

cmd/go/internal/vcs
cmd/go/internal/vcs.expand 761 -&gt; 741  (-2.63%)

cmd/compile/internal/inline/inlheur
slices.stableCmpFunc[go.shape.struct 2300 -&gt; 2284  (-0.70%)

cmd/compile/internal/inline/inlheur [cmd/compile]
slices.stableCmpFunc[go.shape.struct 2300 -&gt; 2284  (-0.70%)

cmd/go/internal/modfetch/codehost
cmd/go/internal/modfetch/codehost.bzrParseStat 2217 -&gt; 2213  (-0.18%)

cmd/link/internal/ld
cmd/link/internal/ld.decodetypeStructFieldCount 157 -&gt; 152  (-3.18%)
cmd/link/internal/ld.(*Link).address 12559 -&gt; 12495  (-0.51%)
cmd/link/internal/ld.(*dodataState).allocateDataSections 18345 -&gt; 18205  (-0.76%)
cmd/link/internal/ld.elfshreloc 618 -&gt; 616  (-0.32%)
cmd/link/internal/ld.(*deadcodePass).decodetypeMethods 794 -&gt; 779  (-1.89%)
cmd/link/internal/ld.(*dodataState).assignDsymsToSection 668 -&gt; 663  (-0.75%)
cmd/link/internal/ld.relocSectFn 285 -&gt; 284  (-0.35%)
cmd/link/internal/ld.decodetypeIfaceMethodCount 146 -&gt; 144  (-1.37%)
cmd/link/internal/ld.decodetypeArrayLen 157 -&gt; 152  (-3.18%)

cmd/link/internal/arm64
cmd/link/internal/arm64.gensymlate.func1 895 -&gt; 888  (-0.78%)

cmd/go/internal/modload
cmd/go/internal/modload.queryProxy.func3 1029 -&gt; 1012  (-1.65%)

cmd/go/internal/load
cmd/go/internal/load.(*Package).setBuildInfo 8453 -&gt; 8447  (-0.07%)

cmd/go/internal/clean
cmd/go/internal/clean.runClean 2120 -&gt; 2104  (-0.75%)

cmd/compile/internal/ssa
cmd/compile/internal/ssa.(*poset).aliasnodes 2010 -&gt; 1978  (-1.59%)
cmd/compile/internal/ssa.rewriteValueARM64_OpARM64MOVHstoreidx2 730 -&gt; 719  (-1.51%)
cmd/compile/internal/ssa.(*debugState).buildLocationLists 3326 -&gt; 3294  (-0.96%)
cmd/compile/internal/ssa.rewriteValueAMD64_OpAMD64ADDLconst 3069 -&gt; 2941  (-4.17%)
cmd/compile/internal/ssa.(*debugState).processValue 9756 -&gt; 9724  (-0.33%)
cmd/compile/internal/ssa.rewriteValueAMD64_OpAMD64ADDQconst 3069 -&gt; 2941  (-4.17%)
cmd/compile/internal/ssa.(*poset).mergeroot 1079 -&gt; 1054  (-2.32%)

cmd/compile/internal/ssa [cmd/compile]
cmd/compile/internal/ssa.rewriteValueARM64_OpARM64MOVHstoreidx2 730 -&gt; 719  (-1.51%)
cmd/compile/internal/ssa.(*poset).aliasnodes 2010 -&gt; 1978  (-1.59%)
cmd/compile/internal/ssa.(*poset).mergeroot 1079 -&gt; 1054  (-2.32%)
cmd/compile/internal/ssa.rewriteValueAMD64_OpAMD64ADDQconst 3069 -&gt; 2941  (-4.17%)
cmd/compile/internal/ssa.rewriteValueAMD64_OpAMD64ADDLconst 3069 -&gt; 2941  (-4.17%)

file                                                before   after    Δ       %
math/bits.s                                         2352     2354     +2      +0.085%
math/bits [cmd/compile].s                           2352     2354     +2      +0.085%
math.s                                              35675    35674    -1      -0.003%
math [cmd/compile].s                                35675    35674    -1      -0.003%
runtime.s                                           577251   577245   -6      -0.001%
runtime [cmd/compile].s                             642419   642438   +19     +0.003%
sort.s                                              37434    37435    +1      +0.003%
strconv.s                                           48391    48343    -48     -0.099%
sort [cmd/compile].s                                37434    37435    +1      +0.003%
bufio.s                                             21386    21418    +32     +0.150%
strconv [cmd/compile].s                             48391    48343    -48     -0.099%
image.s                                             34978    35022    +44     +0.126%
regexp/syntax.s                                     81719    81781    +62     +0.076%
time.s                                              94341    94184    -157    -0.166%
regexp.s                                            60411    60399    -12     -0.020%
bufio [cmd/compile].s                               21512    21544    +32     +0.149%
encoding/binary.s                                   34062    34087    +25     +0.073%
regexp/syntax [cmd/compile].s                       81719    81781    +62     +0.076%
encoding/base64.s                                   11907    11903    -4      -0.034%
time [cmd/compile].s                                94341    94184    -157    -0.166%
index/suffixarray.s                                 41633    41527    -106    -0.255%
os.s                                                101770   101738   -32     -0.031%
regexp [cmd/compile].s                              60411    60399    -12     -0.020%
encoding/binary [cmd/compile].s                     37173    37198    +25     +0.067%
encoding/base64 [cmd/compile].s                     11907    11903    -4      -0.034%
os/exec.s                                           23900    23907    +7      +0.029%
encoding/hex.s                                      6038     6030     -8      -0.132%
crypto/des.s                                        5073     5056     -17     -0.335%
os [cmd/compile].s                                  102030   101998   -32     -0.031%
vendor/golang.org/x/net/http2/hpack.s               22027    22033    +6      +0.027%
math/big.s                                          164808   164753   -55     -0.033%
cmd/vendor/golang.org/x/sys/unix.s                  121450   121444   -6      -0.005%
encoding/json.s                                     110294   110287   -7      -0.006%
testing.s                                           115303   115281   -22     -0.019%
archive/zip.s                                       65329    65325    -4      -0.006%
os/user.s                                           10078    10080    +2      +0.020%
encoding/gob.s                                      143788   143783   -5      -0.003%
crypto/elliptic.s                                   30686    30704    +18     +0.059%
go/doc/comment.s                                    49401    49433    +32     +0.065%
debug/buildinfo.s                                   9095     9085     -10     -0.110%
image/png.s                                         36113    36081    -32     -0.089%
archive/tar.s                                       71994    71897    -97     -0.135%
crypto/internal/cryptotest.s                        60872    60849    -23     -0.038%
internal/pkgbits.s                                  20441    20429    -12     -0.059%
testing/quick.s                                     8236     8235     -1      -0.012%
log/slog.s                                          77568    77558    -10     -0.013%
internal/trace/internal/oldtrace.s                  52885    52896    +11     +0.021%
runtime/pprof.s                                     123978   123969   -9      -0.007%
internal/coverage/cfile.s                           25198    25184    -14     -0.056%
cmd/internal/objabi.s                               19954    19946    -8      -0.040%
crypto/ecdsa.s                                      29159    29141    -18     -0.062%
log/slog/internal/benchmarks.s                      6694     6695     +1      +0.015%
net.s                                               299569   299503   -66     -0.022%
os/exec [cmd/compile].s                             23888    23895    +7      +0.029%
internal/trace.s                                    179226   179240   +14     +0.008%
internal/fuzz.s                                     86190    86191    +1      +0.001%
crypto/x509.s                                       177195   177164   -31     -0.017%
cmd/internal/obj/s390x.s                            121642   121610   -32     -0.026%
cmd/internal/obj/ppc64.s                            140118   140122   +4      +0.003%
encoding/hex [cmd/compile].s                        6149     6141     -8      -0.130%
cmd/internal/objabi [cmd/compile].s                 19954    19946    -8      -0.040%
cmd/internal/obj/arm64.s                            158523   158555   +32     +0.020%
go/doc/comment [cmd/compile].s                      49512    49544    +32     +0.065%
math/big [cmd/compile].s                            166394   166339   -55     -0.033%
encoding/json [cmd/compile].s                       110712   110705   -7      -0.006%
cmd/covdata.s                                       39699    39687    -12     -0.030%
runtime/pprof [cmd/compile].s                       125209   125200   -9      -0.007%
cmd/compile/internal/syntax.s                       181755   181736   -19     -0.010%
cmd/dist.s                                          177893   177861   -32     -0.018%
crypto/tls.s                                        389157   389113   -44     -0.011%
internal/pkgbits [cmd/compile].s                    41644    41632    -12     -0.029%
cmd/compile/internal/syntax [cmd/compile].s         196105   196086   -19     -0.010%
cmd/compile/internal/types.s                        71315    71345    +30     +0.042%
cmd/internal/obj/s390x [cmd/compile].s              121733   121701   -32     -0.026%
cmd/go/internal/trace.s                             4796     4760     -36     -0.751%
cmd/internal/obj/arm64 [cmd/compile].s              168120   168147   +27     +0.016%
cmd/internal/obj/ppc64 [cmd/compile].s              140219   140223   +4      +0.003%
cmd/internal/script.s                               83442    83436    -6      -0.007%
cmd/link/internal/loader.s                          93299    93294    -5      -0.005%
net/http.s                                          620639   620472   -167    -0.027%
net/http/pprof.s                                    35016    35013    -3      -0.009%
cmd/compile/internal/coverage.s                     6668     6667     -1      -0.015%
cmd/vendor/golang.org/x/telemetry/internal/upload.s 34210    34148    -62     -0.181%
cmd/compile/internal/coverage [cmd/compile].s       6664     6663     -1      -0.015%
cmd/vendor/golang.org/x/text/language.s             48077    48074    -3      -0.006%
cmd/go/internal/vcweb.s                             45193    45189    -4      -0.009%
cmd/go/internal/vcs.s                               44749    44729    -20     -0.045%
cmd/compile/internal/inline/inlheur.s               83758    83742    -16     -0.019%
cmd/compile/internal/inline/inlheur [cmd/compile].s 84773    84757    -16     -0.019%
cmd/go/internal/modfetch/codehost.s                 89098    89094    -4      -0.004%
cmd/trace.s                                         257550   257564   +14     +0.005%
cmd/link/internal/ld.s                              641945   641706   -239    -0.037%
cmd/link/internal/arm64.s                           34805    34798    -7      -0.020%
cmd/go/internal/modload.s                           328971   328954   -17     -0.005%
cmd/go/internal/load.s                              178877   178871   -6      -0.003%
cmd/go/internal/clean.s                             11006    10990    -16     -0.145%
cmd/compile/internal/ssa.s                          3552843  3553347  +504    +0.014%
cmd/compile/internal/ssa [cmd/compile].s            3752511  3753123  +612    +0.016%
total                                               36179015 36178687 -328    -0.001%

Change-Id: I251c2898ccf3c9931d162d87dabbd49cf4ec73a5
Reviewed-on: https://go-review.googlesource.com/c/go/+/641757
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
Auto-Submit: Keith Randall &lt;khr@golang.org&gt;
Reviewed-by: Keith Randall &lt;khr@golang.org&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
</content>
</entry>
<entry>
<title>cmd/compile/internal/ssa: improve carry addition rules on PPC64</title>
<updated>2024-11-12T17:40:44Z</updated>
<author>
<name>Paul E. Murphy</name>
<email>murp@ibm.com</email>
</author>
<published>2024-11-08T22:07:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=745ec75719b8364867e1f5f5c9a711217513800c'/>
<id>urn:sha1:745ec75719b8364867e1f5f5c9a711217513800c</id>
<content type='text'>
Fold constant int16 addends for usages of math/bits.Add64(x,const,0)
on PPC64. This usage shows up in a few crypto implementations;
notably the go wrapper for CL 626176.

Change-Id: I6963163330487d04e0479b4fdac235f97bb96889
Reviewed-on: https://go-review.googlesource.com/c/go/+/625899
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: Emmanuel Odeke &lt;emmanuel@orijtech.com&gt;
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
Reviewed-by: Keith Randall &lt;khr@golang.org&gt;
</content>
</entry>
<entry>
<title>cmd/compile/ssa: fix (MOVWZreg (RLWINM)) folding on PPC64</title>
<updated>2024-06-07T19:02:52Z</updated>
<author>
<name>Paul E. Murphy</name>
<email>murp@ibm.com</email>
</author>
<published>2024-06-05T21:12:49Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d5e5b143057921721061c3f39f14061370e4a732'/>
<id>urn:sha1:d5e5b143057921721061c3f39f14061370e4a732</id>
<content type='text'>
RLIWNM does not clear the upper 32 bits of the target register if
the mask wraps around (e.g 0xF000000F). Don't elide MOVWZreg for
such masks. All other usage clears the upper 32 bits.

Fixes #67844.

Change-Id: I11b89f1da9ae077624369bfe2bf25e9b7c9b79bc
Reviewed-on: https://go-review.googlesource.com/c/go/+/590896
Reviewed-by: Keith Randall &lt;khr@golang.org&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
</content>
</entry>
</feed>
