core.simd woes
F i L
witte2008 at gmail.com
Tue Oct 9 11:56:07 PDT 2012
On Tuesday, 9 October 2012 at 19:18:35 UTC, F i L wrote:
> Manu wrote:
>> std.simd already does have a mammoth mess of static if(arch &
>> compiler).
>> The thing about std.simd is that it's designed to be portable,
>> so it
>> doesn't make sense to expose the low-level sse intrinsics
>> directly there.
>
> Well, that's not really what I was suggesting. I was saying
> maybe eventually matching the agnostic gdc builtins in a
> separate module:
>
> // core.builtins
>
> import core.simd;
>
> version (GNU)
> import gcc.builtins;
>
> void madd(ref float4 r, float4 a, float4 b)
> {
> version (X86_OR_X64)
> {
> version (DigitalMars)
> {
> r = __simd(XMM.PMADDWD, a, b);
> }
> else version (GNU)
> {
> __builtin_ia32_fmaddpd(r, a, b)
> }
> }
> }
>
> then std.simd can just use a single function (madd) and forget
> about all the compiler-specific switches. This may be more work
> than it's worth and std.simd should just contain all the
> platform specific switches... idk, i'm just throwing out ideas.
You know... now that I think about it, this is pretty much
EXACTLY what std.simd IS already... lol, forget all of that,
please.
More information about the Digitalmars-d
mailing list