; RUN: llc -march=hexagon -verify-machineinstrs < %s | FileCheck %s
; Verify that the code compiles successfully.
; CHECK: call printf

target triple = "hexagon"

%struct.0 = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 }

@.str.13 = external unnamed_addr constant [60 x i8], align 1

declare void @printf(i8* nocapture readonly, ...) local_unnamed_addr #0

declare void @danny() local_unnamed_addr #0
declare zeroext i8 @sammy() local_unnamed_addr #0

; Function Attrs: nounwind
define void @main() local_unnamed_addr #0 {
entry:
  br i1 undef, label %if.then8, label %if.end10

if.then8:                                         ; preds = %entry
  ret void

if.end10:                                         ; preds = %entry
  br label %do.body

do.body:                                          ; preds = %if.end88.do.body_crit_edge, %if.end10
  %cond = icmp eq i32 undef, 0
  br i1 %cond, label %if.end49, label %if.then124

if.end49:                                         ; preds = %do.body
  br i1 undef, label %if.end55, label %if.then53

if.then53:                                        ; preds = %if.end49
  call void @danny()
  br label %if.end55

if.end55:                                         ; preds = %if.then53, %if.end49
  %call76 = call zeroext i8 @sammy() #0
  switch i8 %call76, label %sw.epilog79 [
    i8 0, label %sw.bb77
    i8 3, label %sw.bb77
  ]

sw.bb77:                                          ; preds = %if.end55, %if.end55
  unreachable

sw.epilog79:                                      ; preds = %if.end55
  br i1 undef, label %if.end88, label %if.then81

if.then81:                                        ; preds = %sw.epilog79
  %div87 = fdiv float 0.000000e+00, undef
  br label %if.end88

if.end88:                                         ; preds = %if.then81, %sw.epilog79
  %t.1 = phi float [ undef, %sw.epilog79 ], [ %div87, %if.then81 ]
  %div89 = fdiv float 1.000000e+00, %t.1
  %mul92 = fmul float undef, %div89
  %div93 = fdiv float %mul92, 1.000000e+06
  %conv107 = fpext float %div93 to double
  call void (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.13, i32 0, i32 0), double %conv107, double undef, i64 undef, i32 undef) #0
  br i1 undef, label %if.end88.do.body_crit_edge, label %if.then124

if.end88.do.body_crit_edge:                       ; preds = %if.end88
  br label %do.body

if.then124:                                       ; preds = %if.end88, %do.body
  unreachable
}


attributes #0 = { nounwind }

