From: Luke Kenneth Casson Leighton Date: Wed, 18 Sep 2019 05:32:38 +0000 (+0100) Subject: add shuffle TODO analyse later X-Git-Tag: convert-csv-opcode-to-binary~4036 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dd9a5b28b1464d4e67e1daadef4e0e24d534934b;p=libreriscv.git add shuffle TODO analyse later --- diff --git a/simple_v_extension/specification/mv.x.rst b/simple_v_extension/specification/mv.x.rst index 1c81b7ca2..078e5fe23 100644 --- a/simple_v_extension/specification/mv.x.rst +++ b/simple_v_extension/specification/mv.x.rst @@ -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.