]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: improve GOAMD64=v1 violation test
authorKeith Randall <khr@golang.org>
Fri, 8 Jul 2022 16:41:14 +0000 (09:41 -0700)
committerKeith Randall <khr@google.com>
Wed, 20 Jul 2022 16:45:46 +0000 (16:45 +0000)
Add more opcodes that are only available in >v1 modes.

This test will now correctly detect the regression in -race mode
for #53743.

Change-Id: Icfbb1384e4333d7b4ff167c9ebcb6f4c7aeb6134
Reviewed-on: https://go-review.googlesource.com/c/go/+/416477
Reviewed-by: Than McIntosh <thanm@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
src/cmd/compile/internal/amd64/versions_test.go

index 2ac6e95c91a5c877111668f6caed1ee99f9055c5..b6411a1cb0d2fe8f853d35608fdd300f30cfcad4 100644 (file)
@@ -242,12 +242,31 @@ var featureToOpcodes = map[string][]string{
        // go tool objdump doesn't include a [QL] on popcnt instructions, until CL 351889
        // native objdump doesn't include [QL] on linux.
        "popcnt": {"popcntq", "popcntl", "popcnt"},
-       "bmi1":   {"andnq", "andnl", "andn", "blsiq", "blsil", "blsi", "blsmskq", "blsmskl", "blsmsk", "blsrq", "blsrl", "blsr", "tzcntq", "tzcntl", "tzcnt"},
-       "bmi2":   {"sarxq", "sarxl", "sarx", "shlxq", "shlxl", "shlx", "shrxq", "shrxl", "shrx"},
-       "sse41":  {"roundsd"},
-       "fma":    {"vfmadd231sd"},
-       "movbe":  {"movbeqq", "movbeq", "movbell", "movbel", "movbe"},
-       "lzcnt":  {"lzcntq", "lzcntl", "lzcnt"},
+       "bmi1": {
+               "andnq", "andnl", "andn",
+               "blsiq", "blsil", "blsi",
+               "blsmskq", "blsmskl", "blsmsk",
+               "blsrq", "blsrl", "blsr",
+               "tzcntq", "tzcntl", "tzcnt",
+       },
+       "bmi2": {
+               "sarxq", "sarxl", "sarx",
+               "shlxq", "shlxl", "shlx",
+               "shrxq", "shrxl", "shrx",
+       },
+       "sse41": {
+               "roundsd",
+               "pinsrq", "pinsrl", "pinsrd", "pinsrb", "pinsr",
+               "pextrq", "pextrl", "pextrd", "pextrb", "pextr",
+               "pminsb", "pminsd", "pminuw", "pminud", // Note: ub and sw are ok.
+               "pmaxsb", "pmaxsd", "pmaxuw", "pmaxud",
+               "pmovzxbw", "pmovzxbd", "pmovzxbq", "pmovzxwd", "pmovzxwq", "pmovzxdq",
+               "pmovsxbw", "pmovsxbd", "pmovsxbq", "pmovsxwd", "pmovsxwq", "pmovsxdq",
+               "pblendvb",
+       },
+       "fma":   {"vfmadd231sd"},
+       "movbe": {"movbeqq", "movbeq", "movbell", "movbel", "movbe"},
+       "lzcnt": {"lzcntq", "lzcntl", "lzcnt"},
 }
 
 // Test to use POPCNT instruction, if available