Commit 376c4cea authored by Keith Randall's avatar Keith Randall Committed by Keith Randall

cmd/vet: add test for loading complex values with a single instruction

Actual fix will be submitted to x/tools and vendored.
This is just an end-to-end test for vet after that is done.

Update #35264

Change-Id: I1a63f607e7cfa7aafee23c2c081086c276d3c38c
Reviewed-on: https://go-review.googlesource.com/c/go/+/204538
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: default avatarAlan Donovan <adonovan@google.com>
parent b3bd7ab3
...@@ -7,3 +7,5 @@ ...@@ -7,3 +7,5 @@
package testdata package testdata
func arg1(x int8, y uint8) func arg1(x int8, y uint8)
func cpx(x complex64, y complex128)
...@@ -6,3 +6,18 @@ ...@@ -6,3 +6,18 @@
TEXT ·arg1(SB),0,$0-2 TEXT ·arg1(SB),0,$0-2
MOVW x+0(FP), AX // ERROR "\[amd64\] arg1: invalid MOVW of x\+0\(FP\); int8 is 1-byte value" MOVW x+0(FP), AX // ERROR "\[amd64\] arg1: invalid MOVW of x\+0\(FP\); int8 is 1-byte value"
TEXT ·cpx(SB),0,$0-24
// These are ok
MOVSS x_real+0(FP), X0
MOVSS x_imag+4(FP), X0
MOVSD y_real+8(FP), X0
MOVSD y_imag+16(FP), X0
// Loading both parts of a complex is ok: see issue 35264.
MOVSD x+0(FP), X0
MOVO y+8(FP), X0
MOVOU y+8(FP), X0
// These are not ok.
MOVO x+0(FP), X0 // ERROR "\[amd64\] cpx: invalid MOVO of x\+0\(FP\); complex64 is 8-byte value containing x_real\+0\(FP\) and x_imag\+4\(FP\)"
MOVSD y+8(FP), X0 // ERROR "\[amd64\] cpx: invalid MOVSD of y\+8\(FP\); complex128 is 16-byte value containing y_real\+8\(FP\) and y_imag\+16\(FP\)"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment