[PATCH] D83101: [Scalarizer] ExtractElement handling w/ constant extract index

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 6 13:09:38 PDT 2020


lebedev.ri added a comment.

In D83101#2133062 <https://reviews.llvm.org/D83101#2133062>, @foad wrote:

> @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!
>


Thanks for test case, looking.


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