diff options
author | Wayne Zuo <wdvxdr@golangcn.org> | 2022-04-08 17:33:50 +0800 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2022-04-13 17:48:12 +0000 |
commit | 517781b39181e26cff880b656787fac65a63092c (patch) | |
tree | c361e2cd2c724e6e78714b70d26726d07f1c871d /test | |
parent | b55a2fb3b0d67b346bac871737b862f16e5a6447 (diff) | |
download | go-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.go | 16 |
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 |