[IRBuilder] Add Align argument for CreateMaskedExpandLoad and CreateMaskedCompressSto...
[llvm-project.git] / llvm / test / Transforms / SCCP / return-constant.ll
blob8b361ea851c1ea31f15b4bb1dfe03759c32dc647
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -passes=ipsccp,instcombine -S | FileCheck %s
4 define internal i32 @foo(i1 %C) {
5 ; CHECK-LABEL: @foo(
6 ; CHECK-NEXT:    br i1 [[C:%.*]], label [[T:%.*]], label [[F:%.*]]
7 ; CHECK:       T:
8 ; CHECK-NEXT:    ret i32 poison
9 ; CHECK:       F:
10 ; CHECK-NEXT:    ret i32 poison
12   br i1 %C, label %T, label %F
14 T:              ; preds = %0
15   ret i32 52
17 F:              ; preds = %0
18   ret i32 52
21 define i1 @caller(i1 %C) {
22 ; CHECK-LABEL: @caller(
23 ; CHECK-NEXT:    [[X:%.*]] = call i32 @foo(i1 [[C:%.*]])
24 ; CHECK-NEXT:    ret i1 true
26   %X = call i32 @foo( i1 %C )             ; <i32> [#uses=1]
27   %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
28   ret i1 %Y
31 define i1 @invokecaller(i1 %C) personality ptr @__gxx_personality_v0 {
32 ; CHECK-LABEL: @invokecaller(
33 ; CHECK-NEXT:    [[X:%.*]] = invoke i32 @foo(i1 [[C:%.*]])
34 ; CHECK-NEXT:            to label [[OK:%.*]] unwind label [[FAIL:%.*]]
35 ; CHECK:       OK:
36 ; CHECK-NEXT:    ret i1 true
37 ; CHECK:       FAIL:
38 ; CHECK-NEXT:    [[EXN:%.*]] = landingpad { ptr, i32 }
39 ; CHECK-NEXT:            cleanup
40 ; CHECK-NEXT:    ret i1 false
42   %X = invoke i32 @foo( i1 %C ) to label %OK unwind label %FAIL             ; <i32> [#uses=1]
43 OK:
44   %Y = icmp ne i32 %X, 0          ; <i1> [#uses=1]
45   ret i1 %Y
46 FAIL:
47   %exn = landingpad {ptr, i32}
48   cleanup
49   ret i1 false
52 declare i32 @__gxx_personality_v0(...)