"Varying" datatypes demonstrates that this author is aware of ISPC. Which is good! ISPC is a very nice environment, and I'd love to see a C++ version of it!
I haven't worked with Sierra yet, but the intro looks like they "get it". Its important to make If/Else statements compile down into mask instructions (or AVX perm instructions) automatically. That way CPU SIMD can actually compete against GPU SIMD.
Microsoft seems to consider C++AMP has reached its exploratory goal and new language features should be achieved via the ongoing Parallelism TS instead.
I haven't worked with Sierra yet, but the intro looks like they "get it". Its important to make If/Else statements compile down into mask instructions (or AVX perm instructions) automatically. That way CPU SIMD can actually compete against GPU SIMD.
I'm not sure if a new data-type is the best way of doing things, but it seems workable. I really liked Microsoft's C++ AMP which built everything out of templates though: https://download.microsoft.com/download/4/0/E/40EA02D8-23A7-...
C++ AMP was more for GPU programming, not for AVX. But still, its got the right idea... and I think it had an AVX-fallback mode.