[X86][Codegen] Adjacent VPTERNLOG is not optimized
Open
backend:X86
llvm:codegen
missed-optimization
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
https://godbolt.org/z/qMsG4fxzK
```cpp
typedef unsigned long long v4di __attribute((vector_size(32)));
v4di foo1(v4di a, v4di b, v4di c)
{
return (a & b) | ((a ^ b) & c);
}
```
Clang Trunk
```asm
vpternlogq ymm2, ymm1, ymm0, 96
vpternlogq ymm0, ymm1, ymm2, 234
ret
```
GCC
```asm
vpternlogq ymm0, ymm1, ymm2, 232
ret
```
We have opportunity to optimize.
Contributor guide
Assessment
This issue has not been assessed yet.