Issue 140234
Summary [X86[ Failure to merge shuffles of __m128d[2] back into single __m256d load
Labels backend:X86
Assignees RKSimon
Reporter RKSimon
    ```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
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to