| ; 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 |
| } |
| |