; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=i686 | FileCheck %s --check-prefix=CHECK --check-prefix=GENERIC
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=atom | FileCheck %s --check-prefix=CHECK --check-prefix=ATOM
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=slm | FileCheck %s --check-prefix=CHECK --check-prefix=SLM
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=sandybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=ivybridge | FileCheck %s --check-prefix=CHECK --check-prefix=SANDY
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=haswell | FileCheck %s --check-prefix=CHECK --check-prefix=HASWELL
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=broadwell | FileCheck %s --check-prefix=CHECK --check-prefix=BROADWELL
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=skylake | FileCheck %s --check-prefix=CHECK --check-prefix=SKYLAKE
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=skx | FileCheck %s --check-prefix=CHECK --check-prefix=SKX
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=bdver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BDVER2
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=btver2 | FileCheck %s --check-prefix=CHECK --check-prefix=BTVER2
; RUN: llc < %s -mtriple=i686-unknown-unknown -print-schedule -mcpu=znver1 | FileCheck %s --check-prefix=CHECK --check-prefix=ZNVER1

define void @test_f2xm1() optsize {
; GENERIC-LABEL: test_f2xm1:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    f2xm1
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_f2xm1:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    f2xm1 # sched: [99:49.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_f2xm1:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    f2xm1 # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_f2xm1:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    f2xm1 # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_f2xm1:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    f2xm1 # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_f2xm1:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    f2xm1 # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_f2xm1:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    f2xm1 # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_f2xm1:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    f2xm1 # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_f2xm1:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    f2xm1 # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_f2xm1:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    f2xm1 # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_f2xm1:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    f2xm1 # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "f2xm1", ""() nounwind
  ret void
}

define void @test_fabs() optsize {
; GENERIC-LABEL: test_fabs:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fabs
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fabs:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fabs # sched: [1:1.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fabs:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fabs # sched: [1:0.50]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fabs:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fabs # sched: [1:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fabs:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fabs # sched: [1:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fabs:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fabs # sched: [1:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fabs:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fabs # sched: [1:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fabs:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fabs # sched: [1:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fabs:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fabs # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fabs:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fabs # sched: [2:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fabs:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fabs # sched: [2:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fabs", ""() nounwind
  ret void
}

