From 21a06af2ff4e126a2ceaf46753a29477baa35152 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Sat, 25 Jan 2025 22:06:26 +0000 Subject: [PATCH] Extend description of GOAMD=v4 This code is gated on GOAMD=v4, so we should include that case in the wiki. https://github.com/golang/go/blob/608acff8479640b00c85371d91280b64f5ec9594/src/cmd/compile/internal/ssagen/intrinsics.go#L1339-L1340 --- MinimumRequirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MinimumRequirements.md b/MinimumRequirements.md index a527e61d..14122ead 100644 --- a/MinimumRequirements.md +++ b/MinimumRequirements.md @@ -86,7 +86,7 @@ Each level differs in the set of x86 instructions that the compiler can include * GOAMD64=v1 (default): The baseline. Exclusively generates instructions that all 64-bit x86 processors can execute. * GOAMD64=v2: all v1 instructions, plus CMPXCHG16B, LAHF, SAHF, POPCNT, SSE3, SSE4.1, SSE4.2, SSSE3. * GOAMD64=v3: all v2 instructions, plus AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE. -* GOAMD64=v4: all v3 instructions, plus AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL. +* GOAMD64=v4: all v3 instructions, plus AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL, and VPBROADCASTB with a general-purpose register operand. Setting, for example, GOAMD64=v3, will allow the Go compiler to use AVX2 instructions in the generated binaries (which may improve performance in some cases); but these binaries will not run on older x86 processors that don't support AVX2.