What version of Go are you using (go version
)?
$ go version (latest) go version devel go1.20-e8894bd8fc Mon Sep 5 11:30:31 2022 +0800 linux/amd64
Does this issue reproduce with the latest release?
YES
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env Not related.
What did you do?
$ go vet
#include "textflag.h"
// func foo() [2]uint64
TEXT ·foo(SB),NOSPLIT,$0-16
MOVOU X1, ret+0(FP)
RET
What did you expect to see?
Nothing happens.
What did you see instead?
./x.s:5:1: [amd64] foo: invalid MOVOU of ret+0(FP); [2]uint64 is 16-byte value
The size of MOVOU is 16 bytes (https://www.felixcloutier.com/x86/movdqu:vmovdqu8:vmovdqu16:vmovdqu32:vmovdqu64), it is the same as the [2]uint64. So I guess it may be a false positive? asmdecl code: https://github.com/golang/tools/blob/master/go/analysis/passes/asmdecl/asmdecl.go#L822
Comment From: randall77
Hmm, I would have expected this to be fixed with https://go-review.googlesource.com/c/tools/+/204537/ . At least, if we replace [2]uint64
with [2]float64
(which also reports an error).
Comment From: mknyszek
CC @golang/tools-team ?
Comment From: findleyr
CC @adonovan