aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorWayne Zuo <wdvxdr@golangcn.org>2022-04-08 17:33:50 +0800
committerKeith Randall <khr@golang.org>2022-04-13 17:48:12 +0000
commit517781b39181e26cff880b656787fac65a63092c (patch)
treec361e2cd2c724e6e78714b70d26726d07f1c871d /test
parentb55a2fb3b0d67b346bac871737b862f16e5a6447 (diff)
downloadgo-517781b39181e26cff880b656787fac65a63092c.tar.gz
go-517781b39181e26cff880b656787fac65a63092c.zip
cmd/compile: add SARXQload and SARXLload
Change-Id: I4e8dc5009a5b8af37d71b62f1322f94806d3e9d9 Reviewed-on: https://go-review.googlesource.com/c/go/+/399056 Run-TryBot: Wayne Zuo <wdvxdr@golangcn.org> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'test')
-rw-r--r--test/codegen/bmi.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/codegen/bmi.go b/test/codegen/bmi.go
index 9dd2b0039ce..1641d5ddd08 100644
--- a/test/codegen/bmi.go
+++ b/test/codegen/bmi.go
@@ -56,6 +56,22 @@ func sarx32(x, y int32) int32 {
return x >> y
}
+func sarx64_load(x []int64, i int) int64 {
+ // amd64/v3: `SARXQ\t[A-Z]+[0-9]*, \([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*8\), [A-Z]+[0-9]*`
+ s := x[i] >> (i & 63)
+ // amd64/v3: `SARXQ\t[A-Z]+[0-9]*, 8\([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*8\), [A-Z]+[0-9]*`
+ s = x[i+1] >> (s & 63)
+ return s
+}
+
+func sarx32_load(x []int32, i int) int32 {
+ // amd64/v3: `SARXL\t[A-Z]+[0-9]*, \([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*4\), [A-Z]+[0-9]*`
+ s := x[i] >> (i & 63)
+ // amd64/v3: `SARXL\t[A-Z]+[0-9]*, 4\([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*4\), [A-Z]+[0-9]*`
+ s = x[i+1] >> (s & 63)
+ return s
+}
+
func shlrx64(x []uint64, i int, s uint64) uint64 {
// amd64/v3: `SHRXQ\t[A-Z]+[0-9]*, \([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*8\), [A-Z]+[0-9]*`
s = x[i] >> i