| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 7 |
| ; RUN: opt < %s -S | FileCheck %s |
| |
| ; Test whether the UTC format the switch-cases correctly, which requires TWO extra spaces. |
| |
| define i8 @testi8(i8 %x) { |
| ; CHECK-LABEL: define i8 @testi8( |
| ; CHECK-SAME: i8 [[X:%.*]]) { |
| ; CHECK-NEXT: switch i8 [[X]], label %[[DEFAULT:.*]] [ |
| ; CHECK-NEXT: i8 0, label %[[CASE1:.*]] |
| ; CHECK-NEXT: i8 1, label %[[CASE2:.*]] |
| ; CHECK-NEXT: i8 2, label %[[CASE3:.*]] |
| ; CHECK-NEXT: i8 3, label %[[CASE3]] |
| ; CHECK-NEXT: ] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[DEFAULT]]: |
| ; CHECK-NEXT: ret i8 0 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE1]]: |
| ; CHECK-NEXT: ret i8 1 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE2]]: |
| ; CHECK-NEXT: ret i8 2 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE3]]: |
| ; CHECK-NEXT: ret i8 3 |
| ; |
| switch i8 %x, label %default [ |
| i8 0, label %case1 |
| i8 1, label %case2 |
| i8 2, label %case3 |
| i8 3, label %case3 |
| ] |
| default: |
| ret i8 0 |
| case1: |
| ret i8 1 |
| case2: |
| ret i8 2 |
| case3: |
| ret i8 3 |
| } |
| |
| define i32 @testi32(i32 %x) { |
| ; CHECK-LABEL: define i32 @testi32( |
| ; CHECK-SAME: i32 [[X:%.*]]) { |
| ; CHECK-NEXT: switch i32 [[X]], label %[[DEFAULT:.*]] [ |
| ; CHECK-NEXT: i32 0, label %[[CASE1:.*]] |
| ; CHECK-NEXT: i32 1, label %[[CASE2:.*]] |
| ; CHECK-NEXT: i32 2, label %[[CASE3:.*]] |
| ; CHECK-NEXT: i32 3, label %[[CASE3]] |
| ; CHECK-NEXT: ] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[DEFAULT]]: |
| ; CHECK-NEXT: ret i32 0 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE1]]: |
| ; CHECK-NEXT: ret i32 1 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE2]]: |
| ; CHECK-NEXT: ret i32 2 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE3]]: |
| ; CHECK-NEXT: ret i32 3 |
| ; |
| switch i32 %x, label %default [ |
| i32 0, label %case1 |
| i32 1, label %case2 |
| i32 2, label %case3 |
| i32 3, label %case3 |
| ] |
| default: |
| ret i32 0 |
| case1: |
| ret i32 1 |
| case2: |
| ret i32 2 |
| case3: |
| ret i32 3 |
| } |
| |
| define i128 @testi128(i128 %x) { |
| ; CHECK-LABEL: define i128 @testi128( |
| ; CHECK-SAME: i128 [[X:%.*]]) { |
| ; CHECK-NEXT: switch i128 [[X]], label %[[DEFAULT:.*]] [ |
| ; CHECK-NEXT: i128 0, label %[[CASE1:.*]] |
| ; CHECK-NEXT: i128 1, label %[[CASE2:.*]] |
| ; CHECK-NEXT: i128 2, label %[[CASE3:.*]] |
| ; CHECK-NEXT: i128 3, label %[[CASE3]] |
| ; CHECK-NEXT: ] |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[DEFAULT]]: |
| ; CHECK-NEXT: ret i128 0 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE1]]: |
| ; CHECK-NEXT: ret i128 1 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE2]]: |
| ; CHECK-NEXT: ret i128 2 |
| ; CHECK-EMPTY: |
| ; CHECK-NEXT: [[CASE3]]: |
| ; CHECK-NEXT: ret i128 3 |
| ; |
| switch i128 %x, label %default [ |
| i128 0, label %case1 |
| i128 1, label %case2 |
| i128 2, label %case3 |
| i128 3, label %case3 |
| ] |
| default: |
| ret i128 0 |
| case1: |
| ret i128 1 |
| case2: |
| ret i128 2 |
| case3: |
| ret i128 3 |
| } |