Martin Möhrmann | f045ddc | 2018-01-26 12:14:27 +0100 | [diff] [blame] | 1 | // Copyright 2018 The Go Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style |
| 3 | // license that can be found in the LICENSE file. |
| 4 | |
Russ Cox | d4b2638 | 2021-02-19 18:35:10 -0500 | [diff] [blame] | 5 | //go:build 386 || amd64 |
Martin Möhrmann | f045ddc | 2018-01-26 12:14:27 +0100 | [diff] [blame] | 6 | |
| 7 | package cpu_test |
| 8 | |
| 9 | import ( |
| 10 | . "internal/cpu" |
Brad Fitzpatrick | 4633b2d | 2021-11-01 20:25:48 -0700 | [diff] [blame] | 11 | "internal/godebug" |
Martin Möhrmann | f045ddc | 2018-01-26 12:14:27 +0100 | [diff] [blame] | 12 | "testing" |
| 13 | ) |
| 14 | |
Martin Möhrmann | f045ddc | 2018-01-26 12:14:27 +0100 | [diff] [blame] | 15 | func TestX86ifAVX2hasAVX(t *testing.T) { |
| 16 | if X86.HasAVX2 && !X86.HasAVX { |
| 17 | t.Fatalf("HasAVX expected true when HasAVX2 is true, got false") |
| 18 | } |
| 19 | } |
| 20 | |
Martin Möhrmann | 3e0227f | 2018-10-12 19:17:21 +0200 | [diff] [blame] | 21 | func TestDisableSSE3(t *testing.T) { |
Keith Randall | 9b112ce | 2022-03-15 08:56:07 -0700 | [diff] [blame] | 22 | if GetGOAMD64level() > 1 { |
| 23 | t.Skip("skipping test: can't run on GOAMD64>v1 machines") |
| 24 | } |
Martin Möhrmann | 2de5390 | 2018-11-14 20:48:40 +0100 | [diff] [blame] | 25 | runDebugOptionsTest(t, "TestSSE3DebugOption", "cpu.sse3=off") |
Martin Möhrmann | 3e0227f | 2018-10-12 19:17:21 +0200 | [diff] [blame] | 26 | } |
| 27 | |
| 28 | func TestSSE3DebugOption(t *testing.T) { |
| 29 | MustHaveDebugOptionsSupport(t) |
| 30 | |
Brad Fitzpatrick | 4633b2d | 2021-11-01 20:25:48 -0700 | [diff] [blame] | 31 | if godebug.Get("cpu.sse3") != "off" { |
Martin Möhrmann | 2de5390 | 2018-11-14 20:48:40 +0100 | [diff] [blame] | 32 | t.Skipf("skipping test: GODEBUG=cpu.sse3=off not set") |
Martin Möhrmann | 3e0227f | 2018-10-12 19:17:21 +0200 | [diff] [blame] | 33 | } |
| 34 | |
| 35 | want := false |
| 36 | if got := X86.HasSSE3; got != want { |
| 37 | t.Errorf("X86.HasSSE3 expected %v, got %v", want, got) |
| 38 | } |
| 39 | } |