| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py | |
| ; This test ensures that the simplifycfg pass continues to constant fold | |
| ; terminator instructions. | |
| ; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s | |
| define i32 @test(i32 %A, i32 %B) { | |
| ; CHECK-LABEL: @test( | |
| ; CHECK-NEXT: J: | |
| ; CHECK-NEXT: [[C:%.*]] = add i32 [[A:%.*]], 12 | |
| ; CHECK-NEXT: [[D:%.*]] = add i32 [[C]], [[B:%.*]] | |
| ; CHECK-NEXT: ret i32 [[D]] | |
| ; | |
| J: | |
| %C = add i32 %A, 12 ; <i32> [#uses=2] | |
| br i1 true, label %L, label %K | |
| L: ; preds = %J | |
| %D = add i32 %C, %B ; <i32> [#uses=1] | |
| ret i32 %D | |
| K: ; preds = %J | |
| %E = add i32 %C, %B ; <i32> [#uses=1] | |
| ret i32 %E | |
| } | |