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