; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes --check-globals
; RUN: opt -attributor -enable-new-pm=0 -attributor-manifest-internal  -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=1 -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_CGSCC_NPM,NOT_CGSCC_OPM,NOT_TUNIT_NPM,IS__TUNIT____,IS________OPM,IS__TUNIT_OPM
; RUN: opt -aa-pipeline=basic-aa -passes=attributor -attributor-manifest-internal  -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=1 -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_CGSCC_OPM,NOT_CGSCC_NPM,NOT_TUNIT_OPM,IS__TUNIT____,IS________NPM,IS__TUNIT_NPM
; RUN: opt -attributor-cgscc -enable-new-pm=0 -attributor-manifest-internal  -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_TUNIT_NPM,NOT_TUNIT_OPM,NOT_CGSCC_NPM,IS__CGSCC____,IS________OPM,IS__CGSCC_OPM
; RUN: opt -aa-pipeline=basic-aa -passes=attributor-cgscc -attributor-manifest-internal  -attributor-annotate-decl-cs -S < %s | FileCheck %s --check-prefixes=CHECK,NOT_TUNIT_NPM,NOT_TUNIT_OPM,NOT_CGSCC_OPM,IS__CGSCC____,IS________NPM,IS__CGSCC_NPM
target datalayout = "E-m:e-i64:64-n32:64"
target triple = "powerpc64le-unknown-linux"

define void @test(i32 signext %n) {
; IS__TUNIT____: Function Attrs: nofree noreturn nosync nounwind readnone
; IS__TUNIT____-LABEL: define {{[^@]+}}@test
; IS__TUNIT____-SAME: (i32 signext [[N:%.*]]) #[[ATTR0:[0-9]+]] {
; IS__TUNIT____-NEXT:  entry:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.then:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.end:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.then2:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.end4:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.then9:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.then12:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.else14:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       do.body:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       if.then33:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       cond.false.i28:
; IS__TUNIT____-NEXT:    unreachable
; IS__TUNIT____:       _ZN5boost4math4signIgEEiRKT_.exit30:
; IS__TUNIT____-NEXT:    unreachable
;
; IS__CGSCC____: Function Attrs: nofree norecurse noreturn nosync nounwind readnone
; IS__CGSCC____-LABEL: define {{[^@]+}}@test
; IS__CGSCC____-SAME: (i32 signext [[N:%.*]]) #[[ATTR0:[0-9]+]] {
; IS__CGSCC____-NEXT:  entry:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.then:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.end:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.then2:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.end4:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.then9:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.then12:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.else14:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       do.body:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       if.then33:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       cond.false.i28:
; IS__CGSCC____-NEXT:    unreachable
; IS__CGSCC____:       _ZN5boost4math4signIgEEiRKT_.exit30:
; IS__CGSCC____-NEXT:    unreachable
;

entry:
  br i1 undef, label %if.then, label %if.end

if.then:                                          ; preds = %entry
  ret void

if.end:                                           ; preds = %entry
  br i1 undef, label %if.then2, label %if.end4

if.then2:                                         ; preds = %if.end
  unreachable

if.end4:                                          ; preds = %if.end
  %sub.n = select i1 undef, i32 undef, i32 %n
  switch i32 %sub.n, label %if.else14 [
  i32 0, label %if.then9
  i32 1, label %if.then12
  ]

if.then9:                                         ; preds = %if.end4
  unreachable

if.then12:                                        ; preds = %if.end4
  unreachable

if.else14:                                        ; preds = %if.end4
  br label %do.body

do.body:                                          ; preds = %do.body, %if.else14
  %scale.0 = phi ppc_fp128 [ 0xM3FF00000000000000000000000000000, %if.else14 ], [ %scale.0, %do.body ]
  br i1 undef, label %do.body, label %if.then33

if.then33:                                        ; preds = %do.body
  br i1 undef, label %_ZN5boost4math4signIgEEiRKT_.exit30, label %cond.false.i28

cond.false.i28:                                   ; preds = %if.then33
  %0 = bitcast ppc_fp128 %scale.0 to i128
  %tobool.i26 = icmp slt i128 %0, 0
  br label %_ZN5boost4math4signIgEEiRKT_.exit30

_ZN5boost4math4signIgEEiRKT_.exit30:              ; preds = %cond.false.i28, %if.then33
  unreachable
}

;.
; IS__TUNIT____: attributes #[[ATTR0]] = { nofree noreturn nosync nounwind readnone }
;.
; IS__CGSCC____: attributes #[[ATTR0]] = { nofree norecurse noreturn nosync nounwind readnone }
;.
