```cpp __m256d gg(__m128d x[2], __m128d y[2]) { return (__m256d) {x[0][1], y[0][0], x[1][1], y[1][0]}; } ``` clang -march=avx ```asm gg: # @gg # %bb.0: # %entry vmovapd (%rsi), %xmm0 vmovupd (%rdi), %ymm1 vmovddup %ymm0, %ymm0 # ymm0 = ymm0[0,0,2,2] vinsertf128 $1, 16(%rsi), %ymm0, %ymm0 vshufpd $7, %ymm0, %ymm1, %ymm0 # ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[2] retq # -- End function ```