define void @test_fadd(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fadd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fadd %st(0), %st(1)
; GENERIC-NEXT:    fadd %st(2)
; GENERIC-NEXT:    fadds (%ecx)
; GENERIC-NEXT:    faddl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fadd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fadd %st(0), %st(1) # sched: [5:5.00]
; ATOM-NEXT:    fadd %st(2) # sched: [5:5.00]
; ATOM-NEXT:    fadds (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    faddl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fadd:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; SLM-NEXT:    fadd %st(2) # sched: [3:1.00]
; SLM-NEXT:    fadds (%ecx) # sched: [6:1.00]
; SLM-NEXT:    faddl (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fadd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; SANDY-NEXT:    fadd %st(2) # sched: [3:1.00]
; SANDY-NEXT:    fadds (%ecx) # sched: [10:1.00]
; SANDY-NEXT:    faddl (%eax) # sched: [10:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fadd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; HASWELL-NEXT:    fadd %st(2) # sched: [3:1.00]
; HASWELL-NEXT:    fadds (%ecx) # sched: [10:1.00]
; HASWELL-NEXT:    faddl (%eax) # sched: [10:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fadd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; BROADWELL-NEXT:    fadd %st(2) # sched: [3:1.00]
; BROADWELL-NEXT:    fadds (%ecx) # sched: [9:1.00]
; BROADWELL-NEXT:    faddl (%eax) # sched: [9:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fadd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; SKYLAKE-NEXT:    fadd %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT:    fadds (%ecx) # sched: [10:1.00]
; SKYLAKE-NEXT:    faddl (%eax) # sched: [10:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fadd:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; SKX-NEXT:    fadd %st(2) # sched: [3:1.00]
; SKX-NEXT:    fadds (%ecx) # sched: [10:1.00]
; SKX-NEXT:    faddl (%eax) # sched: [10:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fadd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fadd %st(0), %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    fadd %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fadds (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    faddl (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fadd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fadd %st(2) # sched: [3:1.00]
; BTVER2-NEXT:    fadds (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    faddl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fadd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fadd %st(0), %st(1) # sched: [3:1.00]
; ZNVER1-NEXT:    fadd %st(2) # sched: [3:1.00]
; ZNVER1-NEXT:    fadds (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT:    faddl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fadd %st(0), %st(1) \0A\09 fadd %st(2), %st(0) \0A\09 fadds $0 \0A\09 faddl $1", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_faddp_fiadd(i16 *%a0, i32 *%a1) optsize {
; GENERIC-LABEL: test_faddp_fiadd:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    faddp %st(1)
; GENERIC-NEXT:    faddp %st(2)
; GENERIC-NEXT:    fiadds (%ecx)
; GENERIC-NEXT:    fiaddl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_faddp_fiadd:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    faddp %st(1) # sched: [5:5.00]
; ATOM-NEXT:    faddp %st(2) # sched: [5:5.00]
; ATOM-NEXT:    fiadds (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fiaddl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_faddp_fiadd:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    faddp %st(1) # sched: [3:1.00]
; SLM-NEXT:    faddp %st(2) # sched: [3:1.00]
; SLM-NEXT:    fiadds (%ecx) # sched: [6:1.00]
; SLM-NEXT:    fiaddl (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_faddp_fiadd:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    faddp %st(1) # sched: [3:1.00]
; SANDY-NEXT:    faddp %st(2) # sched: [3:1.00]
; SANDY-NEXT:    fiadds (%ecx) # sched: [13:2.00]
; SANDY-NEXT:    fiaddl (%eax) # sched: [13:2.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_faddp_fiadd:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    faddp %st(1) # sched: [3:1.00]
; HASWELL-NEXT:    faddp %st(2) # sched: [3:1.00]
; HASWELL-NEXT:    fiadds (%ecx) # sched: [13:2.00]
; HASWELL-NEXT:    fiaddl (%eax) # sched: [13:2.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_faddp_fiadd:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    faddp %st(1) # sched: [3:1.00]
; BROADWELL-NEXT:    faddp %st(2) # sched: [3:1.00]
; BROADWELL-NEXT:    fiadds (%ecx) # sched: [12:2.00]
; BROADWELL-NEXT:    fiaddl (%eax) # sched: [12:2.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_faddp_fiadd:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    faddp %st(1) # sched: [3:1.00]
; SKYLAKE-NEXT:    faddp %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT:    fiadds (%ecx) # sched: [13:2.00]
; SKYLAKE-NEXT:    fiaddl (%eax) # sched: [13:2.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_faddp_fiadd:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    faddp %st(1) # sched: [3:1.00]
; SKX-NEXT:    faddp %st(2) # sched: [3:1.00]
; SKX-NEXT:    fiadds (%ecx) # sched: [13:2.00]
; SKX-NEXT:    fiaddl (%eax) # sched: [13:2.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_faddp_fiadd:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    faddp %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    faddp %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fiadds (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    fiaddl (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_faddp_fiadd:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    faddp %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    faddp %st(2) # sched: [3:1.00]
; BTVER2-NEXT:    fiadds (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    fiaddl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_faddp_fiadd:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    faddp %st(1) # sched: [3:1.00]
; ZNVER1-NEXT:    faddp %st(2) # sched: [3:1.00]
; ZNVER1-NEXT:    fiadds (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT:    fiaddl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "faddp \0A\09 faddp %st(2), %st(0) \0A\09 fiadds $0 \0A\09 fiaddl $1", "*m,*m"(i16 *%a0, i32 *%a1) nounwind
  ret void
}

define void @test_fbld_fbstp(i8* %a0) optsize {
; GENERIC-LABEL: test_fbld_fbstp:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fbld (%eax)
; GENERIC-NEXT:    fbstp (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fbld_fbstp:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fbld (%eax) # sched: [100:0.50]
; ATOM-NEXT:    fbstp (%eax) # sched: [100:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fbld_fbstp:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fbld (%eax) # sched: [100:1.00]
; SLM-NEXT:    fbstp (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fbld_fbstp:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fbld (%eax) # sched: [100:0.33]
; SANDY-NEXT:    fbstp (%eax) # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fbld_fbstp:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fbld (%eax) # sched: [47:10.75]
; HASWELL-NEXT:    fbstp (%eax) # sched: [1:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fbld_fbstp:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fbld (%eax) # sched: [100:0.25]
; BROADWELL-NEXT:    fbstp (%eax) # sched: [1:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fbld_fbstp:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fbld (%eax) # sched: [100:0.25]
; SKYLAKE-NEXT:    fbstp (%eax) # sched: [1:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fbld_fbstp:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fbld (%eax) # sched: [100:0.25]
; SKX-NEXT:    fbstp (%eax) # sched: [1:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fbld_fbstp:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fbld (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    fbstp (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fbld_fbstp:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fbld (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    fbstp (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fbld_fbstp:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fbld (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    fbstp (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fbld $0 \0A\09 fbstp $0", "*m"(i8 *%a0) nounwind
  ret void
}

define void @test_fchs() optsize {
; GENERIC-LABEL: test_fchs:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fchs
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fchs:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fchs # sched: [1:1.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fchs:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fchs # sched: [1:0.50]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fchs:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fchs # sched: [1:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fchs:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fchs # sched: [1:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fchs:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fchs # sched: [1:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fchs:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fchs # sched: [1:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fchs:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fchs # sched: [1:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fchs:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fchs # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fchs:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fchs # sched: [2:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fchs:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fchs # sched: [1:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fchs", ""() nounwind
  ret void
}

define void @test_fclex() optsize {
; GENERIC-LABEL: test_fclex:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    wait
; GENERIC-NEXT:    fnclex
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fclex:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    wait # sched: [1:0.50]
; ATOM-NEXT:    fnclex # sched: [25:12.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fclex:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    wait # sched: [100:1.00]
; SLM-NEXT:    fnclex # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fclex:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    wait # sched: [100:0.33]
; SANDY-NEXT:    fnclex # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fclex:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    wait # sched: [2:0.50]
; HASWELL-NEXT:    fnclex # sched: [4:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fclex:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    wait # sched: [2:0.50]
; BROADWELL-NEXT:    fnclex # sched: [4:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fclex:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    wait # sched: [2:0.50]
; SKYLAKE-NEXT:    fnclex # sched: [4:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fclex:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    wait # sched: [2:0.50]
; SKX-NEXT:    fnclex # sched: [4:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fclex:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    wait # sched: [100:0.50]
; BDVER2-NEXT:    fnclex # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fclex:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    wait # sched: [100:0.50]
; BTVER2-NEXT:    fnclex # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fclex:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    wait # sched: [1:1.00]
; ZNVER1-NEXT:    fnclex # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fclex", ""() nounwind
  ret void
}

define void @test_fnclex() optsize {
; GENERIC-LABEL: test_fnclex:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fnclex
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fnclex:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fnclex # sched: [25:12.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fnclex:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fnclex # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fnclex:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fnclex # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fnclex:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fnclex # sched: [4:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fnclex:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fnclex # sched: [4:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fnclex:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fnclex # sched: [4:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fnclex:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fnclex # sched: [4:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fnclex:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fnclex # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fnclex:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fnclex # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fnclex:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fnclex # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fnclex", ""() nounwind
  ret void
}

define void @test_fcmov() optsize {
; GENERIC-LABEL: test_fcmov:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fcmovb %st(1), %st(0)
; GENERIC-NEXT:    fcmovbe %st(1), %st(0)
; GENERIC-NEXT:    fcmove %st(1), %st(0)
; GENERIC-NEXT:    fcmovnb %st(1), %st(0)
; GENERIC-NEXT:    fcmovnbe %st(1), %st(0)
; GENERIC-NEXT:    fcmovne %st(1), %st(0)
; GENERIC-NEXT:    fcmovnu %st(1), %st(0)
; GENERIC-NEXT:    fcmovu %st(1), %st(0)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fcmov:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fcmovb %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    fcmovbe %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    fcmove %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    fcmovnb %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    fcmovnbe %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    fcmovne %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    fcmovnu %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    fcmovu %st(1), %st(0) # sched: [9:4.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fcmov:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fcmov:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fcmovb %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    fcmove %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    fcmovne %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    fcmovu %st(1), %st(0) # sched: [3:2.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fcmov:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fcmov:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fcmov:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fcmov:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fcmov:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fcmovb %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    fcmovbe %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    fcmove %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    fcmovnb %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    fcmovnbe %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    fcmovne %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    fcmovnu %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    fcmovu %st(1), %st(0) # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fcmov:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fcmovb %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    fcmovbe %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    fcmove %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    fcmovnb %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    fcmovnbe %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    fcmovne %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    fcmovnu %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    fcmovu %st(1), %st(0) # sched: [3:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fcmov:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fcmovb %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    fcmovbe %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    fcmove %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    fcmovnb %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    fcmovnbe %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    fcmovne %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    fcmovnu %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    fcmovu %st(1), %st(0) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fcmovb %st(1), %st(0) \0A\09 fcmovbe %st(1), %st(0) \0A\09 fcmove %st(1), %st(0) \0A\09 fcmovnb %st(1), %st(0) \0A\09 fcmovnbe %st(1), %st(0) \0A\09 fcmovne %st(1), %st(0) \0A\09 fcmovnu %st(1), %st(0) \0A\09 fcmovu %st(1), %st(0)", ""() nounwind
  ret void
}

define void @test_fcom(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fcom:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fcom %st(1)
; GENERIC-NEXT:    fcom %st(3)
; GENERIC-NEXT:    fcoms (%ecx)
; GENERIC-NEXT:    fcoml (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fcom:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fcom %st(1) # sched: [5:5.00]
; ATOM-NEXT:    fcom %st(3) # sched: [5:5.00]
; ATOM-NEXT:    fcoms (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fcoml (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fcom:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fcom %st(1) # sched: [3:1.00]
; SLM-NEXT:    fcom %st(3) # sched: [3:1.00]
; SLM-NEXT:    fcoms (%ecx) # sched: [6:1.00]
; SLM-NEXT:    fcoml (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fcom:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fcom %st(1) # sched: [1:1.00]
; SANDY-NEXT:    fcom %st(3) # sched: [1:1.00]
; SANDY-NEXT:    fcoms (%ecx) # sched: [8:1.00]
; SANDY-NEXT:    fcoml (%eax) # sched: [8:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fcom:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fcom %st(1) # sched: [1:1.00]
; HASWELL-NEXT:    fcom %st(3) # sched: [1:1.00]
; HASWELL-NEXT:    fcoms (%ecx) # sched: [8:1.00]
; HASWELL-NEXT:    fcoml (%eax) # sched: [8:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fcom:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fcom %st(1) # sched: [1:1.00]
; BROADWELL-NEXT:    fcom %st(3) # sched: [1:1.00]
; BROADWELL-NEXT:    fcoms (%ecx) # sched: [7:1.00]
; BROADWELL-NEXT:    fcoml (%eax) # sched: [7:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fcom:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fcom %st(1) # sched: [1:1.00]
; SKYLAKE-NEXT:    fcom %st(3) # sched: [1:1.00]
; SKYLAKE-NEXT:    fcoms (%ecx) # sched: [8:1.00]
; SKYLAKE-NEXT:    fcoml (%eax) # sched: [8:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fcom:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fcom %st(1) # sched: [1:1.00]
; SKX-NEXT:    fcom %st(3) # sched: [1:1.00]
; SKX-NEXT:    fcoms (%ecx) # sched: [8:1.00]
; SKX-NEXT:    fcoml (%eax) # sched: [8:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fcom:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fcom %st(1) # sched: [1:1.00]
; BDVER2-NEXT:    fcom %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    fcoms (%ecx) # sched: [6:1.00]
; BDVER2-NEXT:    fcoml (%eax) # sched: [6:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fcom:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fcom %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fcom %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    fcoms (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    fcoml (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fcom:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fcom %st(1) # sched: [1:1.00]
; ZNVER1-NEXT:    fcom %st(3) # sched: [1:1.00]
; ZNVER1-NEXT:    fcoms (%ecx) # sched: [8:1.00]
; ZNVER1-NEXT:    fcoml (%eax) # sched: [8:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fcom \0A\09 fcom %st(3) \0A\09 fcoms $0 \0A\09 fcoml $1", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_fcomp_fcompp(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fcomp_fcompp:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fcomp %st(1)
; GENERIC-NEXT:    fcomp %st(3)
; GENERIC-NEXT:    fcomps (%ecx)
; GENERIC-NEXT:    fcompl (%eax)
; GENERIC-NEXT:    fcompp
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fcomp_fcompp:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fcomp %st(1) # sched: [5:5.00]
; ATOM-NEXT:    fcomp %st(3) # sched: [5:5.00]
; ATOM-NEXT:    fcomps (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fcompl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    fcompp # sched: [1:1.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fcomp_fcompp:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fcomp %st(1) # sched: [3:1.00]
; SLM-NEXT:    fcomp %st(3) # sched: [3:1.00]
; SLM-NEXT:    fcomps (%ecx) # sched: [6:1.00]
; SLM-NEXT:    fcompl (%eax) # sched: [6:1.00]
; SLM-NEXT:    fcompp # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fcomp_fcompp:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fcomp %st(1) # sched: [1:1.00]
; SANDY-NEXT:    fcomp %st(3) # sched: [1:1.00]
; SANDY-NEXT:    fcomps (%ecx) # sched: [8:1.00]
; SANDY-NEXT:    fcompl (%eax) # sched: [8:1.00]
; SANDY-NEXT:    fcompp # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fcomp_fcompp:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fcomp %st(1) # sched: [1:1.00]
; HASWELL-NEXT:    fcomp %st(3) # sched: [1:1.00]
; HASWELL-NEXT:    fcomps (%ecx) # sched: [8:1.00]
; HASWELL-NEXT:    fcompl (%eax) # sched: [8:1.00]
; HASWELL-NEXT:    fcompp # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fcomp_fcompp:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fcomp %st(1) # sched: [1:1.00]
; BROADWELL-NEXT:    fcomp %st(3) # sched: [1:1.00]
; BROADWELL-NEXT:    fcomps (%ecx) # sched: [7:1.00]
; BROADWELL-NEXT:    fcompl (%eax) # sched: [7:1.00]
; BROADWELL-NEXT:    fcompp # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fcomp_fcompp:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fcomp %st(1) # sched: [1:1.00]
; SKYLAKE-NEXT:    fcomp %st(3) # sched: [1:1.00]
; SKYLAKE-NEXT:    fcomps (%ecx) # sched: [8:1.00]
; SKYLAKE-NEXT:    fcompl (%eax) # sched: [8:1.00]
; SKYLAKE-NEXT:    fcompp # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fcomp_fcompp:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fcomp %st(1) # sched: [1:1.00]
; SKX-NEXT:    fcomp %st(3) # sched: [1:1.00]
; SKX-NEXT:    fcomps (%ecx) # sched: [8:1.00]
; SKX-NEXT:    fcompl (%eax) # sched: [8:1.00]
; SKX-NEXT:    fcompp # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fcomp_fcompp:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fcomp %st(1) # sched: [1:1.00]
; BDVER2-NEXT:    fcomp %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    fcomps (%ecx) # sched: [6:1.00]
; BDVER2-NEXT:    fcompl (%eax) # sched: [6:1.00]
; BDVER2-NEXT:    fcompp # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fcomp_fcompp:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fcomp %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fcomp %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    fcomps (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    fcompl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    fcompp # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fcomp_fcompp:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fcomp %st(1) # sched: [1:1.00]
; ZNVER1-NEXT:    fcomp %st(3) # sched: [1:1.00]
; ZNVER1-NEXT:    fcomps (%ecx) # sched: [8:1.00]
; ZNVER1-NEXT:    fcompl (%eax) # sched: [8:1.00]
; ZNVER1-NEXT:    fcompp # sched: [1:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fcomp \0A\09 fcomp %st(3) \0A\09 fcomps $0 \0A\09 fcompl $1 \0A\09 fcompp", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_fcomi_fcomip() optsize {
; GENERIC-LABEL: test_fcomi_fcomip:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fcomi %st(3)
; GENERIC-NEXT:    fcompi %st(3)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fcomi_fcomip:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fcomi %st(3) # sched: [9:4.50]
; ATOM-NEXT:    fcompi %st(3) # sched: [9:4.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fcomi_fcomip:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fcomi %st(3) # sched: [3:1.00]
; SLM-NEXT:    fcompi %st(3) # sched: [3:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fcomi_fcomip:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fcomi %st(3) # sched: [3:1.00]
; SANDY-NEXT:    fcompi %st(3) # sched: [3:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fcomi_fcomip:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fcomi %st(3) # sched: [1:0.50]
; HASWELL-NEXT:    fcompi %st(3) # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fcomi_fcomip:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fcomi %st(3) # sched: [3:1.00]
; BROADWELL-NEXT:    fcompi %st(3) # sched: [3:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fcomi_fcomip:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fcomi %st(3) # sched: [2:1.00]
; SKYLAKE-NEXT:    fcompi %st(3) # sched: [2:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fcomi_fcomip:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fcomi %st(3) # sched: [2:1.00]
; SKX-NEXT:    fcompi %st(3) # sched: [2:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fcomi_fcomip:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fcomi %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    fcompi %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fcomi_fcomip:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fcomi %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    fcompi %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fcomi_fcomip:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fcomi %st(3) # sched: [9:0.50]
; ZNVER1-NEXT:    fcompi %st(3) # sched: [9:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fcomi %st(3) \0A\09 fcomip %st(3)", ""() nounwind
  ret void
}

define void @test_fcos() optsize {
; GENERIC-LABEL: test_fcos:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fcos
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fcos:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fcos # sched: [174:87.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fcos:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fcos # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fcos:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fcos # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fcos:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fcos # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fcos:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fcos # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fcos:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fcos # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fcos:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fcos # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fcos:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fcos # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fcos:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fcos # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fcos:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fcos # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fcos", ""() nounwind
  ret void
}

define void @test_fdecstp() optsize {
; GENERIC-LABEL: test_fdecstp:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fdecstp
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fdecstp:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fdecstp # sched: [1:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fdecstp:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fdecstp # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fdecstp:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fdecstp # sched: [1:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fdecstp:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fdecstp # sched: [2:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fdecstp:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fdecstp # sched: [2:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fdecstp:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fdecstp # sched: [2:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fdecstp:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fdecstp # sched: [2:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fdecstp:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fdecstp # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fdecstp:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fdecstp # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fdecstp:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fdecstp # sched: [11:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fdecstp", ""() nounwind
  ret void
}

define void @test_fdiv(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fdiv:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fdiv %st(0), %st(1)
; GENERIC-NEXT:    fdiv %st(2)
; GENERIC-NEXT:    fdivs (%ecx)
; GENERIC-NEXT:    fdivl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fdiv:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fdiv %st(0), %st(1) # sched: [34:17.00]
; ATOM-NEXT:    fdiv %st(2) # sched: [34:17.00]
; ATOM-NEXT:    fdivs (%ecx) # sched: [34:17.00]
; ATOM-NEXT:    fdivl (%eax) # sched: [34:17.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fdiv:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fdiv %st(0), %st(1) # sched: [19:17.00]
; SLM-NEXT:    fdiv %st(2) # sched: [19:17.00]
; SLM-NEXT:    fdivs (%ecx) # sched: [22:17.00]
; SLM-NEXT:    fdivl (%eax) # sched: [22:17.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fdiv:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fdiv %st(0), %st(1) # sched: [14:14.00]
; SANDY-NEXT:    fdiv %st(2) # sched: [14:14.00]
; SANDY-NEXT:    fdivs (%ecx) # sched: [31:1.00]
; SANDY-NEXT:    fdivl (%eax) # sched: [31:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fdiv:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fdiv %st(0), %st(1) # sched: [24:1.00]
; HASWELL-NEXT:    fdiv %st(2) # sched: [20:1.00]
; HASWELL-NEXT:    fdivs (%ecx) # sched: [31:1.00]
; HASWELL-NEXT:    fdivl (%eax) # sched: [31:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fdiv:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
; BROADWELL-NEXT:    fdiv %st(2) # sched: [20:1.00]
; BROADWELL-NEXT:    fdivs (%ecx) # sched: [21:1.00]
; BROADWELL-NEXT:    fdivl (%eax) # sched: [21:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fdiv:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
; SKYLAKE-NEXT:    fdiv %st(2) # sched: [20:1.00]
; SKYLAKE-NEXT:    fdivs (%ecx) # sched: [22:1.00]
; SKYLAKE-NEXT:    fdivl (%eax) # sched: [22:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fdiv:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
; SKX-NEXT:    fdiv %st(2) # sched: [20:1.00]
; SKX-NEXT:    fdivs (%ecx) # sched: [22:1.00]
; SKX-NEXT:    fdivl (%eax) # sched: [22:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fdiv:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fdiv %st(0), %st(1) # sched: [9:9.50]
; BDVER2-NEXT:    fdiv %st(2) # sched: [9:9.50]
; BDVER2-NEXT:    fdivs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT:    fdivl (%eax) # sched: [14:9.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fdiv:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fdiv %st(0), %st(1) # sched: [19:19.00]
; BTVER2-NEXT:    fdiv %st(2) # sched: [19:19.00]
; BTVER2-NEXT:    fdivs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT:    fdivl (%eax) # sched: [24:19.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fdiv:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fdiv %st(0), %st(1) # sched: [15:1.00]
; ZNVER1-NEXT:    fdiv %st(2) # sched: [15:1.00]
; ZNVER1-NEXT:    fdivs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT:    fdivl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fdiv %st(0), %st(1) \0A\09 fdiv %st(2), %st(0) \0A\09 fdivs $0 \0A\09 fdivl $1", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_fdivp_fidiv(i16 *%a0, i32 *%a1) optsize {
; GENERIC-LABEL: test_fdivp_fidiv:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fdivp %st(1)
; GENERIC-NEXT:    fdivp %st(2)
; GENERIC-NEXT:    fidivs (%ecx)
; GENERIC-NEXT:    fidivl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fdivp_fidiv:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fdivp %st(1) # sched: [34:17.00]
; ATOM-NEXT:    fdivp %st(2) # sched: [34:17.00]
; ATOM-NEXT:    fidivs (%ecx) # sched: [34:17.00]
; ATOM-NEXT:    fidivl (%eax) # sched: [34:17.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fdivp_fidiv:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fdivp %st(1) # sched: [19:17.00]
; SLM-NEXT:    fdivp %st(2) # sched: [19:17.00]
; SLM-NEXT:    fidivs (%ecx) # sched: [22:17.00]
; SLM-NEXT:    fidivl (%eax) # sched: [22:17.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fdivp_fidiv:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fdivp %st(1) # sched: [14:14.00]
; SANDY-NEXT:    fdivp %st(2) # sched: [14:14.00]
; SANDY-NEXT:    fidivs (%ecx) # sched: [34:1.00]
; SANDY-NEXT:    fidivl (%eax) # sched: [34:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fdivp_fidiv:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fdivp %st(1) # sched: [24:1.00]
; HASWELL-NEXT:    fdivp %st(2) # sched: [24:1.00]
; HASWELL-NEXT:    fidivs (%ecx) # sched: [34:1.00]
; HASWELL-NEXT:    fidivl (%eax) # sched: [34:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fdivp_fidiv:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fdivp %st(1) # sched: [15:1.00]
; BROADWELL-NEXT:    fdivp %st(2) # sched: [15:1.00]
; BROADWELL-NEXT:    fidivs (%ecx) # sched: [24:1.00]
; BROADWELL-NEXT:    fidivl (%eax) # sched: [24:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fdivp_fidiv:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fdivp %st(1) # sched: [15:1.00]
; SKYLAKE-NEXT:    fdivp %st(2) # sched: [15:1.00]
; SKYLAKE-NEXT:    fidivs (%ecx) # sched: [25:1.00]
; SKYLAKE-NEXT:    fidivl (%eax) # sched: [25:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fdivp_fidiv:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fdivp %st(1) # sched: [15:1.00]
; SKX-NEXT:    fdivp %st(2) # sched: [15:1.00]
; SKX-NEXT:    fidivs (%ecx) # sched: [25:1.00]
; SKX-NEXT:    fidivl (%eax) # sched: [25:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fdivp_fidiv:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fdivp %st(1) # sched: [9:9.50]
; BDVER2-NEXT:    fdivp %st(2) # sched: [9:9.50]
; BDVER2-NEXT:    fidivs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT:    fidivl (%eax) # sched: [14:9.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fdivp_fidiv:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fdivp %st(1) # sched: [19:19.00]
; BTVER2-NEXT:    fdivp %st(2) # sched: [19:19.00]
; BTVER2-NEXT:    fidivs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT:    fidivl (%eax) # sched: [24:19.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fdivp_fidiv:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fdivp %st(1) # sched: [15:1.00]
; ZNVER1-NEXT:    fdivp %st(2) # sched: [15:1.00]
; ZNVER1-NEXT:    fidivs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT:    fidivl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fdivp \0A\09 fdivp %st(2), %st(0) \0A\09 fidivs $0 \0A\09 fidivl $1", "*m,*m"(i16 *%a0, i32 *%a1) nounwind
  ret void
}

define void @test_fdivr(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fdivr:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fdivr %st(0), %st(1)
; GENERIC-NEXT:    fdivr %st(2)
; GENERIC-NEXT:    fdivrs (%ecx)
; GENERIC-NEXT:    fdivrl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fdivr:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fdivr %st(0), %st(1) # sched: [34:17.00]
; ATOM-NEXT:    fdivr %st(2) # sched: [34:17.00]
; ATOM-NEXT:    fdivrs (%ecx) # sched: [34:17.00]
; ATOM-NEXT:    fdivrl (%eax) # sched: [34:17.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fdivr:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fdivr %st(0), %st(1) # sched: [19:17.00]
; SLM-NEXT:    fdivr %st(2) # sched: [19:17.00]
; SLM-NEXT:    fdivrs (%ecx) # sched: [22:17.00]
; SLM-NEXT:    fdivrl (%eax) # sched: [22:17.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fdivr:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fdivr %st(0), %st(1) # sched: [14:14.00]
; SANDY-NEXT:    fdivr %st(2) # sched: [14:14.00]
; SANDY-NEXT:    fdivrs (%ecx) # sched: [31:1.00]
; SANDY-NEXT:    fdivrl (%eax) # sched: [31:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fdivr:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
; HASWELL-NEXT:    fdivr %st(2) # sched: [24:1.00]
; HASWELL-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
; HASWELL-NEXT:    fdivrl (%eax) # sched: [27:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fdivr:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
; BROADWELL-NEXT:    fdivr %st(2) # sched: [15:1.00]
; BROADWELL-NEXT:    fdivrs (%ecx) # sched: [26:1.00]
; BROADWELL-NEXT:    fdivrl (%eax) # sched: [26:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fdivr:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
; SKYLAKE-NEXT:    fdivr %st(2) # sched: [15:1.00]
; SKYLAKE-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
; SKYLAKE-NEXT:    fdivrl (%eax) # sched: [27:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fdivr:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fdivr %st(0), %st(1) # sched: [20:1.00]
; SKX-NEXT:    fdivr %st(2) # sched: [15:1.00]
; SKX-NEXT:    fdivrs (%ecx) # sched: [27:1.00]
; SKX-NEXT:    fdivrl (%eax) # sched: [27:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fdivr:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fdivr %st(0), %st(1) # sched: [9:9.50]
; BDVER2-NEXT:    fdivr %st(2) # sched: [9:9.50]
; BDVER2-NEXT:    fdivrs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT:    fdivrl (%eax) # sched: [14:9.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fdivr:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fdivr %st(0), %st(1) # sched: [19:19.00]
; BTVER2-NEXT:    fdivr %st(2) # sched: [19:19.00]
; BTVER2-NEXT:    fdivrs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT:    fdivrl (%eax) # sched: [24:19.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fdivr:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fdivr %st(0), %st(1) # sched: [15:1.00]
; ZNVER1-NEXT:    fdivr %st(2) # sched: [15:1.00]
; ZNVER1-NEXT:    fdivrs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT:    fdivrl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fdivr %st(0), %st(1) \0A\09 fdivr %st(2), %st(0) \0A\09 fdivrs $0 \0A\09 fdivrl $1", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_fdivrp_fidivr(i16 *%a0, i32 *%a1) optsize {
; GENERIC-LABEL: test_fdivrp_fidivr:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fdivrp %st(1)
; GENERIC-NEXT:    fdivrp %st(2)
; GENERIC-NEXT:    fidivrs (%ecx)
; GENERIC-NEXT:    fidivrl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fdivrp_fidivr:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fdivrp %st(1) # sched: [34:17.00]
; ATOM-NEXT:    fdivrp %st(2) # sched: [34:17.00]
; ATOM-NEXT:    fidivrs (%ecx) # sched: [34:17.00]
; ATOM-NEXT:    fidivrl (%eax) # sched: [34:17.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fdivrp_fidivr:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fdivrp %st(1) # sched: [19:17.00]
; SLM-NEXT:    fdivrp %st(2) # sched: [19:17.00]
; SLM-NEXT:    fidivrs (%ecx) # sched: [22:17.00]
; SLM-NEXT:    fidivrl (%eax) # sched: [22:17.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fdivrp_fidivr:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fdivrp %st(1) # sched: [14:14.00]
; SANDY-NEXT:    fdivrp %st(2) # sched: [14:14.00]
; SANDY-NEXT:    fidivrs (%ecx) # sched: [34:1.00]
; SANDY-NEXT:    fidivrl (%eax) # sched: [34:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fdivrp_fidivr:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fdivrp %st(1) # sched: [20:1.00]
; HASWELL-NEXT:    fdivrp %st(2) # sched: [20:1.00]
; HASWELL-NEXT:    fidivrs (%ecx) # sched: [30:1.00]
; HASWELL-NEXT:    fidivrl (%eax) # sched: [30:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fdivrp_fidivr:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fdivrp %st(1) # sched: [20:1.00]
; BROADWELL-NEXT:    fdivrp %st(2) # sched: [20:1.00]
; BROADWELL-NEXT:    fidivrs (%ecx) # sched: [29:1.00]
; BROADWELL-NEXT:    fidivrl (%eax) # sched: [29:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fdivrp_fidivr:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fdivrp %st(1) # sched: [20:1.00]
; SKYLAKE-NEXT:    fdivrp %st(2) # sched: [20:1.00]
; SKYLAKE-NEXT:    fidivrs (%ecx) # sched: [30:1.00]
; SKYLAKE-NEXT:    fidivrl (%eax) # sched: [30:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fdivrp_fidivr:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fdivrp %st(1) # sched: [20:1.00]
; SKX-NEXT:    fdivrp %st(2) # sched: [20:1.00]
; SKX-NEXT:    fidivrs (%ecx) # sched: [30:1.00]
; SKX-NEXT:    fidivrl (%eax) # sched: [30:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fdivrp_fidivr:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fdivrp %st(1) # sched: [9:9.50]
; BDVER2-NEXT:    fdivrp %st(2) # sched: [9:9.50]
; BDVER2-NEXT:    fidivrs (%ecx) # sched: [14:9.50]
; BDVER2-NEXT:    fidivrl (%eax) # sched: [14:9.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fdivrp_fidivr:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fdivrp %st(1) # sched: [19:19.00]
; BTVER2-NEXT:    fdivrp %st(2) # sched: [19:19.00]
; BTVER2-NEXT:    fidivrs (%ecx) # sched: [24:19.00]
; BTVER2-NEXT:    fidivrl (%eax) # sched: [24:19.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fdivrp_fidivr:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fdivrp %st(1) # sched: [15:1.00]
; ZNVER1-NEXT:    fdivrp %st(2) # sched: [15:1.00]
; ZNVER1-NEXT:    fidivrs (%ecx) # sched: [22:1.00]
; ZNVER1-NEXT:    fidivrl (%eax) # sched: [22:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fdivrp \0A\09 fdivrp %st(2), %st(0) \0A\09 fidivrs $0 \0A\09 fidivrl $1", "*m,*m"(i16 *%a0, i32 *%a1) nounwind
  ret void
}

define void @test_ffree() optsize {
; GENERIC-LABEL: test_ffree:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    ffree %st(0)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_ffree:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    ffree %st(0) # sched: [1:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_ffree:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    ffree %st(0) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_ffree:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    ffree %st(0) # sched: [1:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_ffree:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    ffree %st(0) # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_ffree:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    ffree %st(0) # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_ffree:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    ffree %st(0) # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_ffree:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    ffree %st(0) # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_ffree:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    ffree %st(0) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_ffree:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    ffree %st(0) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_ffree:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    ffree %st(0) # sched: [11:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "ffree %st(0)", ""() nounwind
  ret void
}

define void @test_ficom(i16 *%a0, i32 *%a1) optsize {
; GENERIC-LABEL: test_ficom:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    ficoms (%ecx)
; GENERIC-NEXT:    ficoml (%eax)
; GENERIC-NEXT:    ficomps (%ecx)
; GENERIC-NEXT:    ficompl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_ficom:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    ficoms (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    ficoml (%eax) # sched: [5:5.00]
; ATOM-NEXT:    ficomps (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    ficompl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_ficom:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    ficoms (%ecx) # sched: [6:1.00]
; SLM-NEXT:    ficoml (%eax) # sched: [6:1.00]
; SLM-NEXT:    ficomps (%ecx) # sched: [6:1.00]
; SLM-NEXT:    ficompl (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_ficom:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    ficoms (%ecx) # sched: [11:2.00]
; SANDY-NEXT:    ficoml (%eax) # sched: [11:2.00]
; SANDY-NEXT:    ficomps (%ecx) # sched: [11:2.00]
; SANDY-NEXT:    ficompl (%eax) # sched: [11:2.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_ficom:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    ficoms (%ecx) # sched: [11:2.00]
; HASWELL-NEXT:    ficoml (%eax) # sched: [11:2.00]
; HASWELL-NEXT:    ficomps (%ecx) # sched: [11:2.00]
; HASWELL-NEXT:    ficompl (%eax) # sched: [11:2.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_ficom:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    ficoms (%ecx) # sched: [10:2.00]
; BROADWELL-NEXT:    ficoml (%eax) # sched: [10:2.00]
; BROADWELL-NEXT:    ficomps (%ecx) # sched: [10:2.00]
; BROADWELL-NEXT:    ficompl (%eax) # sched: [10:2.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_ficom:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    ficoms (%ecx) # sched: [11:2.00]
; SKYLAKE-NEXT:    ficoml (%eax) # sched: [11:2.00]
; SKYLAKE-NEXT:    ficomps (%ecx) # sched: [11:2.00]
; SKYLAKE-NEXT:    ficompl (%eax) # sched: [11:2.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_ficom:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    ficoms (%ecx) # sched: [11:2.00]
; SKX-NEXT:    ficoml (%eax) # sched: [11:2.00]
; SKX-NEXT:    ficomps (%ecx) # sched: [11:2.00]
; SKX-NEXT:    ficompl (%eax) # sched: [11:2.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_ficom:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    ficoms (%ecx) # sched: [6:1.00]
; BDVER2-NEXT:    ficoml (%eax) # sched: [6:1.00]
; BDVER2-NEXT:    ficomps (%ecx) # sched: [6:1.00]
; BDVER2-NEXT:    ficompl (%eax) # sched: [6:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_ficom:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    ficoms (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    ficoml (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    ficomps (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    ficompl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_ficom:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    ficoms (%ecx) # sched: [12:1.50]
; ZNVER1-NEXT:    ficoml (%eax) # sched: [12:1.50]
; ZNVER1-NEXT:    ficomps (%ecx) # sched: [12:1.50]
; ZNVER1-NEXT:    ficompl (%eax) # sched: [12:1.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "ficoms $0 \0A\09 ficoml $1 \0A\09 ficomps $0 \0A\09 ficompl $1", "*m,*m"(i16 *%a0, i32 *%a1) nounwind
  ret void
}

define void @test_fild(i16 *%a0, i32 *%a1, i64 *%a2) optsize {
; GENERIC-LABEL: test_fild:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %edx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    filds (%edx)
; GENERIC-NEXT:    fildl (%ecx)
; GENERIC-NEXT:    fildll (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fild:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    filds (%edx) # sched: [5:5.00]
; ATOM-NEXT:    fildl (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fildll (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fild:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    filds (%edx) # sched: [3:1.00]
; SLM-NEXT:    fildl (%ecx) # sched: [3:1.00]
; SLM-NEXT:    fildll (%eax) # sched: [3:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fild:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    filds (%edx) # sched: [10:1.00]
; SANDY-NEXT:    fildl (%ecx) # sched: [10:1.00]
; SANDY-NEXT:    fildll (%eax) # sched: [10:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fild:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    filds (%edx) # sched: [10:1.00]
; HASWELL-NEXT:    fildl (%ecx) # sched: [10:1.00]
; HASWELL-NEXT:    fildll (%eax) # sched: [10:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fild:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    filds (%edx) # sched: [9:1.00]
; BROADWELL-NEXT:    fildl (%ecx) # sched: [9:1.00]
; BROADWELL-NEXT:    fildll (%eax) # sched: [9:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fild:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    filds (%edx) # sched: [10:1.00]
; SKYLAKE-NEXT:    fildl (%ecx) # sched: [10:1.00]
; SKYLAKE-NEXT:    fildll (%eax) # sched: [10:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fild:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    filds (%edx) # sched: [10:1.00]
; SKX-NEXT:    fildl (%ecx) # sched: [10:1.00]
; SKX-NEXT:    fildll (%eax) # sched: [10:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fild:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    filds (%edx) # sched: [5:0.50]
; BDVER2-NEXT:    fildl (%ecx) # sched: [5:0.50]
; BDVER2-NEXT:    fildll (%eax) # sched: [5:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fild:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    filds (%edx) # sched: [5:1.00]
; BTVER2-NEXT:    fildl (%ecx) # sched: [5:1.00]
; BTVER2-NEXT:    fildll (%eax) # sched: [5:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fild:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    filds (%edx) # sched: [11:1.00]
; ZNVER1-NEXT:    fildl (%ecx) # sched: [11:1.00]
; ZNVER1-NEXT:    fildll (%eax) # sched: [11:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "filds $0 \0A\09 fildl $1 \0A\09 fildll $2", "*m,*m,*m"(i16 *%a0, i32 *%a1, i64 *%a2) nounwind
  ret void
}

define void @test_fincstp() optsize {
; GENERIC-LABEL: test_fincstp:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fincstp
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fincstp:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fincstp # sched: [1:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fincstp:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fincstp # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fincstp:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fincstp # sched: [1:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fincstp:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fincstp # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fincstp:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fincstp # sched: [1:0.50]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fincstp:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fincstp # sched: [1:0.50]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fincstp:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fincstp # sched: [1:0.50]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fincstp:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fincstp # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fincstp:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fincstp # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fincstp:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fincstp # sched: [11:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fincstp", ""() nounwind
  ret void
}

define void @test_finit() optsize {
; GENERIC-LABEL: test_finit:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    wait
; GENERIC-NEXT:    fninit
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_finit:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    wait # sched: [1:0.50]
; ATOM-NEXT:    fninit # sched: [63:31.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_finit:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    wait # sched: [100:1.00]
; SLM-NEXT:    fninit # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_finit:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    wait # sched: [100:0.33]
; SANDY-NEXT:    fninit # sched: [5:1.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_finit:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    wait # sched: [2:0.50]
; HASWELL-NEXT:    fninit # sched: [75:6.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_finit:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    wait # sched: [2:0.50]
; BROADWELL-NEXT:    fninit # sched: [75:6.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_finit:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    wait # sched: [2:0.50]
; SKYLAKE-NEXT:    fninit # sched: [75:6.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_finit:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    wait # sched: [2:0.50]
; SKX-NEXT:    fninit # sched: [75:6.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_finit:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    wait # sched: [100:0.50]
; BDVER2-NEXT:    fninit # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_finit:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    wait # sched: [100:0.50]
; BTVER2-NEXT:    fninit # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_finit:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    wait # sched: [1:1.00]
; ZNVER1-NEXT:    fninit # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "finit", ""() nounwind
  ret void
}

define void @test_fninit() optsize {
; GENERIC-LABEL: test_fninit:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fninit
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fninit:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fninit # sched: [63:31.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fninit:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fninit # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fninit:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fninit # sched: [5:1.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fninit:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fninit # sched: [75:6.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fninit:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fninit # sched: [75:6.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fninit:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fninit # sched: [75:6.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fninit:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fninit # sched: [75:6.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fninit:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fninit # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fninit:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fninit # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fninit:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fninit # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fninit", ""() nounwind
  ret void
}

define void @test_fist_fistp_fisttp(i16* %a0, i32* %a1, i64 *%a2) optsize {
; GENERIC-LABEL: test_fist_fistp_fisttp:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %edx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fists (%edx)
; GENERIC-NEXT:    fistl (%ecx)
; GENERIC-NEXT:    fistps (%edx)
; GENERIC-NEXT:    fistpl (%ecx)
; GENERIC-NEXT:    fistpll (%eax)
; GENERIC-NEXT:    fisttps (%edx)
; GENERIC-NEXT:    fisttpl (%ecx)
; GENERIC-NEXT:    fisttpll (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fist_fistp_fisttp:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fists (%edx) # sched: [6:3.00]
; ATOM-NEXT:    fistl (%ecx) # sched: [6:3.00]
; ATOM-NEXT:    fistps (%edx) # sched: [6:3.00]
; ATOM-NEXT:    fistpl (%ecx) # sched: [6:3.00]
; ATOM-NEXT:    fistpll (%eax) # sched: [6:3.00]
; ATOM-NEXT:    fisttps (%edx) # sched: [2:1.00]
; ATOM-NEXT:    fisttpl (%ecx) # sched: [2:1.00]
; ATOM-NEXT:    fisttpll (%eax) # sched: [2:1.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fist_fistp_fisttp:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fists (%edx) # sched: [1:1.00]
; SLM-NEXT:    fistl (%ecx) # sched: [1:1.00]
; SLM-NEXT:    fistps (%edx) # sched: [1:1.00]
; SLM-NEXT:    fistpl (%ecx) # sched: [1:1.00]
; SLM-NEXT:    fistpll (%eax) # sched: [1:1.00]
; SLM-NEXT:    fisttps (%edx) # sched: [1:1.00]
; SLM-NEXT:    fisttpl (%ecx) # sched: [1:1.00]
; SLM-NEXT:    fisttpll (%eax) # sched: [1:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fist_fistp_fisttp:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fists (%edx) # sched: [9:1.00]
; SANDY-NEXT:    fistl (%ecx) # sched: [9:1.00]
; SANDY-NEXT:    fistps (%edx) # sched: [9:1.00]
; SANDY-NEXT:    fistpl (%ecx) # sched: [9:1.00]
; SANDY-NEXT:    fistpll (%eax) # sched: [9:1.00]
; SANDY-NEXT:    fisttps (%edx) # sched: [5:1.00]
; SANDY-NEXT:    fisttpl (%ecx) # sched: [5:1.00]
; SANDY-NEXT:    fisttpll (%eax) # sched: [5:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fist_fistp_fisttp:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fists (%edx) # sched: [4:1.00]
; HASWELL-NEXT:    fistl (%ecx) # sched: [4:1.00]
; HASWELL-NEXT:    fistps (%edx) # sched: [4:1.00]
; HASWELL-NEXT:    fistpl (%ecx) # sched: [4:1.00]
; HASWELL-NEXT:    fistpll (%eax) # sched: [4:1.00]
; HASWELL-NEXT:    fisttps (%edx) # sched: [4:1.00]
; HASWELL-NEXT:    fisttpl (%ecx) # sched: [4:1.00]
; HASWELL-NEXT:    fisttpll (%eax) # sched: [4:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fist_fistp_fisttp:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fists (%edx) # sched: [4:1.00]
; BROADWELL-NEXT:    fistl (%ecx) # sched: [4:1.00]
; BROADWELL-NEXT:    fistps (%edx) # sched: [4:1.00]
; BROADWELL-NEXT:    fistpl (%ecx) # sched: [4:1.00]
; BROADWELL-NEXT:    fistpll (%eax) # sched: [4:1.00]
; BROADWELL-NEXT:    fisttps (%edx) # sched: [4:1.00]
; BROADWELL-NEXT:    fisttpl (%ecx) # sched: [4:1.00]
; BROADWELL-NEXT:    fisttpll (%eax) # sched: [4:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fist_fistp_fisttp:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fists (%edx) # sched: [4:1.00]
; SKYLAKE-NEXT:    fistl (%ecx) # sched: [4:1.00]
; SKYLAKE-NEXT:    fistps (%edx) # sched: [4:1.00]
; SKYLAKE-NEXT:    fistpl (%ecx) # sched: [4:1.00]
; SKYLAKE-NEXT:    fistpll (%eax) # sched: [4:1.00]
; SKYLAKE-NEXT:    fisttps (%edx) # sched: [4:1.00]
; SKYLAKE-NEXT:    fisttpl (%ecx) # sched: [4:1.00]
; SKYLAKE-NEXT:    fisttpll (%eax) # sched: [4:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fist_fistp_fisttp:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fists (%edx) # sched: [4:1.00]
; SKX-NEXT:    fistl (%ecx) # sched: [4:1.00]
; SKX-NEXT:    fistps (%edx) # sched: [4:1.00]
; SKX-NEXT:    fistpl (%ecx) # sched: [4:1.00]
; SKX-NEXT:    fistpll (%eax) # sched: [4:1.00]
; SKX-NEXT:    fisttps (%edx) # sched: [4:1.00]
; SKX-NEXT:    fisttpl (%ecx) # sched: [4:1.00]
; SKX-NEXT:    fisttpll (%eax) # sched: [4:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fist_fistp_fisttp:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fists (%edx) # sched: [1:1.00]
; BDVER2-NEXT:    fistl (%ecx) # sched: [1:1.00]
; BDVER2-NEXT:    fistps (%edx) # sched: [1:1.00]
; BDVER2-NEXT:    fistpl (%ecx) # sched: [1:1.00]
; BDVER2-NEXT:    fistpll (%eax) # sched: [1:1.00]
; BDVER2-NEXT:    fisttps (%edx) # sched: [1:1.00]
; BDVER2-NEXT:    fisttpl (%ecx) # sched: [1:1.00]
; BDVER2-NEXT:    fisttpll (%eax) # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fist_fistp_fisttp:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fists (%edx) # sched: [1:1.00]
; BTVER2-NEXT:    fistl (%ecx) # sched: [1:1.00]
; BTVER2-NEXT:    fistps (%edx) # sched: [1:1.00]
; BTVER2-NEXT:    fistpl (%ecx) # sched: [1:1.00]
; BTVER2-NEXT:    fistpll (%eax) # sched: [1:1.00]
; BTVER2-NEXT:    fisttps (%edx) # sched: [1:1.00]
; BTVER2-NEXT:    fisttpl (%ecx) # sched: [1:1.00]
; BTVER2-NEXT:    fisttpll (%eax) # sched: [1:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fist_fistp_fisttp:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fists (%edx) # sched: [12:0.50]
; ZNVER1-NEXT:    fistl (%ecx) # sched: [12:0.50]
; ZNVER1-NEXT:    fistps (%edx) # sched: [12:0.50]
; ZNVER1-NEXT:    fistpl (%ecx) # sched: [12:0.50]
; ZNVER1-NEXT:    fistpll (%eax) # sched: [12:0.50]
; ZNVER1-NEXT:    fisttps (%edx) # sched: [12:0.50]
; ZNVER1-NEXT:    fisttpl (%ecx) # sched: [12:0.50]
; ZNVER1-NEXT:    fisttpll (%eax) # sched: [12:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fists $0 \0A\09 fistl $1 \0A\09 fistps $0 \0A\09 fistpl $1 \0A\09 fistpll $2 \0A\09 fisttps $0 \0A\09 fisttpl $1 \0A\09 fisttpll $2", "*m,*m,*m"(i16* %a0, i32* %a1, i64 *%a2) nounwind
  ret void
}

define void @test_fld(i16* %a0, i32* %a1, i64 *%a2) optsize {
; GENERIC-LABEL: test_fld:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %edx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fld %st(0)
; GENERIC-NEXT:    flds (%edx)
; GENERIC-NEXT:    fldl (%ecx)
; GENERIC-NEXT:    fldt (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fld:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fld %st(0) # sched: [1:1.00]
; ATOM-NEXT:    flds (%edx) # sched: [1:1.00]
; ATOM-NEXT:    fldl (%ecx) # sched: [1:1.00]
; ATOM-NEXT:    fldt (%eax) # sched: [4:2.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fld:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fld %st(0) # sched: [1:0.50]
; SLM-NEXT:    flds (%edx) # sched: [3:1.00]
; SLM-NEXT:    fldl (%ecx) # sched: [3:1.00]
; SLM-NEXT:    fldt (%eax) # sched: [3:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fld:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fld %st(0) # sched: [1:1.00]
; SANDY-NEXT:    flds (%edx) # sched: [9:1.00]
; SANDY-NEXT:    fldl (%ecx) # sched: [9:1.00]
; SANDY-NEXT:    fldt (%eax) # sched: [9:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fld:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fld %st(0) # sched: [1:0.50]
; HASWELL-NEXT:    flds (%edx) # sched: [7:0.50]
; HASWELL-NEXT:    fldl (%ecx) # sched: [7:0.50]
; HASWELL-NEXT:    fldt (%eax) # sched: [7:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fld:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fld %st(0) # sched: [1:0.25]
; BROADWELL-NEXT:    flds (%edx) # sched: [6:0.50]
; BROADWELL-NEXT:    fldl (%ecx) # sched: [6:0.50]
; BROADWELL-NEXT:    fldt (%eax) # sched: [6:0.50]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fld:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fld %st(0) # sched: [1:0.25]
; SKYLAKE-NEXT:    flds (%edx) # sched: [7:0.50]
; SKYLAKE-NEXT:    fldl (%ecx) # sched: [7:0.50]
; SKYLAKE-NEXT:    fldt (%eax) # sched: [7:0.50]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fld:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fld %st(0) # sched: [1:0.25]
; SKX-NEXT:    flds (%edx) # sched: [7:0.50]
; SKX-NEXT:    fldl (%ecx) # sched: [7:0.50]
; SKX-NEXT:    fldt (%eax) # sched: [7:0.50]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fld:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fld %st(0) # sched: [1:0.50]
; BDVER2-NEXT:    flds (%edx) # sched: [5:0.50]
; BDVER2-NEXT:    fldl (%ecx) # sched: [5:0.50]
; BDVER2-NEXT:    fldt (%eax) # sched: [5:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fld:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fld %st(0) # sched: [1:0.50]
; BTVER2-NEXT:    flds (%edx) # sched: [5:1.00]
; BTVER2-NEXT:    fldl (%ecx) # sched: [5:1.00]
; BTVER2-NEXT:    fldt (%eax) # sched: [5:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fld:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fld %st(0) # sched: [1:0.50]
; ZNVER1-NEXT:    flds (%edx) # sched: [8:0.50]
; ZNVER1-NEXT:    fldl (%ecx) # sched: [8:0.50]
; ZNVER1-NEXT:    fldt (%eax) # sched: [1:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fld %st(0) \0A\09 flds $0 \0A\09 fldl $1 \0A\09 fldt $2", "*m,*m,*m"(i16* %a0, i32* %a1, i64 *%a2) nounwind
  ret void
}

define void @test_fldcw_fldenv(i8* %a0) optsize {
; GENERIC-LABEL: test_fldcw_fldenv:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fldcw (%eax)
; GENERIC-NEXT:    fldenv (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fldcw_fldenv:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fldcw (%eax) # sched: [5:2.50]
; ATOM-NEXT:    fldenv (%eax) # sched: [100:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fldcw_fldenv:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fldcw (%eax) # sched: [3:1.00]
; SLM-NEXT:    fldenv (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fldcw_fldenv:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fldcw (%eax) # sched: [8:2.00]
; SANDY-NEXT:    fldenv (%eax) # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fldcw_fldenv:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fldcw (%eax) # sched: [7:1.00]
; HASWELL-NEXT:    fldenv (%eax) # sched: [61:14.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fldcw_fldenv:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fldcw (%eax) # sched: [7:1.00]
; BROADWELL-NEXT:    fldenv (%eax) # sched: [60:14.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fldcw_fldenv:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fldcw (%eax) # sched: [7:1.00]
; SKYLAKE-NEXT:    fldenv (%eax) # sched: [62:14.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fldcw_fldenv:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fldcw (%eax) # sched: [7:1.00]
; SKX-NEXT:    fldenv (%eax) # sched: [62:14.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fldcw_fldenv:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fldcw (%eax) # sched: [5:0.50]
; BDVER2-NEXT:    fldenv (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fldcw_fldenv:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fldcw (%eax) # sched: [5:1.00]
; BTVER2-NEXT:    fldenv (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fldcw_fldenv:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fldcw (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    fldenv (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fldcw $0 \0A\09 fldenv $0", "*m"(i8* %a0) nounwind
  ret void
}

define void @test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz() optsize {
; GENERIC-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fld1
; GENERIC-NEXT:    fldl2e
; GENERIC-NEXT:    fldl2t
; GENERIC-NEXT:    fldlg2
; GENERIC-NEXT:    fldln2
; GENERIC-NEXT:    fldpi
; GENERIC-NEXT:    fldz
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fld1 # sched: [6:3.00]
; ATOM-NEXT:    fldl2e # sched: [10:5.00]
; ATOM-NEXT:    fldl2t # sched: [10:5.00]
; ATOM-NEXT:    fldlg2 # sched: [10:5.00]
; ATOM-NEXT:    fldln2 # sched: [10:5.00]
; ATOM-NEXT:    fldpi # sched: [10:5.00]
; ATOM-NEXT:    fldz # sched: [1:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fld1 # sched: [1:0.50]
; SLM-NEXT:    fldl2e # sched: [1:1.00]
; SLM-NEXT:    fldl2t # sched: [1:1.00]
; SLM-NEXT:    fldlg2 # sched: [1:1.00]
; SLM-NEXT:    fldln2 # sched: [1:1.00]
; SLM-NEXT:    fldpi # sched: [1:1.00]
; SLM-NEXT:    fldz # sched: [1:0.50]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fld1 # sched: [1:1.00]
; SANDY-NEXT:    fldl2e # sched: [1:1.00]
; SANDY-NEXT:    fldl2t # sched: [1:1.00]
; SANDY-NEXT:    fldlg2 # sched: [1:1.00]
; SANDY-NEXT:    fldln2 # sched: [1:1.00]
; SANDY-NEXT:    fldpi # sched: [1:1.00]
; SANDY-NEXT:    fldz # sched: [1:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fld1 # sched: [1:1.00]
; HASWELL-NEXT:    fldl2e # sched: [1:1.00]
; HASWELL-NEXT:    fldl2t # sched: [1:1.00]
; HASWELL-NEXT:    fldlg2 # sched: [1:1.00]
; HASWELL-NEXT:    fldln2 # sched: [1:1.00]
; HASWELL-NEXT:    fldpi # sched: [1:1.00]
; HASWELL-NEXT:    fldz # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fld1 # sched: [1:1.00]
; BROADWELL-NEXT:    fldl2e # sched: [1:1.00]
; BROADWELL-NEXT:    fldl2t # sched: [1:1.00]
; BROADWELL-NEXT:    fldlg2 # sched: [1:1.00]
; BROADWELL-NEXT:    fldln2 # sched: [1:1.00]
; BROADWELL-NEXT:    fldpi # sched: [1:1.00]
; BROADWELL-NEXT:    fldz # sched: [1:0.50]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fld1 # sched: [1:1.00]
; SKYLAKE-NEXT:    fldl2e # sched: [1:1.00]
; SKYLAKE-NEXT:    fldl2t # sched: [1:1.00]
; SKYLAKE-NEXT:    fldlg2 # sched: [1:1.00]
; SKYLAKE-NEXT:    fldln2 # sched: [1:1.00]
; SKYLAKE-NEXT:    fldpi # sched: [1:1.00]
; SKYLAKE-NEXT:    fldz # sched: [1:0.50]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fld1 # sched: [1:1.00]
; SKX-NEXT:    fldl2e # sched: [1:1.00]
; SKX-NEXT:    fldl2t # sched: [1:1.00]
; SKX-NEXT:    fldlg2 # sched: [1:1.00]
; SKX-NEXT:    fldln2 # sched: [1:1.00]
; SKX-NEXT:    fldpi # sched: [1:1.00]
; SKX-NEXT:    fldz # sched: [1:0.50]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fld1 # sched: [3:1.00]
; BDVER2-NEXT:    fldl2e # sched: [3:1.00]
; BDVER2-NEXT:    fldl2t # sched: [3:1.00]
; BDVER2-NEXT:    fldlg2 # sched: [3:1.00]
; BDVER2-NEXT:    fldln2 # sched: [3:1.00]
; BDVER2-NEXT:    fldpi # sched: [3:1.00]
; BDVER2-NEXT:    fldz # sched: [3:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fld1 # sched: [3:1.00]
; BTVER2-NEXT:    fldl2e # sched: [3:1.00]
; BTVER2-NEXT:    fldl2t # sched: [3:1.00]
; BTVER2-NEXT:    fldlg2 # sched: [3:1.00]
; BTVER2-NEXT:    fldln2 # sched: [3:1.00]
; BTVER2-NEXT:    fldpi # sched: [3:1.00]
; BTVER2-NEXT:    fldz # sched: [3:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fld1_fldl2e_fldl2t_fldlg2_fldln2_fldpi_fldz:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fld1 # sched: [11:1.00]
; ZNVER1-NEXT:    fldl2e # sched: [11:1.00]
; ZNVER1-NEXT:    fldl2t # sched: [11:1.00]
; ZNVER1-NEXT:    fldlg2 # sched: [11:1.00]
; ZNVER1-NEXT:    fldln2 # sched: [11:1.00]
; ZNVER1-NEXT:    fldpi # sched: [11:1.00]
; ZNVER1-NEXT:    fldz # sched: [8:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fld1 \0A\09 fldl2e \0A\09 fldl2t \0A\09 fldlg2 \0A\09 fldln2 \0A\09 fldpi \0A\09 fldz", ""() nounwind
  ret void
}

define void @test_fmul(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fmul:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fmul %st(0), %st(1)
; GENERIC-NEXT:    fmul %st(2)
; GENERIC-NEXT:    fmuls (%ecx)
; GENERIC-NEXT:    fmull (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fmul:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fmul %st(0), %st(1) # sched: [4:4.00]
; ATOM-NEXT:    fmul %st(2) # sched: [4:4.00]
; ATOM-NEXT:    fmuls (%ecx) # sched: [4:4.00]
; ATOM-NEXT:    fmull (%eax) # sched: [4:4.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fmul:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fmul %st(0), %st(1) # sched: [5:2.00]
; SLM-NEXT:    fmul %st(2) # sched: [5:2.00]
; SLM-NEXT:    fmuls (%ecx) # sched: [8:2.00]
; SLM-NEXT:    fmull (%eax) # sched: [8:2.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fmul:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
; SANDY-NEXT:    fmul %st(2) # sched: [5:1.00]
; SANDY-NEXT:    fmuls (%ecx) # sched: [12:1.00]
; SANDY-NEXT:    fmull (%eax) # sched: [12:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fmul:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
; HASWELL-NEXT:    fmul %st(2) # sched: [5:1.00]
; HASWELL-NEXT:    fmuls (%ecx) # sched: [12:1.00]
; HASWELL-NEXT:    fmull (%eax) # sched: [12:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fmul:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
; BROADWELL-NEXT:    fmul %st(2) # sched: [5:1.00]
; BROADWELL-NEXT:    fmuls (%ecx) # sched: [11:1.00]
; BROADWELL-NEXT:    fmull (%eax) # sched: [11:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fmul:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fmul %st(0), %st(1) # sched: [4:1.00]
; SKYLAKE-NEXT:    fmul %st(2) # sched: [4:1.00]
; SKYLAKE-NEXT:    fmuls (%ecx) # sched: [11:1.00]
; SKYLAKE-NEXT:    fmull (%eax) # sched: [11:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fmul:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fmul %st(0), %st(1) # sched: [4:1.00]
; SKX-NEXT:    fmul %st(2) # sched: [4:1.00]
; SKX-NEXT:    fmuls (%ecx) # sched: [11:1.00]
; SKX-NEXT:    fmull (%eax) # sched: [11:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fmul:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fmul %st(0), %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    fmul %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fmuls (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    fmull (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fmul:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fmul %st(0), %st(1) # sched: [2:1.00]
; BTVER2-NEXT:    fmul %st(2) # sched: [2:1.00]
; BTVER2-NEXT:    fmuls (%ecx) # sched: [7:1.00]
; BTVER2-NEXT:    fmull (%eax) # sched: [7:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fmul:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fmul %st(0), %st(1) # sched: [3:0.50]
; ZNVER1-NEXT:    fmul %st(2) # sched: [3:0.50]
; ZNVER1-NEXT:    fmuls (%ecx) # sched: [10:0.50]
; ZNVER1-NEXT:    fmull (%eax) # sched: [10:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fmul %st(0), %st(1) \0A\09 fmul %st(2), %st(0) \0A\09 fmuls $0 \0A\09 fmull $1", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_fmulp_fimul(i16 *%a0, i32 *%a1) optsize {
; GENERIC-LABEL: test_fmulp_fimul:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fmulp %st(1)
; GENERIC-NEXT:    fmulp %st(2)
; GENERIC-NEXT:    fimuls (%ecx)
; GENERIC-NEXT:    fimull (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fmulp_fimul:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fmulp %st(1) # sched: [4:4.00]
; ATOM-NEXT:    fmulp %st(2) # sched: [4:4.00]
; ATOM-NEXT:    fimuls (%ecx) # sched: [4:4.00]
; ATOM-NEXT:    fimull (%eax) # sched: [4:4.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fmulp_fimul:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fmulp %st(1) # sched: [5:2.00]
; SLM-NEXT:    fmulp %st(2) # sched: [5:2.00]
; SLM-NEXT:    fimuls (%ecx) # sched: [8:2.00]
; SLM-NEXT:    fimull (%eax) # sched: [8:2.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fmulp_fimul:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fmulp %st(1) # sched: [5:1.00]
; SANDY-NEXT:    fmulp %st(2) # sched: [5:1.00]
; SANDY-NEXT:    fimuls (%ecx) # sched: [15:1.00]
; SANDY-NEXT:    fimull (%eax) # sched: [15:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fmulp_fimul:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fmulp %st(1) # sched: [5:1.00]
; HASWELL-NEXT:    fmulp %st(2) # sched: [5:1.00]
; HASWELL-NEXT:    fimuls (%ecx) # sched: [15:1.00]
; HASWELL-NEXT:    fimull (%eax) # sched: [15:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fmulp_fimul:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fmulp %st(1) # sched: [5:1.00]
; BROADWELL-NEXT:    fmulp %st(2) # sched: [5:1.00]
; BROADWELL-NEXT:    fimuls (%ecx) # sched: [14:1.00]
; BROADWELL-NEXT:    fimull (%eax) # sched: [14:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fmulp_fimul:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fmulp %st(1) # sched: [4:1.00]
; SKYLAKE-NEXT:    fmulp %st(2) # sched: [4:1.00]
; SKYLAKE-NEXT:    fimuls (%ecx) # sched: [14:1.00]
; SKYLAKE-NEXT:    fimull (%eax) # sched: [14:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fmulp_fimul:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fmulp %st(1) # sched: [4:1.00]
; SKX-NEXT:    fmulp %st(2) # sched: [4:1.00]
; SKX-NEXT:    fimuls (%ecx) # sched: [14:1.00]
; SKX-NEXT:    fimull (%eax) # sched: [14:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fmulp_fimul:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fmulp %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    fmulp %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fimuls (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    fimull (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fmulp_fimul:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fmulp %st(1) # sched: [2:1.00]
; BTVER2-NEXT:    fmulp %st(2) # sched: [2:1.00]
; BTVER2-NEXT:    fimuls (%ecx) # sched: [7:1.00]
; BTVER2-NEXT:    fimull (%eax) # sched: [7:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fmulp_fimul:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fmulp %st(1) # sched: [3:0.50]
; ZNVER1-NEXT:    fmulp %st(2) # sched: [3:0.50]
; ZNVER1-NEXT:    fimuls (%ecx) # sched: [10:0.50]
; ZNVER1-NEXT:    fimull (%eax) # sched: [10:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fmulp \0A\09 fmulp %st(2), %st(0) \0A\09 fimuls $0 \0A\09 fimull $1", "*m,*m"(i16 *%a0, i32 *%a1) nounwind
  ret void
}

define void @test_fnop() optsize {
; GENERIC-LABEL: test_fnop:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fnop
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fnop:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fnop # sched: [1:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fnop:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fnop # sched: [1:0.50]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fnop:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fnop # sched: [1:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fnop:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fnop # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fnop:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fnop # sched: [1:0.50]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fnop:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fnop # sched: [1:0.50]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fnop:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fnop # sched: [1:0.50]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fnop:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fnop # sched: [1:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fnop:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fnop # sched: [1:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fnop:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fnop # sched: [1:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fnop", ""() nounwind
  ret void
}

define void @test_fpatan() optsize {
; GENERIC-LABEL: test_fpatan:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fpatan
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fpatan:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fpatan # sched: [183:91.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fpatan:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fpatan # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fpatan:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fpatan # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fpatan:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fpatan # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fpatan:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fpatan # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fpatan:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fpatan # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fpatan:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fpatan # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fpatan:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fpatan # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fpatan:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fpatan # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fpatan:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fpatan # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fpatan", ""() nounwind
  ret void
}

define void @test_fprem_fprem1() optsize {
; GENERIC-LABEL: test_fprem_fprem1:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fprem
; GENERIC-NEXT:    fprem1
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fprem_fprem1:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fprem # sched: [55:27.50]
; ATOM-NEXT:    fprem1 # sched: [71:35.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fprem_fprem1:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fprem # sched: [100:1.00]
; SLM-NEXT:    fprem1 # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fprem_fprem1:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fprem # sched: [100:0.33]
; SANDY-NEXT:    fprem1 # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fprem_fprem1:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fprem # sched: [19:7.00]
; HASWELL-NEXT:    fprem1 # sched: [27:10.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fprem_fprem1:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fprem # sched: [100:0.25]
; BROADWELL-NEXT:    fprem1 # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fprem_fprem1:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fprem # sched: [100:0.25]
; SKYLAKE-NEXT:    fprem1 # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fprem_fprem1:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fprem # sched: [100:0.25]
; SKX-NEXT:    fprem1 # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fprem_fprem1:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fprem # sched: [100:0.50]
; BDVER2-NEXT:    fprem1 # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fprem_fprem1:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fprem # sched: [100:0.50]
; BTVER2-NEXT:    fprem1 # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fprem_fprem1:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fprem # sched: [100:0.25]
; ZNVER1-NEXT:    fprem1 # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fprem \0A\09 fprem1", ""() nounwind
  ret void
}

define void @test_fptan() optsize {
; GENERIC-LABEL: test_fptan:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fptan
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fptan:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fptan # sched: [168:84.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fptan:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fptan # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fptan:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fptan # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fptan:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fptan # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fptan:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fptan # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fptan:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fptan # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fptan:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fptan # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fptan:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fptan # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fptan:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fptan # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fptan:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fptan # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fptan", ""() nounwind
  ret void
}

define void @test_frndint() optsize {
; GENERIC-LABEL: test_frndint:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    frndint
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_frndint:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    frndint # sched: [46:23.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_frndint:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    frndint # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_frndint:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    frndint # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_frndint:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    frndint # sched: [11:4.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_frndint:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    frndint # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_frndint:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    frndint # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_frndint:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    frndint # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_frndint:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    frndint # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_frndint:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    frndint # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_frndint:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    frndint # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "frndint", ""() nounwind
  ret void
}

define void @test_frstor(i8* %a0) optsize {
; GENERIC-LABEL: test_frstor:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    frstor (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_frstor:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    frstor (%eax) # sched: [100:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_frstor:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    frstor (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_frstor:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    frstor (%eax) # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_frstor:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    frstor (%eax) # sched: [1:22.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_frstor:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    frstor (%eax) # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_frstor:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    frstor (%eax) # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_frstor:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    frstor (%eax) # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_frstor:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    frstor (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_frstor:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    frstor (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_frstor:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    frstor (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "frstor $0", "*m"(i8* %a0) nounwind
  ret void
}

define void @test_fsave(i8* %a0) optsize {
; GENERIC-LABEL: test_fsave:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    wait
; GENERIC-NEXT:    fnsave (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsave:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    wait # sched: [1:0.50]
; ATOM-NEXT:    fnsave (%eax) # sched: [100:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsave:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    wait # sched: [100:1.00]
; SLM-NEXT:    fnsave (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsave:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    wait # sched: [100:0.33]
; SANDY-NEXT:    fnsave (%eax) # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsave:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    wait # sched: [2:0.50]
; HASWELL-NEXT:    fnsave (%eax) # sched: [1:36.75]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsave:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    wait # sched: [2:0.50]
; BROADWELL-NEXT:    fnsave (%eax) # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsave:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    wait # sched: [2:0.50]
; SKYLAKE-NEXT:    fnsave (%eax) # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsave:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    wait # sched: [2:0.50]
; SKX-NEXT:    fnsave (%eax) # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsave:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    wait # sched: [100:0.50]
; BDVER2-NEXT:    fnsave (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsave:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    wait # sched: [100:0.50]
; BTVER2-NEXT:    fnsave (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsave:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    wait # sched: [1:1.00]
; ZNVER1-NEXT:    fnsave (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsave $0", "*m"(i8* %a0) nounwind
  ret void
}

define void @test_fnsave(i8* %a0) optsize {
; GENERIC-LABEL: test_fnsave:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fnsave (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fnsave:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fnsave (%eax) # sched: [100:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fnsave:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fnsave (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fnsave:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fnsave (%eax) # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fnsave:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fnsave (%eax) # sched: [1:36.75]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fnsave:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fnsave (%eax) # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fnsave:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fnsave (%eax) # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fnsave:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fnsave (%eax) # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fnsave:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fnsave (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fnsave:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fnsave (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fnsave:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fnsave (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fnsave $0", "*m"(i8* %a0) nounwind
  ret void
}

define void @test_fscale() optsize {
; GENERIC-LABEL: test_fscale:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fscale
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fscale:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fscale # sched: [77:38.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fscale:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fscale # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fscale:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fscale # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fscale:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fscale # sched: [75:12.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fscale:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fscale # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fscale:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fscale # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fscale:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fscale # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fscale:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fscale # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fscale:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fscale # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fscale:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fscale # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fscale", ""() nounwind
  ret void
}

define void @test_fsin() optsize {
; GENERIC-LABEL: test_fsin:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fsin
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsin:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fsin # sched: [174:87.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsin:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fsin # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsin:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fsin # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsin:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fsin # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsin:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fsin # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsin:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fsin # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsin:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fsin # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsin:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fsin # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsin:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fsin # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsin:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fsin # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsin", ""() nounwind
  ret void
}

define void @test_fsincos() optsize {
; GENERIC-LABEL: test_fsincos:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fsincos
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsincos:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fsincos # sched: [174:87.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsincos:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fsincos # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsincos:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fsincos # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsincos:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fsincos # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsincos:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fsincos # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsincos:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fsincos # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsincos:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fsincos # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsincos:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fsincos # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsincos:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fsincos # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsincos:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fsincos # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsincos", ""() nounwind
  ret void
}

define void @test_fsqrt() optsize {
; GENERIC-LABEL: test_fsqrt:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fsqrt
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsqrt:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fsqrt # sched: [71:35.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsqrt:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fsqrt # sched: [40:40.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsqrt:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fsqrt # sched: [24:24.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsqrt:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fsqrt # sched: [23:17.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsqrt:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fsqrt # sched: [23:9.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsqrt:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fsqrt # sched: [21:7.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsqrt:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fsqrt # sched: [21:7.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsqrt:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fsqrt # sched: [1:17.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsqrt:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fsqrt # sched: [35:35.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsqrt:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fsqrt # sched: [20:20.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsqrt", ""() nounwind
  ret void
}

define void @test_fst_fstp(i16* %a0, i32* %a1, i64 *%a2) optsize {
; GENERIC-LABEL: test_fst_fstp:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %edx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fst %st(0)
; GENERIC-NEXT:    fsts (%edx)
; GENERIC-NEXT:    fstl (%ecx)
; GENERIC-NEXT:    fstp %st(0)
; GENERIC-NEXT:    fstpl (%edx)
; GENERIC-NEXT:    fstpl (%ecx)
; GENERIC-NEXT:    fstpt (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fst_fstp:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fst %st(0) # sched: [2:1.00]
; ATOM-NEXT:    fsts (%edx) # sched: [2:1.00]
; ATOM-NEXT:    fstl (%ecx) # sched: [2:1.00]
; ATOM-NEXT:    fstp %st(0) # sched: [2:1.00]
; ATOM-NEXT:    fstpl (%edx) # sched: [2:1.00]
; ATOM-NEXT:    fstpl (%ecx) # sched: [2:1.00]
; ATOM-NEXT:    fstpt (%eax) # sched: [5:2.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fst_fstp:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fst %st(0) # sched: [1:0.50]
; SLM-NEXT:    fsts (%edx) # sched: [1:1.00]
; SLM-NEXT:    fstl (%ecx) # sched: [1:1.00]
; SLM-NEXT:    fstp %st(0) # sched: [1:0.50]
; SLM-NEXT:    fstpl (%edx) # sched: [1:1.00]
; SLM-NEXT:    fstpl (%ecx) # sched: [1:1.00]
; SLM-NEXT:    fstpt (%eax) # sched: [1:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fst_fstp:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fst %st(0) # sched: [1:1.00]
; SANDY-NEXT:    fsts (%edx) # sched: [6:1.00]
; SANDY-NEXT:    fstl (%ecx) # sched: [6:1.00]
; SANDY-NEXT:    fstp %st(0) # sched: [1:1.00]
; SANDY-NEXT:    fstpl (%edx) # sched: [6:1.00]
; SANDY-NEXT:    fstpl (%ecx) # sched: [6:1.00]
; SANDY-NEXT:    fstpt (%eax) # sched: [6:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fst_fstp:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fst %st(0) # sched: [1:0.50]
; HASWELL-NEXT:    fsts (%edx) # sched: [1:1.00]
; HASWELL-NEXT:    fstl (%ecx) # sched: [1:1.00]
; HASWELL-NEXT:    fstp %st(0) # sched: [1:0.50]
; HASWELL-NEXT:    fstpl (%edx) # sched: [1:1.00]
; HASWELL-NEXT:    fstpl (%ecx) # sched: [1:1.00]
; HASWELL-NEXT:    fstpt (%eax) # sched: [1:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fst_fstp:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fst %st(0) # sched: [1:0.25]
; BROADWELL-NEXT:    fsts (%edx) # sched: [1:1.00]
; BROADWELL-NEXT:    fstl (%ecx) # sched: [1:1.00]
; BROADWELL-NEXT:    fstp %st(0) # sched: [1:0.25]
; BROADWELL-NEXT:    fstpl (%edx) # sched: [1:1.00]
; BROADWELL-NEXT:    fstpl (%ecx) # sched: [1:1.00]
; BROADWELL-NEXT:    fstpt (%eax) # sched: [1:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fst_fstp:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fst %st(0) # sched: [1:0.25]
; SKYLAKE-NEXT:    fsts (%edx) # sched: [1:1.00]
; SKYLAKE-NEXT:    fstl (%ecx) # sched: [1:1.00]
; SKYLAKE-NEXT:    fstp %st(0) # sched: [1:0.25]
; SKYLAKE-NEXT:    fstpl (%edx) # sched: [1:1.00]
; SKYLAKE-NEXT:    fstpl (%ecx) # sched: [1:1.00]
; SKYLAKE-NEXT:    fstpt (%eax) # sched: [1:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fst_fstp:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fst %st(0) # sched: [1:0.25]
; SKX-NEXT:    fsts (%edx) # sched: [1:1.00]
; SKX-NEXT:    fstl (%ecx) # sched: [1:1.00]
; SKX-NEXT:    fstp %st(0) # sched: [1:0.25]
; SKX-NEXT:    fstpl (%edx) # sched: [1:1.00]
; SKX-NEXT:    fstpl (%ecx) # sched: [1:1.00]
; SKX-NEXT:    fstpt (%eax) # sched: [1:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fst_fstp:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fst %st(0) # sched: [1:0.50]
; BDVER2-NEXT:    fsts (%edx) # sched: [1:1.00]
; BDVER2-NEXT:    fstl (%ecx) # sched: [1:1.00]
; BDVER2-NEXT:    fstp %st(0) # sched: [1:0.50]
; BDVER2-NEXT:    fstpl (%edx) # sched: [1:1.00]
; BDVER2-NEXT:    fstpl (%ecx) # sched: [1:1.00]
; BDVER2-NEXT:    fstpt (%eax) # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fst_fstp:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fst %st(0) # sched: [1:0.50]
; BTVER2-NEXT:    fsts (%edx) # sched: [1:1.00]
; BTVER2-NEXT:    fstl (%ecx) # sched: [1:1.00]
; BTVER2-NEXT:    fstp %st(0) # sched: [1:0.50]
; BTVER2-NEXT:    fstpl (%edx) # sched: [1:1.00]
; BTVER2-NEXT:    fstpl (%ecx) # sched: [1:1.00]
; BTVER2-NEXT:    fstpt (%eax) # sched: [1:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fst_fstp:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %edx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fst %st(0) # sched: [5:0.50]
; ZNVER1-NEXT:    fsts (%edx) # sched: [1:0.50]
; ZNVER1-NEXT:    fstl (%ecx) # sched: [1:0.50]
; ZNVER1-NEXT:    fstp %st(0) # sched: [5:0.50]
; ZNVER1-NEXT:    fstpl (%edx) # sched: [1:0.50]
; ZNVER1-NEXT:    fstpl (%ecx) # sched: [1:0.50]
; ZNVER1-NEXT:    fstpt (%eax) # sched: [5:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fst %st(0) \0A\09 fsts $0 \0A\09 fstl $1 \0A\09 fstp %st(0) \0A\09 fstpl $0 \0A\09 fstpl $1 \0A\09 fstpt $2", "*m,*m,*m"(i16* %a0, i32* %a1, i64 *%a2) nounwind
  ret void
}

define void @test_fstcw_fstenv_fstsw(i8* %a0) optsize {
; GENERIC-LABEL: test_fstcw_fstenv_fstsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    wait
; GENERIC-NEXT:    fnstcw (%eax)
; GENERIC-NEXT:    wait
; GENERIC-NEXT:    fnstenv (%eax)
; GENERIC-NEXT:    wait
; GENERIC-NEXT:    fnstsw (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fstcw_fstenv_fstsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    wait # sched: [1:0.50]
; ATOM-NEXT:    fnstcw (%eax) # sched: [8:4.00]
; ATOM-NEXT:    wait # sched: [1:0.50]
; ATOM-NEXT:    fnstenv (%eax) # sched: [100:0.50]
; ATOM-NEXT:    wait # sched: [1:0.50]
; ATOM-NEXT:    fnstsw (%eax) # sched: [100:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fstcw_fstenv_fstsw:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    wait # sched: [100:1.00]
; SLM-NEXT:    fnstcw (%eax) # sched: [1:0.50]
; SLM-NEXT:    wait # sched: [100:1.00]
; SLM-NEXT:    fnstenv (%eax) # sched: [100:1.00]
; SLM-NEXT:    wait # sched: [100:1.00]
; SLM-NEXT:    fnstsw (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fstcw_fstenv_fstsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    wait # sched: [100:0.33]
; SANDY-NEXT:    fnstcw (%eax) # sched: [7:1.00]
; SANDY-NEXT:    wait # sched: [100:0.33]
; SANDY-NEXT:    fnstenv (%eax) # sched: [100:0.33]
; SANDY-NEXT:    wait # sched: [100:0.33]
; SANDY-NEXT:    fnstsw (%eax) # sched: [7:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fstcw_fstenv_fstsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    wait # sched: [2:0.50]
; HASWELL-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; HASWELL-NEXT:    wait # sched: [2:0.50]
; HASWELL-NEXT:    fnstenv (%eax) # sched: [115:19.50]
; HASWELL-NEXT:    wait # sched: [2:0.50]
; HASWELL-NEXT:    fnstsw (%eax) # sched: [4:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fstcw_fstenv_fstsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    wait # sched: [2:0.50]
; BROADWELL-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; BROADWELL-NEXT:    wait # sched: [2:0.50]
; BROADWELL-NEXT:    fnstenv (%eax) # sched: [115:19.50]
; BROADWELL-NEXT:    wait # sched: [2:0.50]
; BROADWELL-NEXT:    fnstsw (%eax) # sched: [4:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fstcw_fstenv_fstsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    wait # sched: [2:0.50]
; SKYLAKE-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; SKYLAKE-NEXT:    wait # sched: [2:0.50]
; SKYLAKE-NEXT:    fnstenv (%eax) # sched: [106:19.50]
; SKYLAKE-NEXT:    wait # sched: [2:0.50]
; SKYLAKE-NEXT:    fnstsw (%eax) # sched: [3:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fstcw_fstenv_fstsw:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    wait # sched: [2:0.50]
; SKX-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; SKX-NEXT:    wait # sched: [2:0.50]
; SKX-NEXT:    fnstenv (%eax) # sched: [106:19.50]
; SKX-NEXT:    wait # sched: [2:0.50]
; SKX-NEXT:    fnstsw (%eax) # sched: [3:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fstcw_fstenv_fstsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    wait # sched: [100:0.50]
; BDVER2-NEXT:    fnstcw (%eax) # sched: [1:0.50]
; BDVER2-NEXT:    wait # sched: [100:0.50]
; BDVER2-NEXT:    fnstenv (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    wait # sched: [100:0.50]
; BDVER2-NEXT:    fnstsw (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fstcw_fstenv_fstsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    wait # sched: [100:0.50]
; BTVER2-NEXT:    fnstcw (%eax) # sched: [1:0.50]
; BTVER2-NEXT:    wait # sched: [100:0.50]
; BTVER2-NEXT:    fnstenv (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    wait # sched: [100:0.50]
; BTVER2-NEXT:    fnstsw (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fstcw_fstenv_fstsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    wait # sched: [1:1.00]
; ZNVER1-NEXT:    fnstcw (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    wait # sched: [1:1.00]
; ZNVER1-NEXT:    fnstenv (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    wait # sched: [1:1.00]
; ZNVER1-NEXT:    fnstsw (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fstcw $0 \0A\09 fstenv $0 \0A\09 fstsw $0", "*m"(i8* %a0) nounwind
  ret void
}

define void @test_fnstcw_fnstenv_fnstsw(i8* %a0) optsize {
; GENERIC-LABEL: test_fnstcw_fnstenv_fnstsw:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fnstcw (%eax)
; GENERIC-NEXT:    fnstenv (%eax)
; GENERIC-NEXT:    fnstsw (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fnstcw_fnstenv_fnstsw:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fnstcw (%eax) # sched: [8:4.00]
; ATOM-NEXT:    fnstenv (%eax) # sched: [100:0.50]
; ATOM-NEXT:    fnstsw (%eax) # sched: [100:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fnstcw_fnstenv_fnstsw:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fnstcw (%eax) # sched: [1:0.50]
; SLM-NEXT:    fnstenv (%eax) # sched: [100:1.00]
; SLM-NEXT:    fnstsw (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fnstcw_fnstenv_fnstsw:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fnstcw (%eax) # sched: [7:1.00]
; SANDY-NEXT:    fnstenv (%eax) # sched: [100:0.33]
; SANDY-NEXT:    fnstsw (%eax) # sched: [7:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fnstcw_fnstenv_fnstsw:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; HASWELL-NEXT:    fnstenv (%eax) # sched: [115:19.50]
; HASWELL-NEXT:    fnstsw (%eax) # sched: [4:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fnstcw_fnstenv_fnstsw:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; BROADWELL-NEXT:    fnstenv (%eax) # sched: [115:19.50]
; BROADWELL-NEXT:    fnstsw (%eax) # sched: [4:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fnstcw_fnstenv_fnstsw:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; SKYLAKE-NEXT:    fnstenv (%eax) # sched: [106:19.50]
; SKYLAKE-NEXT:    fnstsw (%eax) # sched: [3:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fnstcw_fnstenv_fnstsw:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fnstcw (%eax) # sched: [2:1.00]
; SKX-NEXT:    fnstenv (%eax) # sched: [106:19.50]
; SKX-NEXT:    fnstsw (%eax) # sched: [3:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fnstcw_fnstenv_fnstsw:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fnstcw (%eax) # sched: [1:0.50]
; BDVER2-NEXT:    fnstenv (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    fnstsw (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fnstcw_fnstenv_fnstsw:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fnstcw (%eax) # sched: [1:0.50]
; BTVER2-NEXT:    fnstenv (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    fnstsw (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fnstcw_fnstenv_fnstsw:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fnstcw (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    fnstenv (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    fnstsw (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fnstcw $0 \0A\09 fnstenv $0 \0A\09 fnstsw $0", "*m"(i8* %a0) nounwind
  ret void
}

define void @test_fsub(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fsub:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fsub %st(0), %st(1)
; GENERIC-NEXT:    fsub %st(2)
; GENERIC-NEXT:    fsubs (%ecx)
; GENERIC-NEXT:    fsubl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsub:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fsub %st(0), %st(1) # sched: [5:5.00]
; ATOM-NEXT:    fsub %st(2) # sched: [5:5.00]
; ATOM-NEXT:    fsubs (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fsubl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsub:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; SLM-NEXT:    fsub %st(2) # sched: [3:1.00]
; SLM-NEXT:    fsubs (%ecx) # sched: [6:1.00]
; SLM-NEXT:    fsubl (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsub:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; SANDY-NEXT:    fsub %st(2) # sched: [3:1.00]
; SANDY-NEXT:    fsubs (%ecx) # sched: [10:1.00]
; SANDY-NEXT:    fsubl (%eax) # sched: [10:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsub:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; HASWELL-NEXT:    fsub %st(2) # sched: [3:1.00]
; HASWELL-NEXT:    fsubs (%ecx) # sched: [10:1.00]
; HASWELL-NEXT:    fsubl (%eax) # sched: [10:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsub:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; BROADWELL-NEXT:    fsub %st(2) # sched: [3:1.00]
; BROADWELL-NEXT:    fsubs (%ecx) # sched: [9:1.00]
; BROADWELL-NEXT:    fsubl (%eax) # sched: [9:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsub:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; SKYLAKE-NEXT:    fsub %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT:    fsubs (%ecx) # sched: [10:1.00]
; SKYLAKE-NEXT:    fsubl (%eax) # sched: [10:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsub:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; SKX-NEXT:    fsub %st(2) # sched: [3:1.00]
; SKX-NEXT:    fsubs (%ecx) # sched: [10:1.00]
; SKX-NEXT:    fsubl (%eax) # sched: [10:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsub:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fsub %st(0), %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    fsub %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fsubs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    fsubl (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsub:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fsub %st(2) # sched: [3:1.00]
; BTVER2-NEXT:    fsubs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    fsubl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsub:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fsub %st(0), %st(1) # sched: [3:1.00]
; ZNVER1-NEXT:    fsub %st(2) # sched: [3:1.00]
; ZNVER1-NEXT:    fsubs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT:    fsubl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsub %st(0), %st(1) \0A\09 fsub %st(2), %st(0) \0A\09 fsubs $0 \0A\09 fsubl $1", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_fsubp_fisub(i16 *%a0, i32 *%a1) optsize {
; GENERIC-LABEL: test_fsubp_fisub:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fsubp %st(1)
; GENERIC-NEXT:    fsubp %st(2)
; GENERIC-NEXT:    fisubs (%ecx)
; GENERIC-NEXT:    fisubl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsubp_fisub:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fsubp %st(1) # sched: [5:5.00]
; ATOM-NEXT:    fsubp %st(2) # sched: [5:5.00]
; ATOM-NEXT:    fisubs (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fisubl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsubp_fisub:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fsubp %st(1) # sched: [3:1.00]
; SLM-NEXT:    fsubp %st(2) # sched: [3:1.00]
; SLM-NEXT:    fisubs (%ecx) # sched: [6:1.00]
; SLM-NEXT:    fisubl (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsubp_fisub:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fsubp %st(1) # sched: [3:1.00]
; SANDY-NEXT:    fsubp %st(2) # sched: [3:1.00]
; SANDY-NEXT:    fisubs (%ecx) # sched: [13:2.00]
; SANDY-NEXT:    fisubl (%eax) # sched: [13:2.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsubp_fisub:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fsubp %st(1) # sched: [3:1.00]
; HASWELL-NEXT:    fsubp %st(2) # sched: [3:1.00]
; HASWELL-NEXT:    fisubs (%ecx) # sched: [13:2.00]
; HASWELL-NEXT:    fisubl (%eax) # sched: [13:2.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsubp_fisub:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fsubp %st(1) # sched: [3:1.00]
; BROADWELL-NEXT:    fsubp %st(2) # sched: [3:1.00]
; BROADWELL-NEXT:    fisubs (%ecx) # sched: [12:2.00]
; BROADWELL-NEXT:    fisubl (%eax) # sched: [12:2.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsubp_fisub:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fsubp %st(1) # sched: [3:1.00]
; SKYLAKE-NEXT:    fsubp %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT:    fisubs (%ecx) # sched: [13:2.00]
; SKYLAKE-NEXT:    fisubl (%eax) # sched: [13:2.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsubp_fisub:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fsubp %st(1) # sched: [3:1.00]
; SKX-NEXT:    fsubp %st(2) # sched: [3:1.00]
; SKX-NEXT:    fisubs (%ecx) # sched: [13:2.00]
; SKX-NEXT:    fisubl (%eax) # sched: [13:2.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsubp_fisub:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fsubp %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    fsubp %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fisubs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    fisubl (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsubp_fisub:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fsubp %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fsubp %st(2) # sched: [3:1.00]
; BTVER2-NEXT:    fisubs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    fisubl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsubp_fisub:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fsubp %st(1) # sched: [3:1.00]
; ZNVER1-NEXT:    fsubp %st(2) # sched: [3:1.00]
; ZNVER1-NEXT:    fisubs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT:    fisubl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsubp \0A\09 fsubp %st(2), %st(0) \0A\09 fisubs $0 \0A\09 fisubl $1", "*m,*m"(i16 *%a0, i32 *%a1) nounwind
  ret void
}

define void @test_fsubr(float *%a0, double *%a1) optsize {
; GENERIC-LABEL: test_fsubr:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fsubr %st(0), %st(1)
; GENERIC-NEXT:    fsubr %st(2)
; GENERIC-NEXT:    fsubrs (%ecx)
; GENERIC-NEXT:    fsubrl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsubr:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fsubr %st(0), %st(1) # sched: [5:5.00]
; ATOM-NEXT:    fsubr %st(2) # sched: [5:5.00]
; ATOM-NEXT:    fsubrs (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fsubrl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsubr:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; SLM-NEXT:    fsubr %st(2) # sched: [3:1.00]
; SLM-NEXT:    fsubrs (%ecx) # sched: [6:1.00]
; SLM-NEXT:    fsubrl (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsubr:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; SANDY-NEXT:    fsubr %st(2) # sched: [3:1.00]
; SANDY-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
; SANDY-NEXT:    fsubrl (%eax) # sched: [10:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsubr:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; HASWELL-NEXT:    fsubr %st(2) # sched: [3:1.00]
; HASWELL-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
; HASWELL-NEXT:    fsubrl (%eax) # sched: [10:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsubr:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; BROADWELL-NEXT:    fsubr %st(2) # sched: [3:1.00]
; BROADWELL-NEXT:    fsubrs (%ecx) # sched: [9:1.00]
; BROADWELL-NEXT:    fsubrl (%eax) # sched: [9:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsubr:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; SKYLAKE-NEXT:    fsubr %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
; SKYLAKE-NEXT:    fsubrl (%eax) # sched: [10:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsubr:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; SKX-NEXT:    fsubr %st(2) # sched: [3:1.00]
; SKX-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
; SKX-NEXT:    fsubrl (%eax) # sched: [10:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsubr:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fsubr %st(0), %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    fsubr %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    fsubrl (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsubr:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fsubr %st(2) # sched: [3:1.00]
; BTVER2-NEXT:    fsubrs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    fsubrl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsubr:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fsubr %st(0), %st(1) # sched: [3:1.00]
; ZNVER1-NEXT:    fsubr %st(2) # sched: [3:1.00]
; ZNVER1-NEXT:    fsubrs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT:    fsubrl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsubr %st(0), %st(1) \0A\09 fsubr %st(2), %st(0) \0A\09 fsubrs $0 \0A\09 fsubrl $1", "*m,*m"(float *%a0, double *%a1) nounwind
  ret void
}

define void @test_fsubrp_fisubr(i16 *%a0, i32 *%a1) optsize {
; GENERIC-LABEL: test_fsubrp_fisubr:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %ecx
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fsubrp %st(1)
; GENERIC-NEXT:    fsubrp %st(2)
; GENERIC-NEXT:    fisubrs (%ecx)
; GENERIC-NEXT:    fisubrl (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fsubrp_fisubr:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fsubrp %st(1) # sched: [5:5.00]
; ATOM-NEXT:    fsubrp %st(2) # sched: [5:5.00]
; ATOM-NEXT:    fisubrs (%ecx) # sched: [5:5.00]
; ATOM-NEXT:    fisubrl (%eax) # sched: [5:5.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fsubrp_fisubr:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; SLM-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; SLM-NEXT:    fisubrs (%ecx) # sched: [6:1.00]
; SLM-NEXT:    fisubrl (%eax) # sched: [6:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fsubrp_fisubr:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; SANDY-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; SANDY-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
; SANDY-NEXT:    fisubrl (%eax) # sched: [13:2.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fsubrp_fisubr:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; HASWELL-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; HASWELL-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
; HASWELL-NEXT:    fisubrl (%eax) # sched: [13:2.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fsubrp_fisubr:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; BROADWELL-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; BROADWELL-NEXT:    fisubrs (%ecx) # sched: [12:2.00]
; BROADWELL-NEXT:    fisubrl (%eax) # sched: [12:2.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fsubrp_fisubr:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; SKYLAKE-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; SKYLAKE-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
; SKYLAKE-NEXT:    fisubrl (%eax) # sched: [13:2.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fsubrp_fisubr:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; SKX-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; SKX-NEXT:    fisubrs (%ecx) # sched: [13:2.00]
; SKX-NEXT:    fisubrl (%eax) # sched: [13:2.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fsubrp_fisubr:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fsubrp %st(1) # sched: [5:1.00]
; BDVER2-NEXT:    fsubrp %st(2) # sched: [5:1.00]
; BDVER2-NEXT:    fisubrs (%ecx) # sched: [10:1.00]
; BDVER2-NEXT:    fisubrl (%eax) # sched: [10:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fsubrp_fisubr:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; BTVER2-NEXT:    fisubrs (%ecx) # sched: [8:1.00]
; BTVER2-NEXT:    fisubrl (%eax) # sched: [8:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fsubrp_fisubr:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %ecx # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fsubrp %st(1) # sched: [3:1.00]
; ZNVER1-NEXT:    fsubrp %st(2) # sched: [3:1.00]
; ZNVER1-NEXT:    fisubrs (%ecx) # sched: [10:1.00]
; ZNVER1-NEXT:    fisubrl (%eax) # sched: [10:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fsubrp \0A\09 fsubrp %st(2), %st(0) \0A\09 fisubrs $0 \0A\09 fisubrl $1", "*m,*m"(i16 *%a0, i32 *%a1) nounwind
  ret void
}

define void @test_ftst() optsize {
; GENERIC-LABEL: test_ftst:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    ftst
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_ftst:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    ftst # sched: [9:4.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_ftst:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    ftst # sched: [3:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_ftst:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    ftst # sched: [3:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_ftst:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    ftst # sched: [1:1.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_ftst:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    ftst # sched: [3:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_ftst:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    ftst # sched: [2:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_ftst:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    ftst # sched: [2:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_ftst:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    ftst # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_ftst:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    ftst # sched: [3:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_ftst:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    ftst # sched: [1:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "ftst", ""() nounwind
  ret void
}

define void @test_fucom_fucomp_fucompp() optsize {
; GENERIC-LABEL: test_fucom_fucomp_fucompp:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fucom %st(1)
; GENERIC-NEXT:    fucom %st(3)
; GENERIC-NEXT:    fucomp %st(1)
; GENERIC-NEXT:    fucomp %st(3)
; GENERIC-NEXT:    fucompp
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fucom_fucomp_fucompp:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fucom %st(1) # sched: [1:1.00]
; ATOM-NEXT:    fucom %st(3) # sched: [1:1.00]
; ATOM-NEXT:    fucomp %st(1) # sched: [1:1.00]
; ATOM-NEXT:    fucomp %st(3) # sched: [1:1.00]
; ATOM-NEXT:    fucompp # sched: [1:1.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fucom_fucomp_fucompp:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fucom %st(1) # sched: [3:1.00]
; SLM-NEXT:    fucom %st(3) # sched: [3:1.00]
; SLM-NEXT:    fucomp %st(1) # sched: [3:1.00]
; SLM-NEXT:    fucomp %st(3) # sched: [3:1.00]
; SLM-NEXT:    fucompp # sched: [3:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fucom_fucomp_fucompp:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fucom %st(1) # sched: [1:1.00]
; SANDY-NEXT:    fucom %st(3) # sched: [1:1.00]
; SANDY-NEXT:    fucomp %st(1) # sched: [1:1.00]
; SANDY-NEXT:    fucomp %st(3) # sched: [1:1.00]
; SANDY-NEXT:    fucompp # sched: [3:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fucom_fucomp_fucompp:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fucom %st(1) # sched: [1:1.00]
; HASWELL-NEXT:    fucom %st(3) # sched: [1:1.00]
; HASWELL-NEXT:    fucomp %st(1) # sched: [1:1.00]
; HASWELL-NEXT:    fucomp %st(3) # sched: [1:1.00]
; HASWELL-NEXT:    fucompp # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fucom_fucomp_fucompp:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fucom %st(1) # sched: [1:1.00]
; BROADWELL-NEXT:    fucom %st(3) # sched: [1:1.00]
; BROADWELL-NEXT:    fucomp %st(1) # sched: [1:1.00]
; BROADWELL-NEXT:    fucomp %st(3) # sched: [1:1.00]
; BROADWELL-NEXT:    fucompp # sched: [3:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fucom_fucomp_fucompp:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fucom %st(1) # sched: [1:1.00]
; SKYLAKE-NEXT:    fucom %st(3) # sched: [1:1.00]
; SKYLAKE-NEXT:    fucomp %st(1) # sched: [1:1.00]
; SKYLAKE-NEXT:    fucomp %st(3) # sched: [1:1.00]
; SKYLAKE-NEXT:    fucompp # sched: [2:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fucom_fucomp_fucompp:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fucom %st(1) # sched: [1:1.00]
; SKX-NEXT:    fucom %st(3) # sched: [1:1.00]
; SKX-NEXT:    fucomp %st(1) # sched: [1:1.00]
; SKX-NEXT:    fucomp %st(3) # sched: [1:1.00]
; SKX-NEXT:    fucompp # sched: [2:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fucom_fucomp_fucompp:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fucom %st(1) # sched: [1:1.00]
; BDVER2-NEXT:    fucom %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    fucomp %st(1) # sched: [1:1.00]
; BDVER2-NEXT:    fucomp %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    fucompp # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fucom_fucomp_fucompp:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fucom %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fucom %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    fucomp %st(1) # sched: [3:1.00]
; BTVER2-NEXT:    fucomp %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    fucompp # sched: [3:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fucom_fucomp_fucompp:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fucom %st(1) # sched: [1:1.00]
; ZNVER1-NEXT:    fucom %st(3) # sched: [1:1.00]
; ZNVER1-NEXT:    fucomp %st(1) # sched: [1:1.00]
; ZNVER1-NEXT:    fucomp %st(3) # sched: [1:1.00]
; ZNVER1-NEXT:    fucompp # sched: [1:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fucom \0A\09 fucom %st(3) \0A\09 fucomp \0A\09 fucomp %st(3) \0A\09 fucompp", ""() nounwind
  ret void
}

define void @test_fucomi_fucomip() optsize {
; GENERIC-LABEL: test_fucomi_fucomip:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fucomi %st(3)
; GENERIC-NEXT:    fucompi %st(3)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fucomi_fucomip:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fucomi %st(3) # sched: [9:4.50]
; ATOM-NEXT:    fucompi %st(3) # sched: [9:4.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fucomi_fucomip:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fucomi %st(3) # sched: [3:1.00]
; SLM-NEXT:    fucompi %st(3) # sched: [3:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fucomi_fucomip:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fucomi %st(3) # sched: [3:1.00]
; SANDY-NEXT:    fucompi %st(3) # sched: [3:1.00]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fucomi_fucomip:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fucomi %st(3) # sched: [1:0.50]
; HASWELL-NEXT:    fucompi %st(3) # sched: [1:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fucomi_fucomip:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fucomi %st(3) # sched: [3:1.00]
; BROADWELL-NEXT:    fucompi %st(3) # sched: [3:1.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fucomi_fucomip:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fucomi %st(3) # sched: [2:1.00]
; SKYLAKE-NEXT:    fucompi %st(3) # sched: [2:1.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fucomi_fucomip:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fucomi %st(3) # sched: [2:1.00]
; SKX-NEXT:    fucompi %st(3) # sched: [2:1.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fucomi_fucomip:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fucomi %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    fucompi %st(3) # sched: [1:1.00]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fucomi_fucomip:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fucomi %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    fucompi %st(3) # sched: [3:1.00]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fucomi_fucomip:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fucomi %st(3) # sched: [9:0.50]
; ZNVER1-NEXT:    fucompi %st(3) # sched: [9:0.50]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fucomi %st(3) \0A\09 fucomip %st(3)", ""() nounwind
  ret void
}

define void @test_fwait() optsize {
; GENERIC-LABEL: test_fwait:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    wait
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fwait:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    wait # sched: [1:0.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fwait:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    wait # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fwait:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    wait # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fwait:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    wait # sched: [2:0.50]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fwait:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    wait # sched: [2:0.50]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fwait:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    wait # sched: [2:0.50]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fwait:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    wait # sched: [2:0.50]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fwait:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    wait # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fwait:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    wait # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fwait:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    wait # sched: [1:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fwait", ""() nounwind
  ret void
}

define void @test_fxam() optsize {
; GENERIC-LABEL: test_fxam:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fxam
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fxam:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fxam # sched: [1:1.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fxam:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fxam # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fxam:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fxam # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fxam:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fxam # sched: [1:2.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fxam:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fxam # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fxam:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fxam # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fxam:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fxam # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fxam:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fxam # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fxam:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fxam # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fxam:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fxam # sched: [1:1.00]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fxam", ""() nounwind
  ret void
}

define void @test_fxch() optsize {
; GENERIC-LABEL: test_fxch:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fxch %st(1)
; GENERIC-NEXT:    fxch %st(3)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fxch:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fxch %st(1) # sched: [1:1.00]
; ATOM-NEXT:    fxch %st(3) # sched: [1:1.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fxch:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fxch %st(1) # sched: [1:0.50]
; SLM-NEXT:    fxch %st(3) # sched: [1:0.50]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fxch:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fxch %st(1) # sched: [1:0.33]
; SANDY-NEXT:    fxch %st(3) # sched: [1:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fxch:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fxch %st(1) # sched: [17:4.00]
; HASWELL-NEXT:    fxch %st(3) # sched: [17:4.00]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fxch:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fxch %st(1) # sched: [14:4.00]
; BROADWELL-NEXT:    fxch %st(3) # sched: [14:4.00]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fxch:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fxch %st(1) # sched: [17:4.00]
; SKYLAKE-NEXT:    fxch %st(3) # sched: [17:4.00]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fxch:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fxch %st(1) # sched: [17:4.00]
; SKX-NEXT:    fxch %st(3) # sched: [17:4.00]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fxch:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fxch %st(1) # sched: [1:0.50]
; BDVER2-NEXT:    fxch %st(3) # sched: [1:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fxch:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fxch %st(1) # sched: [1:0.50]
; BTVER2-NEXT:    fxch %st(3) # sched: [1:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fxch:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fxch %st(1) # sched: [1:0.25]
; ZNVER1-NEXT:    fxch %st(3) # sched: [1:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fxch \0A\09 fxch %st(3)", ""() nounwind
  ret void
}

define void @test_fxrstor_fxsave(i8* %a0) optsize {
; GENERIC-LABEL: test_fxrstor_fxsave:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    movl {{[0-9]+}}(%esp), %eax
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fxrstor (%eax)
; GENERIC-NEXT:    fxsave (%eax)
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fxrstor_fxsave:
; ATOM:       # %bb.0:
; ATOM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [1:1.00]
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fxrstor (%eax) # sched: [141:70.50]
; ATOM-NEXT:    fxsave (%eax) # sched: [140:70.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fxrstor_fxsave:
; SLM:       # %bb.0:
; SLM-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [3:1.00]
; SLM-NEXT:    #APP
; SLM-NEXT:    fxrstor (%eax) # sched: [100:1.00]
; SLM-NEXT:    fxsave (%eax) # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fxrstor_fxsave:
; SANDY:       # %bb.0:
; SANDY-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fxrstor (%eax) # sched: [5:2.00]
; SANDY-NEXT:    fxsave (%eax) # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fxrstor_fxsave:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fxrstor (%eax) # sched: [64:16.50]
; HASWELL-NEXT:    fxsave (%eax) # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fxrstor_fxsave:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fxrstor (%eax) # sched: [63:16.50]
; BROADWELL-NEXT:    fxsave (%eax) # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fxrstor_fxsave:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fxrstor (%eax) # sched: [63:16.50]
; SKYLAKE-NEXT:    fxsave (%eax) # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fxrstor_fxsave:
; SKX:       # %bb.0:
; SKX-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; SKX-NEXT:    #APP
; SKX-NEXT:    fxrstor (%eax) # sched: [63:16.50]
; SKX-NEXT:    fxsave (%eax) # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fxrstor_fxsave:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:0.50]
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fxrstor (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    fxsave (%eax) # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fxrstor_fxsave:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [5:1.00]
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fxrstor (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    fxsave (%eax) # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fxrstor_fxsave:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    movl {{[0-9]+}}(%esp), %eax # sched: [8:0.50]
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fxrstor (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    fxsave (%eax) # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fxrstor $0 \0A\09 fxsave $0", "*m"(i8 *%a0) nounwind
  ret void
}

define void @test_fxtract() optsize {
; GENERIC-LABEL: test_fxtract:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fxtract
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fxtract:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fxtract # sched: [25:12.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fxtract:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fxtract # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fxtract:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fxtract # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fxtract:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fxtract # sched: [15:4.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fxtract:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fxtract # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fxtract:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fxtract # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fxtract:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fxtract # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fxtract:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fxtract # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fxtract:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fxtract # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fxtract:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fxtract # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fxtract", ""() nounwind
  ret void
}

define void @test_fyl2x() optsize {
; GENERIC-LABEL: test_fyl2x:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fyl2x
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fyl2x:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fyl2x # sched: [146:73.00]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fyl2x:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fyl2x # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fyl2x:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fyl2x # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fyl2x:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fyl2x # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fyl2x:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fyl2x # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fyl2x:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fyl2x # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fyl2x:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fyl2x # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fyl2x:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fyl2x # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fyl2x:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fyl2x # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fyl2x:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fyl2x # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fyl2x", ""() nounwind
  ret void
}

define void @test_fyl2xp1() optsize {
; GENERIC-LABEL: test_fyl2xp1:
; GENERIC:       # %bb.0:
; GENERIC-NEXT:    #APP
; GENERIC-NEXT:    fyl2xp1
; GENERIC-NEXT:    #NO_APP
; GENERIC-NEXT:    retl
;
; ATOM-LABEL: test_fyl2xp1:
; ATOM:       # %bb.0:
; ATOM-NEXT:    #APP
; ATOM-NEXT:    fyl2xp1 # sched: [147:73.50]
; ATOM-NEXT:    #NO_APP
; ATOM-NEXT:    retl # sched: [79:39.50]
;
; SLM-LABEL: test_fyl2xp1:
; SLM:       # %bb.0:
; SLM-NEXT:    #APP
; SLM-NEXT:    fyl2xp1 # sched: [100:1.00]
; SLM-NEXT:    #NO_APP
; SLM-NEXT:    retl # sched: [4:1.00]
;
; SANDY-LABEL: test_fyl2xp1:
; SANDY:       # %bb.0:
; SANDY-NEXT:    #APP
; SANDY-NEXT:    fyl2xp1 # sched: [100:0.33]
; SANDY-NEXT:    #NO_APP
; SANDY-NEXT:    retl # sched: [6:1.00]
;
; HASWELL-LABEL: test_fyl2xp1:
; HASWELL:       # %bb.0:
; HASWELL-NEXT:    #APP
; HASWELL-NEXT:    fyl2xp1 # sched: [100:0.25]
; HASWELL-NEXT:    #NO_APP
; HASWELL-NEXT:    retl # sched: [7:1.00]
;
; BROADWELL-LABEL: test_fyl2xp1:
; BROADWELL:       # %bb.0:
; BROADWELL-NEXT:    #APP
; BROADWELL-NEXT:    fyl2xp1 # sched: [100:0.25]
; BROADWELL-NEXT:    #NO_APP
; BROADWELL-NEXT:    retl # sched: [6:0.50]
;
; SKYLAKE-LABEL: test_fyl2xp1:
; SKYLAKE:       # %bb.0:
; SKYLAKE-NEXT:    #APP
; SKYLAKE-NEXT:    fyl2xp1 # sched: [100:0.25]
; SKYLAKE-NEXT:    #NO_APP
; SKYLAKE-NEXT:    retl # sched: [6:0.50]
;
; SKX-LABEL: test_fyl2xp1:
; SKX:       # %bb.0:
; SKX-NEXT:    #APP
; SKX-NEXT:    fyl2xp1 # sched: [100:0.25]
; SKX-NEXT:    #NO_APP
; SKX-NEXT:    retl # sched: [6:0.50]
;
; BDVER2-LABEL: test_fyl2xp1:
; BDVER2:       # %bb.0:
; BDVER2-NEXT:    #APP
; BDVER2-NEXT:    fyl2xp1 # sched: [100:0.50]
; BDVER2-NEXT:    #NO_APP
; BDVER2-NEXT:    retl # sched: [5:1.00]
;
; BTVER2-LABEL: test_fyl2xp1:
; BTVER2:       # %bb.0:
; BTVER2-NEXT:    #APP
; BTVER2-NEXT:    fyl2xp1 # sched: [100:0.50]
; BTVER2-NEXT:    #NO_APP
; BTVER2-NEXT:    retl # sched: [4:1.00]
;
; ZNVER1-LABEL: test_fyl2xp1:
; ZNVER1:       # %bb.0:
; ZNVER1-NEXT:    #APP
; ZNVER1-NEXT:    fyl2xp1 # sched: [100:0.25]
; ZNVER1-NEXT:    #NO_APP
; ZNVER1-NEXT:    retl # sched: [1:0.50]
  tail call void asm sideeffect "fyl2xp1", ""() nounwind
  ret void
}
