blob: 35d041bccbeaf2ca032e2f92ebe4a28cff69b4c2 [file] [log] [blame]
// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package cpu_test
import (
"internal/cpu"
"runtime"
"testing"
)
func TestAMD64minimalFeatures(t *testing.T) {
if runtime.GOARCH == "amd64" {
if !cpu.X86.HasSSE2 {
t.Fatalf("HasSSE2 expected true, got false")
}
}
}
func TestAVX2hasAVX(t *testing.T) {
if runtime.GOARCH == "amd64" {
if cpu.X86.HasAVX2 && !cpu.X86.HasAVX {
t.Fatalf("HasAVX expected true, got false")
}
}
}
func TestPPC64minimalFeatures(t *testing.T) {
if runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le" {
if !cpu.PPC64.IsPOWER8 {
t.Fatalf("IsPOWER8 expected true, got false")
}
if !cpu.PPC64.HasVMX {
t.Fatalf("HasVMX expected true, got false")
}
if !cpu.PPC64.HasDFP {
t.Fatalf("HasDFP expected true, got false")
}
if !cpu.PPC64.HasVSX {
t.Fatalf("HasVSX expected true, got false")
}
if !cpu.PPC64.HasISEL {
t.Fatalf("HasISEL expected true, got false")
}
if !cpu.PPC64.HasVCRYPTO {
t.Fatalf("HasVCRYPTO expected true, got false")
}
}
}
func TestARM64minimalFeatures(t *testing.T) {
if runtime.GOARCH != "arm64" {
return
}
switch runtime.GOOS {
case "linux", "android":
default:
t.Skipf("%s/arm64 is not supported", runtime.GOOS)
}
if !cpu.ARM64.HasASIMD {
t.Fatalf("HasASIMD expected true, got false")
}
if !cpu.ARM64.HasFP {
t.Fatalf("HasFP expected true, got false")
}
}