; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -march=hexagon  < %s | FileCheck %s

define half @freeze_half_undef() nounwind {
; CHECK-LABEL: freeze_half_undef:
; CHECK:       // %bb.0:
; CHECK-NEXT:    {
; CHECK-NEXT:     call __truncsfhf2
; CHECK-NEXT:     r0 = #0
; CHECK-NEXT:     allocframe(#0)
; CHECK-NEXT:    }
; CHECK-NEXT:    {
; CHECK-NEXT:     call __extendhfsf2
; CHECK-NEXT:    }
; CHECK-NEXT:    {
; CHECK-NEXT:     call __truncsfhf2
; CHECK-NEXT:     r0 = sfadd(r0,r0)
; CHECK-NEXT:    }
; CHECK-NEXT:    {
; CHECK-NEXT:     r31:30 = dealloc_return(r30):raw
; CHECK-NEXT:    }
  %y1 = freeze half undef
  %t1 = fadd half %y1, %y1
  ret half %t1
}

define half @freeze_half_poison(half %maybe.poison) {
; CHECK-LABEL: freeze_half_poison:
; CHECK:  // %bb.0:
; CHECK:    {
; CHECK-NEXT:     call __extendhfsf2
; CHECK-NEXT:     allocframe(r29,#0):raw
; CHECK-NEXT:    }
; CHECK-NEXT:    {
; CHECK-NEXT:     call __truncsfhf2
; CHECK-NEXT:     r0 = sfadd(r0,r0)
; CHECK-NEXT:    }
; CHECK-NEXT:    {
; CHECK-NEXT:     r31:30 = dealloc_return(r30):raw
; CHECK-NEXT:    }
  %y1 = freeze half %maybe.poison
  %t1 = fadd half %y1, %y1
  ret half %t1
}
