xref: /llvm-project/llvm/test/Transforms/InstCombine/pr59613.ll (revision 3e992d81afc3925a8685eb15f794dd4a6ba3e97e)
1e51b7bffSRoman Lebedev; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2e51b7bffSRoman Lebedev; RUN: opt < %s -passes=instcombine -S | FileCheck %s
3e51b7bffSRoman Lebedev
4e51b7bffSRoman Lebedev; This used to crash, depending on the particular worklist iteration order.
5e51b7bffSRoman Lebedevdefine void @pr59613(<6 x i16> %0) {
6e51b7bffSRoman Lebedev; CHECK-LABEL: @pr59613(
7*3e992d81SDhruv Chawla; CHECK-NEXT:    store <6 x i16> poison, ptr null, align 16
8e51b7bffSRoman Lebedev; CHECK-NEXT:    ret void
9e51b7bffSRoman Lebedev;
10e51b7bffSRoman Lebedev  %cmp1 = icmp ne <6 x i16> %0, zeroinitializer
11e51b7bffSRoman Lebedev  %or = or <6 x i1> <i1 true, i1 false, i1 false, i1 false, i1 undef, i1 undef>, %cmp1
12e51b7bffSRoman Lebedev  %sext = sext <6 x i1> %or to <6 x i16>
13e51b7bffSRoman Lebedev  %not = xor <6 x i16> %sext, <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
14e51b7bffSRoman Lebedev  store <6 x i16> %not, ptr null, align 16
15e51b7bffSRoman Lebedev  ret void
16e51b7bffSRoman Lebedev}
17