Open
Description
__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
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