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