| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-attributes |
| ; RUN: opt -O2 -S < %s | FileCheck %s |
| |
| declare void @g() |
| |
| define internal i32 @h1(i32 %a, i32 %b) { |
| %c = add i32 %a, %b |
| %c2 = add i32 2, %c |
| ret i32 %c2 |
| } |
| |
| define internal i32 @h2(i32 %a, i32 %b) { |
| %c = add i32 %a, %b |
| %c2 = add i32 2, %c |
| ret i32 %c2 |
| } |
| |
| define void @f(i32 %a, i32 %b) noinline { |
| ; CHECK: Function Attrs: mustprogress nofree noinline norecurse nosync nounwind willreturn memory(none) |
| ; CHECK-LABEL: @f( |
| ; CHECK-NEXT: end: |
| ; CHECK-NEXT: ret void |
| ; |
| %c = call i32 @h1(i32 %a, i32 %b) |
| %d = call i32 @h2(i32 %a, i32 %b) |
| %i = icmp eq i32 %c, %d |
| br i1 %i, label %end, label %dead |
| dead: |
| call void @g() |
| br label %end |
| end: |
| ret void |
| } |