; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -O2 -mtriple=x86_64-linux-android -mattr=+mmx \
; RUN:     -enable-legalize-types-checking | FileCheck %s
; RUN: llc < %s -O2 -mtriple=x86_64-linux-gnu -mattr=+mmx \
; RUN:     -enable-legalize-types-checking | FileCheck %s

; Check all soft floating point library function calls.

@vf64 = common global double 0.000000e+00, align 8
@vf128 = common global fp128 0xL00000000000000000000000000000000, align 16

define void @Test128Add(fp128 %d1, fp128 %d2) {
; CHECK-LABEL: Test128Add:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq __addtf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %add = fadd fp128 %d1, %d2
  store fp128 %add, fp128* @vf128, align 16
  ret void
}

define void @Test128_1Add(fp128 %d1){
; CHECK-LABEL: Test128_1Add:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    movaps %xmm0, %xmm1
; CHECK-NEXT:    movaps {{.*}}(%rip), %xmm0
; CHECK-NEXT:    callq __addtf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %0 = load fp128, fp128* @vf128, align 16
  %add = fadd fp128 %0, %d1
  store fp128 %add, fp128* @vf128, align 16
  ret void
}

define void @Test128Sub(fp128 %d1, fp128 %d2){
; CHECK-LABEL: Test128Sub:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq __subtf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %sub = fsub fp128 %d1, %d2
  store fp128 %sub, fp128* @vf128, align 16
  ret void
}

define void @Test128_1Sub(fp128 %d1){
; CHECK-LABEL: Test128_1Sub:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    movaps %xmm0, %xmm1
; CHECK-NEXT:    movaps {{.*}}(%rip), %xmm0
; CHECK-NEXT:    callq __subtf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %0 = load fp128, fp128* @vf128, align 16
  %sub = fsub fp128 %0, %d1
  store fp128 %sub, fp128* @vf128, align 16
  ret void
}

define void @Test128Mul(fp128 %d1, fp128 %d2){
; CHECK-LABEL: Test128Mul:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq __multf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %mul = fmul fp128 %d1, %d2
  store fp128 %mul, fp128* @vf128, align 16
  ret void
}

define void @Test128_1Mul(fp128 %d1){
; CHECK-LABEL: Test128_1Mul:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    movaps %xmm0, %xmm1
; CHECK-NEXT:    movaps {{.*}}(%rip), %xmm0
; CHECK-NEXT:    callq __multf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %0 = load fp128, fp128* @vf128, align 16
  %mul = fmul fp128 %0, %d1
  store fp128 %mul, fp128* @vf128, align 16
  ret void
}

define void @Test128Div(fp128 %d1, fp128 %d2){
; CHECK-LABEL: Test128Div:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq __divtf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %div = fdiv fp128 %d1, %d2
  store fp128 %div, fp128* @vf128, align 16
  ret void
}

define void @Test128_1Div(fp128 %d1){
; CHECK-LABEL: Test128_1Div:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    movaps %xmm0, %xmm1
; CHECK-NEXT:    movaps {{.*}}(%rip), %xmm0
; CHECK-NEXT:    callq __divtf3
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %0 = load fp128, fp128* @vf128, align 16
  %div = fdiv fp128 %0, %d1
  store fp128 %div, fp128* @vf128, align 16
  ret void
}

define void @Test128Rem(fp128 %d1, fp128 %d2){
; CHECK-LABEL: Test128Rem:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq fmodl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %div = frem fp128 %d1, %d2
  store fp128 %div, fp128* @vf128, align 16
  ret void
}

define void @Test128_1Rem(fp128 %d1){
; CHECK-LABEL: Test128_1Rem:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    movaps %xmm0, %xmm1
; CHECK-NEXT:    movaps {{.*}}(%rip), %xmm0
; CHECK-NEXT:    callq fmodl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %0 = load fp128, fp128* @vf128, align 16
  %div = frem fp128 %0, %d1
  store fp128 %div, fp128* @vf128, align 16
  ret void
}

define void @Test128Sqrt(fp128 %d1){
; CHECK-LABEL: Test128Sqrt:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq sqrtl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.sqrt.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.sqrt.f128(fp128)

define void @Test128Sin(fp128 %d1){
; CHECK-LABEL: Test128Sin:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq sinl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.sin.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.sin.f128(fp128)

define void @Test128Cos(fp128 %d1){
; CHECK-LABEL: Test128Cos:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 16
; CHECK-NEXT:    callq cosl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    .cfi_def_cfa_offset 8
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.cos.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.cos.f128(fp128)

define void @Test128Ceil(fp128 %d1) nounwind {
; CHECK-LABEL: Test128Ceil:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    callq ceill
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.ceil.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.ceil.f128(fp128)

define void @Test128Floor(fp128 %d1) nounwind {
; CHECK-LABEL: Test128Floor:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    callq floorl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.floor.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.floor.f128(fp128)

define void @Test128Trunc(fp128 %d1) nounwind {
; CHECK-LABEL: Test128Trunc:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    callq truncl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.trunc.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.trunc.f128(fp128)

define void @Test128Nearbyint(fp128 %d1) nounwind {
; CHECK-LABEL: Test128Nearbyint:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    callq nearbyintl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.nearbyint.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.nearbyint.f128(fp128)

define void @Test128Rint(fp128 %d1) nounwind {
; CHECK-LABEL: Test128Rint:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    callq rintl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.rint.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.rint.f128(fp128)

define void @Test128Round(fp128 %d1) nounwind {
; CHECK-LABEL: Test128Round:
; CHECK:       # %bb.0: # %entry
; CHECK-NEXT:    pushq %rax
; CHECK-NEXT:    callq roundl
; CHECK-NEXT:    movaps %xmm0, {{.*}}(%rip)
; CHECK-NEXT:    popq %rax
; CHECK-NEXT:    retq
entry:
  %sqrt = call fp128 @llvm.round.f128(fp128 %d1)
  store fp128 %sqrt, fp128* @vf128, align 16
  ret void
}
declare fp128 @llvm.round.f128(fp128)
