[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / Transforms / GVNSink / operand-mismatch.ll
blob2ca45cb895b37de43c3aee145fcb3c8966618ee7
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -gvn-sink -S < %s | FileCheck %s
4 ; This would assert/crash because the calls have different numbers of operands:
5 ; https://bugs.llvm.org/show_bug.cgi?id=42346
7 %vec = type opaque
8 %map = type { i32 }
10 define void @PR42346() {
11 ; CHECK-LABEL: @PR42346(
12 ; CHECK-NEXT:  entry:
13 ; CHECK-NEXT:    [[CALL1:%.*]] = call %vec* @bar(%map* undef, %vec* (%map*)* undef)
14 ; CHECK-NEXT:    br label [[EXIT:%.*]]
15 ; CHECK:       if:
16 ; CHECK-NEXT:    [[CALL2:%.*]] = call %vec* @baz(%map* undef)
17 ; CHECK-NEXT:    br label [[EXIT]]
18 ; CHECK:       exit:
19 ; CHECK-NEXT:    ret void
21 entry:
22   %call1 = call %vec* @bar(%map* undef, %vec* (%map*)* undef)
23   br label %exit
25 if:
26   %call2 = call %vec* @baz(%map* undef)
27   br label %exit
29 exit:
30   ret void
33 declare %vec* @bar(%map*, %vec* (%map*)*)
34 declare %vec* @baz(%map*)