Issue |
136750
|
Summary |
[AVX-512] Fused-load doesn't happen when vector doesn't need to be same size as operation argument
|
Labels |
new issue
|
Assignees |
|
Reporter |
Validark
|
[Godbolt](https://llvm.godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,selection:(endColumn:85,endLineNumber:3,positionColumn:85,positionLineNumber:3,selectionStartColumn:85,selectionStartLineNumber:3,startColumn:85,startLineNumber:3),source:'define+dso_local+zeroext+i1+@greaterThan1(%3C8+x+i64%3E+%250)+local_unnamed_addr+%7B%0AEntry:%0A++%251+%3D+icmp+ugt+%3C8+x+i64%3E+%250,+%3Ci64+1,+i64+0,+i64+0,+i64+0,+i64+0,+i64+0,+i64+0,+i64+0%3E%0A++%252+%3D+bitcast+%3C8+x+i1%3E+%251+to+i8%0A++%253+%3D+icmp+ne+i8+%252,+0%0A++ret+i1+%253%0A%7D%0A'),l:'5',n:'0',o:'LLVM+IR+source+%231',t:'0')),k:49.178082191780824,l:'4',n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:irclangtrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:1,lang:llvm,libs:!(),options:'-O3+-march%3Dznver5',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:'5',n:'0',o:'+clang+(trunk)+(Editor+%231)',t:'0')),k:50.82191780821918,l:'4',m:100,n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4)
```llvm
define dso_local zeroext i1 @greaterThan1(<8 x i64> %0) local_unnamed_addr {
Entry:
%1 = icmp ugt <8 x i64> %0, <i64 1, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0>
%2 = bitcast <8 x i1> %1 to i8
%3 = icmp ne i8 %2, 0
ret i1 %3
}
```
Compiled with `-O3 -march=znver5`:
```asm
.LCPI0_1:
.byte 1
.byte 0
greaterThan1:
.LgreaterThan1$local:
vpmovsxbq xmm1, word ptr [rip + .LCPI0_1]
vpcmpnleuq k0, zmm0, zmm1
kortestb k0, k0
setne al
vzeroupper
ret
```
Should be:
```asm
.LCPI0_0:
.quad 1
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
.quad 0
greaterThan1:
.LgreaterThan1$local:
vpcmpnleuq k0, zmm0, zmmword ptr [rip + .LCPI0_0]
kortestb k0, k0
setne al
vzeroupper
ret
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs