Source file src/simd/archsimd/internal/simd_test/slicepart_boundary_wider_test.go

     1  // Copyright 2026 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  
     5  //go:build goexperiment.simd && amd64 && linux
     6  
     7  package simd_test
     8  
     9  import (
    10  	"simd/archsimd"
    11  	"testing"
    12  )
    13  
    14  // See slicepart_boundary_128_test.go for testLoadPartPageBoundary.
    15  
    16  func TestLoadPartPageBoundary256(t *testing.T) {
    17  	if !archsimd.X86.AVX2() {
    18  		t.Skip("Test requires X86.AVX2, not available on this hardware")
    19  	}
    20  	testLoadPartPageBoundary(t, archsimd.LoadInt8x32Part)
    21  	testLoadPartPageBoundary(t, archsimd.LoadInt16x16Part)
    22  	testLoadPartPageBoundary(t, archsimd.LoadInt32x8Part)
    23  	testLoadPartPageBoundary(t, archsimd.LoadInt64x4Part)
    24  	testLoadPartPageBoundary(t, archsimd.LoadUint8x32Part)
    25  	testLoadPartPageBoundary(t, archsimd.LoadUint16x16Part)
    26  	testLoadPartPageBoundary(t, archsimd.LoadUint32x8Part)
    27  	testLoadPartPageBoundary(t, archsimd.LoadUint64x4Part)
    28  	testLoadPartPageBoundary(t, archsimd.LoadFloat32x8Part)
    29  	testLoadPartPageBoundary(t, archsimd.LoadFloat64x4Part)
    30  }
    31  
    32  func TestLoadPartPageBoundary512(t *testing.T) {
    33  	if !archsimd.X86.AVX512() {
    34  		t.Skip("Test requires X86.AVX512, not available on this hardware")
    35  	}
    36  	testLoadPartPageBoundary(t, archsimd.LoadInt8x64Part)
    37  	testLoadPartPageBoundary(t, archsimd.LoadInt16x32Part)
    38  	testLoadPartPageBoundary(t, archsimd.LoadInt32x16Part)
    39  	testLoadPartPageBoundary(t, archsimd.LoadInt64x8Part)
    40  	testLoadPartPageBoundary(t, archsimd.LoadUint8x64Part)
    41  	testLoadPartPageBoundary(t, archsimd.LoadUint16x32Part)
    42  	testLoadPartPageBoundary(t, archsimd.LoadUint32x16Part)
    43  	testLoadPartPageBoundary(t, archsimd.LoadUint64x8Part)
    44  	testLoadPartPageBoundary(t, archsimd.LoadFloat32x16Part)
    45  	testLoadPartPageBoundary(t, archsimd.LoadFloat64x8Part)
    46  }
    47  

View as plain text