From 5aa006dee0fae19cea85843cb0c83636a3181e0e Mon Sep 17 00:00:00 2001 From: Xiaolin Zhao Date: Thu, 15 Jan 2026 16:30:30 +0800 Subject: [PATCH] test/codegen: add bitwise operation combination tests 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 Reviewed-by: Dmitri Shuralyov Reviewed-by: abner chenc LUCI-TryBot-Result: Go LUCI --- test/codegen/bits.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/codegen/bits.go b/test/codegen/bits.go index d9c567b078..98489e3211 100644 --- a/test/codegen/bits.go +++ b/test/codegen/bits.go @@ -563,3 +563,15 @@ func bitsRotateAndMask(io64 [8]uint64, io32 [4]uint32, io16 [4]uint16, io8 [4]ui // ppc64x: "ANDCC [$]120" io8[0] = io8[0] & uint8(bigc) } + +func bitsOpXor1(x, y uint32) uint32 { + // arm64: "ORR" "AND" "BIC" + // loong64: "OR " "AND " "ANDN" + return (x | y) &^ (x & y) +} + +func bitsOpXor2(x, y uint32) uint32 { + // arm64: "BIC" "ORR" + // loong64: "ANDN" "OR " + return (x &^ y) | (^x & y) +} -- 2.52.0