|  | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 | 
|  | ; RUN: llc -mtriple=i386 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-32 | 
|  | ; RUN: llc -mtriple=i386 -mattr +fma < %s | FileCheck %s -check-prefix=SOFT-FLOAT-32-FMA | 
|  | ; RUN: llc -mtriple=i386 -mattr +fma4 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-32-FMA4 | 
|  | ; RUN: llc -mtriple=x86_64 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-64 | 
|  | ; RUN: llc -mtriple=x86_64 -mattr +fma < %s | FileCheck %s -check-prefix=SOFT-FLOAT-64-FMA | 
|  | ; RUN: llc -mtriple=x86_64 -mattr +fma4 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-64-FMA4 | 
|  |  | 
|  | define float @fmuladd_intrinsic_f32(float %a, float %b, float %c) #0 { | 
|  | ; SOFT-FLOAT-32-LABEL: fmuladd_intrinsic_f32: | 
|  | ; SOFT-FLOAT-32:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA-LABEL: fmuladd_intrinsic_f32: | 
|  | ; SOFT-FLOAT-32-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_intrinsic_f32: | 
|  | ; SOFT-FLOAT-32-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-64-LABEL: fmuladd_intrinsic_f32: | 
|  | ; SOFT-FLOAT-64:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %ebx, %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA-LABEL: fmuladd_intrinsic_f32: | 
|  | ; SOFT-FLOAT-64-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %ebx, %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_intrinsic_f32: | 
|  | ; SOFT-FLOAT-64-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebx, %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    retq | 
|  | %result = call float @llvm.fmuladd.f32(float %a, float %b, float %c) | 
|  | ret float %result | 
|  | } | 
|  |  | 
|  | define double @fmuladd_intrinsic_f64(double %a, double %b, double %c) #0 { | 
|  | ; SOFT-FLOAT-32-LABEL: fmuladd_intrinsic_f64: | 
|  | ; SOFT-FLOAT-32:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -12 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA-LABEL: fmuladd_intrinsic_f64: | 
|  | ; SOFT-FLOAT-32-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_intrinsic_f64: | 
|  | ; SOFT-FLOAT-32-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-64-LABEL: fmuladd_intrinsic_f64: | 
|  | ; SOFT-FLOAT-64:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rdx, %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rbx, %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA-LABEL: fmuladd_intrinsic_f64: | 
|  | ; SOFT-FLOAT-64-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rdx, %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_intrinsic_f64: | 
|  | ; SOFT-FLOAT-64-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdx, %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    retq | 
|  | %result = call double @llvm.fmuladd.f64(double %a, double %b, double %c) | 
|  | ret double %result | 
|  | } | 
|  |  | 
|  | define float @fmuladd_contract_f32(float %a, float %b, float %c) #0 { | 
|  | ; SOFT-FLOAT-32-LABEL: fmuladd_contract_f32: | 
|  | ; SOFT-FLOAT-32:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_f32: | 
|  | ; SOFT-FLOAT-32-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_f32: | 
|  | ; SOFT-FLOAT-32-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-64-LABEL: fmuladd_contract_f32: | 
|  | ; SOFT-FLOAT-64:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %ebx, %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_f32: | 
|  | ; SOFT-FLOAT-64-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %ebx, %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_f32: | 
|  | ; SOFT-FLOAT-64-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebx, %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    retq | 
|  | %product = fmul contract float %a, %b | 
|  | %result = fadd contract float %product, %c | 
|  | ret float %result | 
|  | } | 
|  |  | 
|  | define double @fmuladd_contract_f64(double %a, double %b, double %c) #0 { | 
|  | ; SOFT-FLOAT-32-LABEL: fmuladd_contract_f64: | 
|  | ; SOFT-FLOAT-32:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -12 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_f64: | 
|  | ; SOFT-FLOAT-32-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_f64: | 
|  | ; SOFT-FLOAT-32-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    retl | 
|  | ; | 
|  | ; SOFT-FLOAT-64-LABEL: fmuladd_contract_f64: | 
|  | ; SOFT-FLOAT-64:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rdx, %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rbx, %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_f64: | 
|  | ; SOFT-FLOAT-64-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rdx, %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_f64: | 
|  | ; SOFT-FLOAT-64-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdx, %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    retq | 
|  | %product = fmul contract double %a, %b | 
|  | %result = fadd contract double %product, %c | 
|  | ret double %result | 
|  | } | 
|  |  | 
|  | define <4 x float> @fmuladd_contract_v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c) #0 { | 
|  | ; SOFT-FLOAT-32-LABEL: fmuladd_contract_v4f32: | 
|  | ; SOFT-FLOAT-32:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -20 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebx, -12 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebp, -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, (%esp) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, 12(%esi) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %ebx, 8(%esi) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edi, 4(%esi) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %ebp, (%esi) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %esi, %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $4, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    retl $4 | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_v4f32: | 
|  | ; SOFT-FLOAT-32-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -20 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebx, -12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebp, -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, (%esp) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, 12(%esi) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %ebx, 8(%esi) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edi, 4(%esi) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %ebp, (%esi) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %esi, %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $4, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    retl $4 | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_v4f32: | 
|  | ; SOFT-FLOAT-32-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -20 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebx, -12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebp, -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, (%esp) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, 12(%esi) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebx, 8(%esi) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edi, 4(%esi) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebp, (%esi) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %esi, %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $4, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    retl $4 | 
|  | ; | 
|  | ; SOFT-FLOAT-64-LABEL: fmuladd_contract_v4f32: | 
|  | ; SOFT-FLOAT-64:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbp | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r15 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r14 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r13 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r12 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rax | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 64 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -56 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r12, -48 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r13, -40 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r14, -32 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r15, -24 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbp, -16 | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r9d, %r13d | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %ecx, %ebp | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %edx, %r14d | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %esi, %r12d | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rdi, %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r8d, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %r15d | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %ebp, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r14d, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %r14d | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r12d, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r13d, %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %r12d | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r14d, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %r14d | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %ebp, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r15d, %edi | 
|  | ; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %eax, 12(%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %ebp, 8(%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r14d, 4(%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movl %r12d, (%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rbx, %rax | 
|  | ; SOFT-FLOAT-64-NEXT:    addq $8, %rsp | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r12 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r13 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r14 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r15 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbp | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_v4f32: | 
|  | ; SOFT-FLOAT-64-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r15 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r14 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r13 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r12 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rax | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 64 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -56 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r12, -48 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r13, -40 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r14, -32 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r15, -24 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbp, -16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r9d, %r13d | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %ecx, %ebp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %edx, %r14d | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %esi, %r12d | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rdi, %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r8d, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r15d | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %ebp, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r14d, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r14d | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r12d, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r13d, %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r12d | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r14d, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r14d | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %ebp, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r15d, %edi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, 12(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %ebp, 8(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r14d, 4(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movl %r12d, (%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rax | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    addq $8, %rsp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r12 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r13 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r14 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r15 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_v4f32: | 
|  | ; SOFT-FLOAT-64-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r15 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r14 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r13 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r12 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rax | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 64 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -56 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r12, -48 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r13, -40 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r14, -32 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r15, -24 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbp, -16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r9d, %r13d | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %ecx, %ebp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %edx, %r14d | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %esi, %r12d | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdi, %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r8d, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r15d | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebp, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r14d, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r14d | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r12d, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r13d, %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r12d | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r14d, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r14d | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebp, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r15d, %edi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, 12(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebp, 8(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r14d, 4(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movl %r12d, (%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rax | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    addq $8, %rsp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r12 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r13 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r14 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r15 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    retq | 
|  | %product = fmul contract <4 x float> %a, %b | 
|  | %result = fadd contract <4 x float> %product, %c | 
|  | ret <4 x float> %result | 
|  | } | 
|  |  | 
|  | define <4 x double> @fmuladd_contract_v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c) #0 { | 
|  | ; SOFT-FLOAT-32-LABEL: fmuladd_contract_v4f64: | 
|  | ; SOFT-FLOAT-32:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-NEXT:    subl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 36 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -20 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebx, -12 | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebp, -8 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edx, %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edx, (%esp) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edx, %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ecx | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edx, 28(%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, 24(%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %esi, 20(%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %ebp, 16(%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %ebx, 12(%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %edi, 8(%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl (%esp), %eax # 4-byte Reload | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, 4(%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %eax, (%ecx) | 
|  | ; SOFT-FLOAT-32-NEXT:    movl %ecx, %eax | 
|  | ; SOFT-FLOAT-32-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %ebx | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-NEXT:    popl %ebp | 
|  | ; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-NEXT:    retl $4 | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_v4f64: | 
|  | ; SOFT-FLOAT-32-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    subl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 36 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -20 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebx, -12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebp, -8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, (%esp) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ecx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, 28(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, 24(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %esi, 20(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %ebp, 16(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %ebx, 12(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %edi, 8(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl (%esp), %eax # 4-byte Reload | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, 4(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, (%ecx) | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    movl %ecx, %eax | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %ebx | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    popl %ebp | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA-NEXT:    retl $4 | 
|  | ; | 
|  | ; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_v4f64: | 
|  | ; SOFT-FLOAT-32-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    subl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 36 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -20 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebx, -12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebp, -8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, (%esp) # 4-byte Spill | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ecx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, 28(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, 24(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %esi, 20(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebp, 16(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebx, 12(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %edi, 8(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl (%esp), %eax # 4-byte Reload | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, 4(%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, (%ecx) | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    movl %ecx, %eax | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 20 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebx | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebp | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4 | 
|  | ; SOFT-FLOAT-32-FMA4-NEXT:    retl $4 | 
|  | ; | 
|  | ; SOFT-FLOAT-64-LABEL: fmuladd_contract_v4f64: | 
|  | ; SOFT-FLOAT-64:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbp | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r15 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r14 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r13 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %r12 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-NEXT:    pushq %rax | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 64 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -56 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r12, -48 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r13, -40 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r14, -32 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %r15, -24 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbp, -16 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r9, %rbp | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rcx, %r14 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rdx, %r15 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rsi, %r13 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rdi, %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r8, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %r12 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r14, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %r14 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r15, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %r15 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r13, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rbp, %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %r13 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r15, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %r15 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r14, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, %r14 | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r12, %rdi | 
|  | ; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rax, 24(%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r14, 16(%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r15, 8(%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %r13, (%rbx) | 
|  | ; SOFT-FLOAT-64-NEXT:    movq %rbx, %rax | 
|  | ; SOFT-FLOAT-64-NEXT:    addq $8, %rsp | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r12 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r13 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r14 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %r15 | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-NEXT:    popq %rbp | 
|  | ; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_v4f64: | 
|  | ; SOFT-FLOAT-64-FMA:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r15 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r14 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r13 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %r12 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    pushq %rax | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 64 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -56 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r12, -48 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r13, -40 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r14, -32 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r15, -24 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbp, -16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r9, %rbp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rcx, %r14 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rdx, %r15 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rsi, %r13 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rdi, %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r8, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r12 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r14, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r14 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r15, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r15 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r13, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rbp, %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r13 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r15, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r15 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r14, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r14 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r12, %rdi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, 24(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r14, 16(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r15, 8(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %r13, (%rbx) | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rax | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    addq $8, %rsp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r12 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r13 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r14 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %r15 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    popq %rbp | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA-NEXT:    retq | 
|  | ; | 
|  | ; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_v4f64: | 
|  | ; SOFT-FLOAT-64-FMA4:       # %bb.0: | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r15 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r14 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r13 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r12 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rax | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 64 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -56 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r12, -48 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r13, -40 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r14, -32 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r15, -24 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbp, -16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r9, %rbp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rcx, %r14 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdx, %r15 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rsi, %r13 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdi, %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r8, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r12 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r14, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r14 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r15, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r15 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r13, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbp, %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r13 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r15, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r15 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r14, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r14 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r12, %rdi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, 24(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r14, 16(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r15, 8(%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %r13, (%rbx) | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rax | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    addq $8, %rsp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 56 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 48 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r12 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 40 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r13 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 32 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r14 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 24 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %r15 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbp | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8 | 
|  | ; SOFT-FLOAT-64-FMA4-NEXT:    retq | 
|  | %product = fmul contract <4 x double> %a, %b | 
|  | %result = fadd contract <4 x double> %product, %c | 
|  | ret <4 x double> %result | 
|  | } | 
|  |  | 
|  | attributes #0 = { "use-soft-float"="true" } | 
|  |  | 
|  | declare float @llvm.fmuladd.f32(float %a, float %b, float %c) | 
|  | declare double @llvm.fmuladd.f64(double %a, double %b, double %c) |