hi dan,

> I'm thinking about implementing an ARM NEON flavour for nova-simd. I
> have some questions...

great!

> In common/include/nova-simd/vec.hpp, vec_generic.hpp is always
> included, even if SSE - so is there a kind of override semantics going
> on here, i.e. anything not implemented in vec_sse.hpp falls back to
> the vec_generic implementation?
> 
> Why does vec_generic say
>   template <typename float_type>
>   struct vec
> when vec_sse says
>   template <>
>   struct vec<float>
> ?

it is template specialization. the templated class is the generic version, but 
we can implement specialized versions for certain types.

> Why "typedef __m128 internal_vector_type"? I don't see the latter used
> anywhere.

i was thinking to use it for some generic implementations, for now, i haven't 
used it ...


> If implementing a NEON version, can I implement any subset of
> optimised instructions that I choose, or are there risks of breakage?
> (At the moment I'm not worrying whether the implementation is optimal
> or not, just whether I can implement it incrementally without
> jeopardising correctness.) For example, I might start with neon
> versions of load() store() get() set() before getting on to the actual
> manipulations after that.

i think, you will need to implement the full interface to run the testsuite. 
but for the first, you can probably use the generic version and replace
    float_type data_[size];
with the data type, that specifies a float register.


> It looks to me like I don't need to worry about leftovers (e.g. the
> last 3 floats in an array of size 19), they're handled elsewhere and I
> just need to deal with my chosen-sized chunks (i.e. 128-bit). That's
> correct?

there are non-simd versions of all algorithms. the selection of the code is 
done in the ugen code, depending on the control rate ...

cheers, tim

-- 
[email protected]
http://tim.klingt.org

You don't have to call it music if the term shocks you.
  John Cage

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
nova-dev mailing list
[email protected]
http://klingt.org/cgi-bin/mailman/listinfo/nova-dev
http://tim.klingt.org/nova

Reply via email to