; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -mattr=-f16c | FileCheck %s -check-prefix=LIBCALL
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -mattr=+f16c | FileCheck %s -check-prefix=F16C
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -mattr=-f16c,+soft-float | FileCheck %s -check-prefix=SOFTFLOAT
; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -mattr=+f16c,+soft-float | FileCheck %s -check-prefix=SOFTFLOAT

; This is a test for float to half float conversions on x86-64.
;
; If flag -soft-float is set, or if there is no F16C support, then:
; 1) half float to float conversions are
;    translated into calls to __gnu_h2f_ieee defined
;    by the compiler runtime library;
; 2) float to half float conversions are translated into calls
;    to __gnu_f2h_ieee which expected to be defined by the
;    compiler runtime library.
;
; Otherwise (we have F16C support):
; 1) half float to float conversion are translated using
;    vcvtph2ps instructions;
; 2) float to half float conversions are translated using
;    vcvtps2ph instructions


define void @test1(float %src, i16* %dest) {
; LIBCALL-LABEL: test1:
; LIBCALL:       # %bb.0:
; LIBCALL-NEXT:    pushq %rbx
; LIBCALL-NEXT:    .cfi_def_cfa_offset 16
; LIBCALL-NEXT:    .cfi_offset %rbx, -16
; LIBCALL-NEXT:    movq %rdi, %rbx
; LIBCALL-NEXT:    callq __gnu_f2h_ieee@PLT
; LIBCALL-NEXT:    movw %ax, (%rbx)
; LIBCALL-NEXT:    popq %rbx
; LIBCALL-NEXT:    .cfi_def_cfa_offset 8
; LIBCALL-NEXT:    retq
;
; F16C-LABEL: test1:
; F16C:       # %bb.0:
; F16C-NEXT:    vcvtps2ph $4, %xmm0, %xmm0
; F16C-NEXT:    vpextrw $0, %xmm0, (%rdi)
; F16C-NEXT:    retq
;
; SOFTFLOAT-LABEL: test1:
; SOFTFLOAT:       # %bb.0:
; SOFTFLOAT-NEXT:    pushq %rbx
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 16
; SOFTFLOAT-NEXT:    .cfi_offset %rbx, -16
; SOFTFLOAT-NEXT:    movq %rsi, %rbx
; SOFTFLOAT-NEXT:    callq __gnu_f2h_ieee@PLT
; SOFTFLOAT-NEXT:    movw %ax, (%rbx)
; SOFTFLOAT-NEXT:    popq %rbx
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 8
; SOFTFLOAT-NEXT:    retq
  %1 = tail call i16 @llvm.convert.to.fp16.f32(float %src)
  store i16 %1, i16* %dest, align 2
  ret void
}

define float @test2(i16* nocapture %src) {
; LIBCALL-LABEL: test2:
; LIBCALL:       # %bb.0:
; LIBCALL-NEXT:    movzwl (%rdi), %edi
; LIBCALL-NEXT:    jmp __gnu_h2f_ieee@PLT # TAILCALL
;
; F16C-LABEL: test2:
; F16C:       # %bb.0:
; F16C-NEXT:    movzwl (%rdi), %eax
; F16C-NEXT:    vmovd %eax, %xmm0
; F16C-NEXT:    vcvtph2ps %xmm0, %xmm0
; F16C-NEXT:    retq
;
; SOFTFLOAT-LABEL: test2:
; SOFTFLOAT:       # %bb.0:
; SOFTFLOAT-NEXT:    pushq %rax
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 16
; SOFTFLOAT-NEXT:    movzwl (%rdi), %edi
; SOFTFLOAT-NEXT:    callq __gnu_h2f_ieee@PLT
; SOFTFLOAT-NEXT:    popq %rcx
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 8
; SOFTFLOAT-NEXT:    retq
  %1 = load i16, i16* %src, align 2
  %2 = tail call float @llvm.convert.from.fp16.f32(i16 %1)
  ret float %2
}

