Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SimplifyCFG / unreachable_assume.ll
blob7fa1b0f6e1404ff2239098593bea09ee908dd9c4
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt %s -passes=simplifycfg,instcombine -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
4 define i32 @assume1(i32 %p) {
5 ; CHECK-LABEL: @assume1(
6 ; CHECK-NEXT:  entry:
7 ; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[P:%.*]], 0
8 ; CHECK-NEXT:    call void @llvm.assume(i1 [[CMP]])
9 ; CHECK-NEXT:    ret i32 [[P]]
11 entry:
12   %cmp = icmp sle i32 %p, 0
13   br i1 %cmp, label %if.then, label %if.end
15 if.then:
16   unreachable
18 if.end:
19   %call = call i32 @abs(i32 %p)
20   ret i32 %call
24 define i32 @assume2(i32 %p) {
25 ; CHECK-LABEL: @assume2(
26 ; CHECK-NEXT:  entry:
27 ; CHECK-NEXT:    [[CMP:%.*]] = icmp sgt i32 [[P:%.*]], 0
28 ; CHECK-NEXT:    call void @llvm.assume(i1 [[CMP]])
29 ; CHECK-NEXT:    ret i32 [[P]]
31 entry:
32   %cmp = icmp sgt i32 %p, 0
33   br i1 %cmp, label %if.then, label %if.else
35 if.then:
36   br label %if.end
38 if.else:
39   unreachable
41 if.end:
42   %call = call i32 @abs(i32 %p)
43   ret i32 %call
46 declare i32 @abs(i32)