add shuffle TODO analyse later
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 18 Sep 2019 05:32:38 +0000 (06:32 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 18 Sep 2019 05:32:44 +0000 (06:32 +0100)
simple_v_extension/specification/mv.x.rst

index 1c81b7ca249c833dbf0db9e7ae7fa39639a9fa96..078e5fe23c9e58746149b30e398a8c88460bc1c7 100644 (file)
@@ -57,3 +57,17 @@ VBLOCK context?
 
 additional idea: a VBLOCK context that says that if a given register is used, it indicates that the
 register is to be "swizzled", and the VBLOCK swizzle context contains the swizzling to be carried out.
+
+mm_shuffle_ps?
+==============
+
+__m128 _mm_shuffle_ps(__m128 lo,__m128 hi,
+       _MM_SHUFFLE(hi3,hi2,lo1,lo0))
+Interleave inputs into low 2 floats and high 2 floats of output. Basically
+   out[0]=lo[lo0];
+   out[1]=lo[lo1];
+   out[2]=hi[hi2];
+   out[3]=hi[hi3];
+
+For example, _mm_shuffle_ps(a,a,_MM_SHUFFLE(i,i,i,i)) copies the float
+a[i] into all 4 output floats.