// Copyright 2026 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 specgen import ( "simd/archsimd/_gen/specgen/specexpr" "testing" ) func TestIndex(t *testing.T) { vecType := specexpr.Vector{Elem: specexpr.Basic{Base: "int", Bits: 32}, Width: specexpr.Int(128)} f1 := &Func{ Name: "Add", Recv: Arg{Name: "x", Type: vecType}, } f2 := &Func{ Name: "GlobalFunc", } idx := NewIndex([]*Func{f1, f2}) if idx.Len() != 2 { t.Fatalf("expected Len 2, got %d", idx.Len()) } if got := idx.Lookup("Int32x4", "Add"); got != f1 { t.Errorf("Lookup(Int32x4, Add) = %v, want %v", got, f1) } if got := idx.Lookup("", "GlobalFunc"); got != f2 { t.Errorf("Lookup('', GlobalFunc) = %v, want %v", got, f2) } if got := idx.Lookup("Int32x4", "Missing"); got != nil { t.Errorf("Lookup(Int32x4, Missing) = %v, want nil", got) } }