[PATCH] D83101: [Scalarizer] ExtractElement handling w/ constant extract index
Jay Foad via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 6 12:54:04 PDT 2020
foad added a comment.
@lebedev.ri this is causing assertion failures and verification failures in some of our downstream tests. Here's a test case:
$ cat reduced.ll
define void @main(<3 x i32> inreg %w) {
entry:
%a = extractelement <3 x i32> undef, i32 0
%b = extractelement <3 x i32> undef, i32 1
%x = extractelement <3 x i32> %w, i32 2
%y = insertelement <4 x i32> undef, i32 %x, i32 2
%z = insertelement <4 x i32> %y, i32 undef, i32 3
store <4 x i32> %z, <4 x i32> addrspace(7)* undef, align 16
ret void
}
$ ~/llvm-debug/bin/opt -scalarizer -o /dev/null reduced.ll
Instruction does not dominate all uses!
<badref> = extractelement [145938144 x half] <badref>, i32 undef
%z.upto2 = insertelement <4 x i32> undef, i32 <badref>, i32 2
in function main
LLVM ERROR: Broken function found, compilation aborted!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83101/new/
https://reviews.llvm.org/D83101
More information about the llvm-commits
mailing list