| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 7 |
| ; RUN: opt < %s -S | FileCheck %s |
| |
| ; Test whether UTC checks empty lines instead of skipping them. |
| define i32 @test(i32 %x) { |
| ; CHECK-LABEL: define i32 @test( |
| ; CHECK-SAME: i32 [[X:%.*]]) { |
| ; CHECK-NEXT: [[ENTRY:.*:]] |
| ; CHECK-NEXT: br label %[[BLOCK1:.*]] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[BLOCK1]]: |
| ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[X]], 0 |
| ; CHECK-NEXT: br i1 [[CMP]], label %[[BLOCK2:.*]], label %[[EXIT1:.*]] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[BLOCK2]]: |
| ; CHECK-NEXT: br i1 [[CMP]], label %[[BLOCK3:.*]], label %[[EXIT2:.*]] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[BLOCK3]]: |
| ; CHECK-NEXT: br i1 [[CMP]], label %[[EXIT3:.*]], label %[[EXIT4:.*]] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[EXIT1]]: |
| ; CHECK-NEXT: ret i32 0 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[EXIT2]]: |
| ; CHECK-NEXT: ret i32 [[X]] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[EXIT3]]: |
| ; CHECK-NEXT: ret i32 [[X]] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[EXIT4]]: |
| ; CHECK-NEXT: ret i32 [[X]] |
| ; |
| entry: |
| br label %block1 |
| |
| block1: |
| %cmp = icmp eq i32 %x, 0 |
| br i1 %cmp, label %block2, label %exit1 |
| |
| block2: |
| br i1 %cmp, label %block3, label %exit2 |
| |
| block3: |
| br i1 %cmp, label %exit3, label %exit4 |
| |
| exit1: |
| ret i32 0 |
| |
| exit2: |
| ret i32 %x |
| |
| exit3: |
| ret i32 %x |
| |
| exit4: |
| ret i32 %x |
| } |