define float @test3(float %src) nounwind uwtable readnone {
; LIBCALL-LABEL: test3:
; LIBCALL:       # %bb.0:
; LIBCALL-NEXT:    pushq %rax
; LIBCALL-NEXT:    .cfi_def_cfa_offset 16
; LIBCALL-NEXT:    callq __gnu_f2h_ieee@PLT
; LIBCALL-NEXT:    movzwl %ax, %edi
; LIBCALL-NEXT:    popq %rax
; LIBCALL-NEXT:    .cfi_def_cfa_offset 8
; LIBCALL-NEXT:    jmp __gnu_h2f_ieee@PLT # TAILCALL
;
; F16C-LABEL: test3:
; F16C:       # %bb.0:
; F16C-NEXT:    vcvtps2ph $4, %xmm0, %xmm0
; F16C-NEXT:    vcvtph2ps %xmm0, %xmm0
; F16C-NEXT:    retq
;
; SOFTFLOAT-LABEL: test3:
; SOFTFLOAT:       # %bb.0:
; SOFTFLOAT-NEXT:    pushq %rax
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 16
; SOFTFLOAT-NEXT:    callq __gnu_f2h_ieee@PLT
; SOFTFLOAT-NEXT:    movzwl %ax, %edi
; SOFTFLOAT-NEXT:    callq __gnu_h2f_ieee@PLT
; SOFTFLOAT-NEXT:    popq %rcx
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 8
; SOFTFLOAT-NEXT:    retq
  %1 = tail call i16 @llvm.convert.to.fp16.f32(float %src)
  %2 = tail call float @llvm.convert.from.fp16.f32(i16 %1)
  ret float %2
}

define double @test4(i16* nocapture %src) {
; LIBCALL-LABEL: test4:
; LIBCALL:       # %bb.0:
; LIBCALL-NEXT:    pushq %rax
; LIBCALL-NEXT:    .cfi_def_cfa_offset 16
; LIBCALL-NEXT:    movzwl (%rdi), %edi
; LIBCALL-NEXT:    callq __gnu_h2f_ieee@PLT
; LIBCALL-NEXT:    cvtss2sd %xmm0, %xmm0
; LIBCALL-NEXT:    popq %rax
; LIBCALL-NEXT:    .cfi_def_cfa_offset 8
; LIBCALL-NEXT:    retq
;
; F16C-LABEL: test4:
; F16C:       # %bb.0:
; F16C-NEXT:    movzwl (%rdi), %eax
; F16C-NEXT:    vmovd %eax, %xmm0
; F16C-NEXT:    vcvtph2ps %xmm0, %xmm0
; F16C-NEXT:    vcvtss2sd %xmm0, %xmm0, %xmm0
; F16C-NEXT:    retq
;
; SOFTFLOAT-LABEL: test4:
; SOFTFLOAT:       # %bb.0:
; SOFTFLOAT-NEXT:    pushq %rax
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 16
; SOFTFLOAT-NEXT:    movzwl (%rdi), %edi
; SOFTFLOAT-NEXT:    callq __gnu_h2f_ieee@PLT
; SOFTFLOAT-NEXT:    movl %eax, %edi
; SOFTFLOAT-NEXT:    callq __extendsfdf2@PLT
; SOFTFLOAT-NEXT:    popq %rcx
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 8
; SOFTFLOAT-NEXT:    retq
  %1 = load i16, i16* %src, align 2
  %2 = tail call double @llvm.convert.from.fp16.f64(i16 %1)
  ret double %2
}

define i16 @test5(double %src) {
; LIBCALL-LABEL: test5:
; LIBCALL:       # %bb.0:
; LIBCALL-NEXT:    jmp __truncdfhf2@PLT # TAILCALL
;
; F16C-LABEL: test5:
; F16C:       # %bb.0:
; F16C-NEXT:    jmp __truncdfhf2@PLT # TAILCALL
;
; SOFTFLOAT-LABEL: test5:
; SOFTFLOAT:       # %bb.0:
; SOFTFLOAT-NEXT:    pushq %rax
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 16
; SOFTFLOAT-NEXT:    callq __truncdfhf2@PLT
; SOFTFLOAT-NEXT:    popq %rcx
; SOFTFLOAT-NEXT:    .cfi_def_cfa_offset 8
; SOFTFLOAT-NEXT:    retq
  %val = tail call i16 @llvm.convert.to.fp16.f64(double %src)
  ret i16 %val
}

declare float @llvm.convert.from.fp16.f32(i16) nounwind readnone
declare i16 @llvm.convert.to.fp16.f32(float) nounwind readnone
declare double @llvm.convert.from.fp16.f64(i16) nounwind readnone
declare i16 @llvm.convert.to.fp16.f64(double) nounwind readnone
