main.go 452 B

12345678910111213141516171819202122232425262728293031
  1. package main
  2. import (
  3. "flow"
  4. "log"
  5. vecasm "github.com/gohxs/vec-benchmark/asm"
  6. )
  7. func vecmul(a, b []float32) []float32 {
  8. sz := len(a)
  9. if sz > len(b) {
  10. sz = len(b)
  11. }
  12. out := make([]float32, sz)
  13. vecasm.VecMulf32x8(a, b, out)
  14. return out
  15. }
  16. func main() {
  17. flow.Register("vecmul", vecmul)
  18. f := flow.New("f1")
  19. f.SetOutput(f.Op("vecmul", []float32{1, 2, 3}, []float32{4, 3, 2}))
  20. log.Println("res:", f.Run())
  21. log.Println("Recurse:", f)
  22. }