brintos

brintos / llvm-project-archived public Read only

0
0
Text · 80.6 KiB · cbdfa32 Raw
1778 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=i386 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-323; RUN: llc -mtriple=i386 -mattr +fma < %s | FileCheck %s -check-prefix=SOFT-FLOAT-32-FMA4; RUN: llc -mtriple=i386 -mattr +fma4 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-32-FMA45; RUN: llc -mtriple=x86_64 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-646; RUN: llc -mtriple=x86_64 -mattr +fma < %s | FileCheck %s -check-prefix=SOFT-FLOAT-64-FMA7; RUN: llc -mtriple=x86_64 -mattr +fma4 < %s | FileCheck %s -check-prefix=SOFT-FLOAT-64-FMA48 9define float @fmuladd_intrinsic_f32(float %a, float %b, float %c) #0 {10; SOFT-FLOAT-32-LABEL: fmuladd_intrinsic_f32:11; SOFT-FLOAT-32:       # %bb.0:12; SOFT-FLOAT-32-NEXT:    pushl %esi13; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 814; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -815; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi16; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)17; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 418; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)19; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 420; SOFT-FLOAT-32-NEXT:    calll __mulsf321; SOFT-FLOAT-32-NEXT:    addl $8, %esp22; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -823; SOFT-FLOAT-32-NEXT:    pushl %esi24; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 425; SOFT-FLOAT-32-NEXT:    pushl %eax26; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 427; SOFT-FLOAT-32-NEXT:    calll __addsf328; SOFT-FLOAT-32-NEXT:    addl $8, %esp29; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -830; SOFT-FLOAT-32-NEXT:    popl %esi31; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 432; SOFT-FLOAT-32-NEXT:    retl33;34; SOFT-FLOAT-32-FMA-LABEL: fmuladd_intrinsic_f32:35; SOFT-FLOAT-32-FMA:       # %bb.0:36; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi37; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 838; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -839; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi40; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)41; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 442; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)43; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 444; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf345; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp46; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -847; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi48; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 449; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax50; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 451; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf352; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp53; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -854; SOFT-FLOAT-32-FMA-NEXT:    popl %esi55; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 456; SOFT-FLOAT-32-FMA-NEXT:    retl57;58; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_intrinsic_f32:59; SOFT-FLOAT-32-FMA4:       # %bb.0:60; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi61; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 862; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -863; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi64; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)65; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 466; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)67; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 468; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf369; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp70; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -871; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi72; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 473; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax74; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 475; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf376; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp77; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -878; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi79; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 480; SOFT-FLOAT-32-FMA4-NEXT:    retl81;82; SOFT-FLOAT-64-LABEL: fmuladd_intrinsic_f32:83; SOFT-FLOAT-64:       # %bb.0:84; SOFT-FLOAT-64-NEXT:    pushq %rbx85; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 1686; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -1687; SOFT-FLOAT-64-NEXT:    movl %edx, %ebx88; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT89; SOFT-FLOAT-64-NEXT:    movl %eax, %edi90; SOFT-FLOAT-64-NEXT:    movl %ebx, %esi91; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT92; SOFT-FLOAT-64-NEXT:    popq %rbx93; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 894; SOFT-FLOAT-64-NEXT:    retq95;96; SOFT-FLOAT-64-FMA-LABEL: fmuladd_intrinsic_f32:97; SOFT-FLOAT-64-FMA:       # %bb.0:98; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx99; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16100; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16101; SOFT-FLOAT-64-FMA-NEXT:    movl %edx, %ebx102; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT103; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %edi104; SOFT-FLOAT-64-FMA-NEXT:    movl %ebx, %esi105; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT106; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx107; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8108; SOFT-FLOAT-64-FMA-NEXT:    retq109;110; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_intrinsic_f32:111; SOFT-FLOAT-64-FMA4:       # %bb.0:112; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx113; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16114; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16115; SOFT-FLOAT-64-FMA4-NEXT:    movl %edx, %ebx116; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT117; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %edi118; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebx, %esi119; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT120; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx121; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8122; SOFT-FLOAT-64-FMA4-NEXT:    retq123  %result = call float @llvm.fmuladd.f32(float %a, float %b, float %c)124  ret float %result125}126 127define double @fmuladd_intrinsic_f64(double %a, double %b, double %c) #0 {128; SOFT-FLOAT-32-LABEL: fmuladd_intrinsic_f64:129; SOFT-FLOAT-32:       # %bb.0:130; SOFT-FLOAT-32-NEXT:    pushl %edi131; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8132; SOFT-FLOAT-32-NEXT:    pushl %esi133; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12134; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -12135; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -8136; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi137; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi138; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)139; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4140; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)141; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4142; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)143; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4144; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)145; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4146; SOFT-FLOAT-32-NEXT:    calll __muldf3147; SOFT-FLOAT-32-NEXT:    addl $16, %esp148; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16149; SOFT-FLOAT-32-NEXT:    pushl %edi150; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4151; SOFT-FLOAT-32-NEXT:    pushl %esi152; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4153; SOFT-FLOAT-32-NEXT:    pushl %edx154; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4155; SOFT-FLOAT-32-NEXT:    pushl %eax156; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4157; SOFT-FLOAT-32-NEXT:    calll __adddf3158; SOFT-FLOAT-32-NEXT:    addl $16, %esp159; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16160; SOFT-FLOAT-32-NEXT:    popl %esi161; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8162; SOFT-FLOAT-32-NEXT:    popl %edi163; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4164; SOFT-FLOAT-32-NEXT:    retl165;166; SOFT-FLOAT-32-FMA-LABEL: fmuladd_intrinsic_f64:167; SOFT-FLOAT-32-FMA:       # %bb.0:168; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi169; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8170; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi171; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12172; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -12173; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -8174; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi175; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi176; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)177; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4178; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)179; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4180; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)181; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4182; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)183; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4184; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3185; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp186; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16187; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi188; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4189; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi190; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4191; SOFT-FLOAT-32-FMA-NEXT:    pushl %edx192; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4193; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax194; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4195; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3196; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp197; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16198; SOFT-FLOAT-32-FMA-NEXT:    popl %esi199; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8200; SOFT-FLOAT-32-FMA-NEXT:    popl %edi201; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4202; SOFT-FLOAT-32-FMA-NEXT:    retl203;204; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_intrinsic_f64:205; SOFT-FLOAT-32-FMA4:       # %bb.0:206; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi207; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8208; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi209; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12210; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -12211; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -8212; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi213; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi214; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)215; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4216; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)217; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4218; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)219; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4220; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)221; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4222; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3223; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp224; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16225; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi226; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4227; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi228; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4229; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edx230; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4231; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax232; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4233; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3234; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp235; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16236; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi237; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8238; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi239; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4240; SOFT-FLOAT-32-FMA4-NEXT:    retl241;242; SOFT-FLOAT-64-LABEL: fmuladd_intrinsic_f64:243; SOFT-FLOAT-64:       # %bb.0:244; SOFT-FLOAT-64-NEXT:    pushq %rbx245; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16246; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -16247; SOFT-FLOAT-64-NEXT:    movq %rdx, %rbx248; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT249; SOFT-FLOAT-64-NEXT:    movq %rax, %rdi250; SOFT-FLOAT-64-NEXT:    movq %rbx, %rsi251; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT252; SOFT-FLOAT-64-NEXT:    popq %rbx253; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8254; SOFT-FLOAT-64-NEXT:    retq255;256; SOFT-FLOAT-64-FMA-LABEL: fmuladd_intrinsic_f64:257; SOFT-FLOAT-64-FMA:       # %bb.0:258; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx259; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16260; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16261; SOFT-FLOAT-64-FMA-NEXT:    movq %rdx, %rbx262; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT263; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %rdi264; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rsi265; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT266; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx267; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8268; SOFT-FLOAT-64-FMA-NEXT:    retq269;270; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_intrinsic_f64:271; SOFT-FLOAT-64-FMA4:       # %bb.0:272; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx273; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16274; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16275; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdx, %rbx276; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT277; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %rdi278; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rsi279; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT280; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx281; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8282; SOFT-FLOAT-64-FMA4-NEXT:    retq283  %result = call double @llvm.fmuladd.f64(double %a, double %b, double %c)284  ret double %result285}286 287define float @fmuladd_contract_f32(float %a, float %b, float %c) #0 {288; SOFT-FLOAT-32-LABEL: fmuladd_contract_f32:289; SOFT-FLOAT-32:       # %bb.0:290; SOFT-FLOAT-32-NEXT:    pushl %esi291; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8292; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -8293; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi294; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)295; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4296; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)297; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4298; SOFT-FLOAT-32-NEXT:    calll __mulsf3299; SOFT-FLOAT-32-NEXT:    addl $8, %esp300; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8301; SOFT-FLOAT-32-NEXT:    pushl %esi302; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4303; SOFT-FLOAT-32-NEXT:    pushl %eax304; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4305; SOFT-FLOAT-32-NEXT:    calll __addsf3306; SOFT-FLOAT-32-NEXT:    addl $8, %esp307; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8308; SOFT-FLOAT-32-NEXT:    popl %esi309; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4310; SOFT-FLOAT-32-NEXT:    retl311;312; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_f32:313; SOFT-FLOAT-32-FMA:       # %bb.0:314; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi315; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8316; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -8317; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi318; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)319; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4320; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)321; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4322; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3323; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp324; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8325; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi326; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4327; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax328; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4329; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3330; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp331; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8332; SOFT-FLOAT-32-FMA-NEXT:    popl %esi333; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4334; SOFT-FLOAT-32-FMA-NEXT:    retl335;336; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_f32:337; SOFT-FLOAT-32-FMA4:       # %bb.0:338; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi339; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8340; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -8341; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi342; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)343; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4344; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)345; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4346; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3347; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp348; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8349; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi350; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4351; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax352; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4353; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3354; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp355; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8356; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi357; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4358; SOFT-FLOAT-32-FMA4-NEXT:    retl359;360; SOFT-FLOAT-64-LABEL: fmuladd_contract_f32:361; SOFT-FLOAT-64:       # %bb.0:362; SOFT-FLOAT-64-NEXT:    pushq %rbx363; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16364; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -16365; SOFT-FLOAT-64-NEXT:    movl %edx, %ebx366; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT367; SOFT-FLOAT-64-NEXT:    movl %eax, %edi368; SOFT-FLOAT-64-NEXT:    movl %ebx, %esi369; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT370; SOFT-FLOAT-64-NEXT:    popq %rbx371; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8372; SOFT-FLOAT-64-NEXT:    retq373;374; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_f32:375; SOFT-FLOAT-64-FMA:       # %bb.0:376; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx377; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16378; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16379; SOFT-FLOAT-64-FMA-NEXT:    movl %edx, %ebx380; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT381; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %edi382; SOFT-FLOAT-64-FMA-NEXT:    movl %ebx, %esi383; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT384; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx385; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8386; SOFT-FLOAT-64-FMA-NEXT:    retq387;388; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_f32:389; SOFT-FLOAT-64-FMA4:       # %bb.0:390; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx391; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16392; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16393; SOFT-FLOAT-64-FMA4-NEXT:    movl %edx, %ebx394; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT395; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %edi396; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebx, %esi397; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT398; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx399; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8400; SOFT-FLOAT-64-FMA4-NEXT:    retq401  %product = fmul contract float %a, %b402  %result = fadd contract float %product, %c403  ret float %result404}405 406define double @fmuladd_contract_f64(double %a, double %b, double %c) #0 {407; SOFT-FLOAT-32-LABEL: fmuladd_contract_f64:408; SOFT-FLOAT-32:       # %bb.0:409; SOFT-FLOAT-32-NEXT:    pushl %edi410; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8411; SOFT-FLOAT-32-NEXT:    pushl %esi412; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12413; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -12414; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -8415; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi416; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi417; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)418; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4419; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)420; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4421; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)422; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4423; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)424; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4425; SOFT-FLOAT-32-NEXT:    calll __muldf3426; SOFT-FLOAT-32-NEXT:    addl $16, %esp427; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16428; SOFT-FLOAT-32-NEXT:    pushl %edi429; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4430; SOFT-FLOAT-32-NEXT:    pushl %esi431; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4432; SOFT-FLOAT-32-NEXT:    pushl %edx433; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4434; SOFT-FLOAT-32-NEXT:    pushl %eax435; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4436; SOFT-FLOAT-32-NEXT:    calll __adddf3437; SOFT-FLOAT-32-NEXT:    addl $16, %esp438; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -16439; SOFT-FLOAT-32-NEXT:    popl %esi440; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8441; SOFT-FLOAT-32-NEXT:    popl %edi442; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4443; SOFT-FLOAT-32-NEXT:    retl444;445; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_f64:446; SOFT-FLOAT-32-FMA:       # %bb.0:447; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi448; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8449; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi450; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12451; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -12452; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -8453; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi454; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi455; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)456; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4457; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)458; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4459; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)460; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4461; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)462; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4463; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf3464; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp465; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16466; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi467; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4468; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi469; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4470; SOFT-FLOAT-32-FMA-NEXT:    pushl %edx471; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4472; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax473; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4474; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf3475; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp476; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -16477; SOFT-FLOAT-32-FMA-NEXT:    popl %esi478; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8479; SOFT-FLOAT-32-FMA-NEXT:    popl %edi480; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4481; SOFT-FLOAT-32-FMA-NEXT:    retl482;483; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_f64:484; SOFT-FLOAT-32-FMA4:       # %bb.0:485; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi486; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8487; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi488; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12489; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -12490; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -8491; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi492; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi493; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)494; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4495; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)496; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4497; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)498; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4499; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)500; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4501; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf3502; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp503; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16504; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi505; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4506; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi507; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4508; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edx509; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4510; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax511; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4512; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf3513; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp514; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -16515; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi516; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8517; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi518; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4519; SOFT-FLOAT-32-FMA4-NEXT:    retl520;521; SOFT-FLOAT-64-LABEL: fmuladd_contract_f64:522; SOFT-FLOAT-64:       # %bb.0:523; SOFT-FLOAT-64-NEXT:    pushq %rbx524; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16525; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -16526; SOFT-FLOAT-64-NEXT:    movq %rdx, %rbx527; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT528; SOFT-FLOAT-64-NEXT:    movq %rax, %rdi529; SOFT-FLOAT-64-NEXT:    movq %rbx, %rsi530; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT531; SOFT-FLOAT-64-NEXT:    popq %rbx532; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8533; SOFT-FLOAT-64-NEXT:    retq534;535; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_f64:536; SOFT-FLOAT-64-FMA:       # %bb.0:537; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx538; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16539; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -16540; SOFT-FLOAT-64-FMA-NEXT:    movq %rdx, %rbx541; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT542; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %rdi543; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rsi544; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT545; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx546; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 8547; SOFT-FLOAT-64-FMA-NEXT:    retq548;549; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_f64:550; SOFT-FLOAT-64-FMA4:       # %bb.0:551; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx552; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 16553; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -16554; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdx, %rbx555; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT556; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %rdi557; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rsi558; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT559; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx560; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 8561; SOFT-FLOAT-64-FMA4-NEXT:    retq562  %product = fmul contract double %a, %b563  %result = fadd contract double %product, %c564  ret double %result565}566 567define <4 x float> @fmuladd_contract_v4f32(<4 x float> %a, <4 x float> %b, <4 x float> %c) #0 {568; SOFT-FLOAT-32-LABEL: fmuladd_contract_v4f32:569; SOFT-FLOAT-32:       # %bb.0:570; SOFT-FLOAT-32-NEXT:    pushl %ebp571; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8572; SOFT-FLOAT-32-NEXT:    pushl %ebx573; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12574; SOFT-FLOAT-32-NEXT:    pushl %edi575; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 16576; SOFT-FLOAT-32-NEXT:    pushl %esi577; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 20578; SOFT-FLOAT-32-NEXT:    pushl %eax579; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 24580; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -20581; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -16582; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebx, -12583; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebp, -8584; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi585; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebp586; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebx587; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi588; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)589; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4590; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)591; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4592; SOFT-FLOAT-32-NEXT:    calll __mulsf3593; SOFT-FLOAT-32-NEXT:    addl $8, %esp594; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8595; SOFT-FLOAT-32-NEXT:    movl %eax, (%esp) # 4-byte Spill596; SOFT-FLOAT-32-NEXT:    pushl %edi597; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4598; SOFT-FLOAT-32-NEXT:    pushl %ebx599; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4600; SOFT-FLOAT-32-NEXT:    calll __mulsf3601; SOFT-FLOAT-32-NEXT:    addl $8, %esp602; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8603; SOFT-FLOAT-32-NEXT:    movl %eax, %ebx604; SOFT-FLOAT-32-NEXT:    pushl %ebp605; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4606; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)607; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4608; SOFT-FLOAT-32-NEXT:    calll __mulsf3609; SOFT-FLOAT-32-NEXT:    addl $8, %esp610; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8611; SOFT-FLOAT-32-NEXT:    movl %eax, %edi612; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)613; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4614; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)615; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4616; SOFT-FLOAT-32-NEXT:    calll __mulsf3617; SOFT-FLOAT-32-NEXT:    addl $8, %esp618; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8619; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)620; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4621; SOFT-FLOAT-32-NEXT:    pushl %eax622; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4623; SOFT-FLOAT-32-NEXT:    calll __addsf3624; SOFT-FLOAT-32-NEXT:    addl $8, %esp625; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8626; SOFT-FLOAT-32-NEXT:    movl %eax, %ebp627; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)628; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4629; SOFT-FLOAT-32-NEXT:    pushl %edi630; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4631; SOFT-FLOAT-32-NEXT:    calll __addsf3632; SOFT-FLOAT-32-NEXT:    addl $8, %esp633; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8634; SOFT-FLOAT-32-NEXT:    movl %eax, %edi635; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)636; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4637; SOFT-FLOAT-32-NEXT:    pushl %ebx638; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4639; SOFT-FLOAT-32-NEXT:    calll __addsf3640; SOFT-FLOAT-32-NEXT:    addl $8, %esp641; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8642; SOFT-FLOAT-32-NEXT:    movl %eax, %ebx643; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)644; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4645; SOFT-FLOAT-32-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload646; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 4647; SOFT-FLOAT-32-NEXT:    calll __addsf3648; SOFT-FLOAT-32-NEXT:    addl $8, %esp649; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -8650; SOFT-FLOAT-32-NEXT:    movl %eax, 12(%esi)651; SOFT-FLOAT-32-NEXT:    movl %ebx, 8(%esi)652; SOFT-FLOAT-32-NEXT:    movl %edi, 4(%esi)653; SOFT-FLOAT-32-NEXT:    movl %ebp, (%esi)654; SOFT-FLOAT-32-NEXT:    movl %esi, %eax655; SOFT-FLOAT-32-NEXT:    addl $4, %esp656; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 20657; SOFT-FLOAT-32-NEXT:    popl %esi658; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 16659; SOFT-FLOAT-32-NEXT:    popl %edi660; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 12661; SOFT-FLOAT-32-NEXT:    popl %ebx662; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 8663; SOFT-FLOAT-32-NEXT:    popl %ebp664; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 4665; SOFT-FLOAT-32-NEXT:    retl $4666;667; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_v4f32:668; SOFT-FLOAT-32-FMA:       # %bb.0:669; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp670; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8671; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx672; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12673; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi674; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 16675; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi676; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 20677; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax678; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 24679; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -20680; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -16681; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebx, -12682; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebp, -8683; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi684; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebp685; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebx686; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi687; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)688; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4689; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)690; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4691; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3692; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp693; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8694; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, (%esp) # 4-byte Spill695; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi696; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4697; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx698; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4699; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3700; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp701; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8702; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebx703; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp704; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4705; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)706; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4707; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3708; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp709; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8710; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi711; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)712; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4713; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)714; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4715; SOFT-FLOAT-32-FMA-NEXT:    calll __mulsf3716; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp717; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8718; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)719; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4720; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax721; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4722; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3723; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp724; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8725; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebp726; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)727; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4728; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi729; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4730; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3731; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp732; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8733; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi734; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)735; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4736; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx737; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4738; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3739; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp740; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8741; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebx742; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)743; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4744; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload745; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 4746; SOFT-FLOAT-32-FMA-NEXT:    calll __addsf3747; SOFT-FLOAT-32-FMA-NEXT:    addl $8, %esp748; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -8749; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, 12(%esi)750; SOFT-FLOAT-32-FMA-NEXT:    movl %ebx, 8(%esi)751; SOFT-FLOAT-32-FMA-NEXT:    movl %edi, 4(%esi)752; SOFT-FLOAT-32-FMA-NEXT:    movl %ebp, (%esi)753; SOFT-FLOAT-32-FMA-NEXT:    movl %esi, %eax754; SOFT-FLOAT-32-FMA-NEXT:    addl $4, %esp755; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 20756; SOFT-FLOAT-32-FMA-NEXT:    popl %esi757; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 16758; SOFT-FLOAT-32-FMA-NEXT:    popl %edi759; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 12760; SOFT-FLOAT-32-FMA-NEXT:    popl %ebx761; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 8762; SOFT-FLOAT-32-FMA-NEXT:    popl %ebp763; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 4764; SOFT-FLOAT-32-FMA-NEXT:    retl $4765;766; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_v4f32:767; SOFT-FLOAT-32-FMA4:       # %bb.0:768; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp769; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8770; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx771; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12772; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi773; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 16774; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi775; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 20776; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax777; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 24778; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -20779; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -16780; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebx, -12781; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebp, -8782; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi783; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebp784; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebx785; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi786; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)787; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4788; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)789; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4790; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3791; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp792; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8793; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, (%esp) # 4-byte Spill794; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi795; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4796; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx797; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4798; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3799; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp800; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8801; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebx802; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp803; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4804; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)805; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4806; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3807; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp808; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8809; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi810; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)811; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4812; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)813; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4814; SOFT-FLOAT-32-FMA4-NEXT:    calll __mulsf3815; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp816; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8817; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)818; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4819; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax820; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4821; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3822; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp823; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8824; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebp825; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)826; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4827; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi828; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4829; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3830; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp831; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8832; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi833; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)834; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4835; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx836; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4837; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3838; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp839; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8840; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebx841; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)842; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4843; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload844; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 4845; SOFT-FLOAT-32-FMA4-NEXT:    calll __addsf3846; SOFT-FLOAT-32-FMA4-NEXT:    addl $8, %esp847; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -8848; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, 12(%esi)849; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebx, 8(%esi)850; SOFT-FLOAT-32-FMA4-NEXT:    movl %edi, 4(%esi)851; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebp, (%esi)852; SOFT-FLOAT-32-FMA4-NEXT:    movl %esi, %eax853; SOFT-FLOAT-32-FMA4-NEXT:    addl $4, %esp854; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 20855; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi856; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 16857; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi858; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 12859; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebx860; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 8861; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebp862; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 4863; SOFT-FLOAT-32-FMA4-NEXT:    retl $4864;865; SOFT-FLOAT-64-LABEL: fmuladd_contract_v4f32:866; SOFT-FLOAT-64:       # %bb.0:867; SOFT-FLOAT-64-NEXT:    pushq %rbp868; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16869; SOFT-FLOAT-64-NEXT:    pushq %r15870; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 24871; SOFT-FLOAT-64-NEXT:    pushq %r14872; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 32873; SOFT-FLOAT-64-NEXT:    pushq %r13874; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 40875; SOFT-FLOAT-64-NEXT:    pushq %r12876; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 48877; SOFT-FLOAT-64-NEXT:    pushq %rbx878; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 56879; SOFT-FLOAT-64-NEXT:    pushq %rax880; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 64881; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -56882; SOFT-FLOAT-64-NEXT:    .cfi_offset %r12, -48883; SOFT-FLOAT-64-NEXT:    .cfi_offset %r13, -40884; SOFT-FLOAT-64-NEXT:    .cfi_offset %r14, -32885; SOFT-FLOAT-64-NEXT:    .cfi_offset %r15, -24886; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbp, -16887; SOFT-FLOAT-64-NEXT:    movl %r9d, %r13d888; SOFT-FLOAT-64-NEXT:    movl %ecx, %ebp889; SOFT-FLOAT-64-NEXT:    movl %edx, %r14d890; SOFT-FLOAT-64-NEXT:    movl %esi, %r12d891; SOFT-FLOAT-64-NEXT:    movq %rdi, %rbx892; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi893; SOFT-FLOAT-64-NEXT:    movl %r8d, %edi894; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT895; SOFT-FLOAT-64-NEXT:    movl %eax, %r15d896; SOFT-FLOAT-64-NEXT:    movl %ebp, %edi897; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi898; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT899; SOFT-FLOAT-64-NEXT:    movl %eax, %ebp900; SOFT-FLOAT-64-NEXT:    movl %r14d, %edi901; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi902; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT903; SOFT-FLOAT-64-NEXT:    movl %eax, %r14d904; SOFT-FLOAT-64-NEXT:    movl %r12d, %edi905; SOFT-FLOAT-64-NEXT:    movl %r13d, %esi906; SOFT-FLOAT-64-NEXT:    callq __mulsf3@PLT907; SOFT-FLOAT-64-NEXT:    movl %eax, %edi908; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi909; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT910; SOFT-FLOAT-64-NEXT:    movl %eax, %r12d911; SOFT-FLOAT-64-NEXT:    movl %r14d, %edi912; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi913; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT914; SOFT-FLOAT-64-NEXT:    movl %eax, %r14d915; SOFT-FLOAT-64-NEXT:    movl %ebp, %edi916; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi917; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT918; SOFT-FLOAT-64-NEXT:    movl %eax, %ebp919; SOFT-FLOAT-64-NEXT:    movl %r15d, %edi920; SOFT-FLOAT-64-NEXT:    movl {{[0-9]+}}(%rsp), %esi921; SOFT-FLOAT-64-NEXT:    callq __addsf3@PLT922; SOFT-FLOAT-64-NEXT:    movl %eax, 12(%rbx)923; SOFT-FLOAT-64-NEXT:    movl %ebp, 8(%rbx)924; SOFT-FLOAT-64-NEXT:    movl %r14d, 4(%rbx)925; SOFT-FLOAT-64-NEXT:    movl %r12d, (%rbx)926; SOFT-FLOAT-64-NEXT:    movq %rbx, %rax927; SOFT-FLOAT-64-NEXT:    addq $8, %rsp928; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 56929; SOFT-FLOAT-64-NEXT:    popq %rbx930; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 48931; SOFT-FLOAT-64-NEXT:    popq %r12932; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 40933; SOFT-FLOAT-64-NEXT:    popq %r13934; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 32935; SOFT-FLOAT-64-NEXT:    popq %r14936; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 24937; SOFT-FLOAT-64-NEXT:    popq %r15938; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 16939; SOFT-FLOAT-64-NEXT:    popq %rbp940; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 8941; SOFT-FLOAT-64-NEXT:    retq942;943; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_v4f32:944; SOFT-FLOAT-64-FMA:       # %bb.0:945; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbp946; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 16947; SOFT-FLOAT-64-FMA-NEXT:    pushq %r15948; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 24949; SOFT-FLOAT-64-FMA-NEXT:    pushq %r14950; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 32951; SOFT-FLOAT-64-FMA-NEXT:    pushq %r13952; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 40953; SOFT-FLOAT-64-FMA-NEXT:    pushq %r12954; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 48955; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx956; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 56957; SOFT-FLOAT-64-FMA-NEXT:    pushq %rax958; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 64959; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -56960; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r12, -48961; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r13, -40962; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r14, -32963; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r15, -24964; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbp, -16965; SOFT-FLOAT-64-FMA-NEXT:    movl %r9d, %r13d966; SOFT-FLOAT-64-FMA-NEXT:    movl %ecx, %ebp967; SOFT-FLOAT-64-FMA-NEXT:    movl %edx, %r14d968; SOFT-FLOAT-64-FMA-NEXT:    movl %esi, %r12d969; SOFT-FLOAT-64-FMA-NEXT:    movq %rdi, %rbx970; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi971; SOFT-FLOAT-64-FMA-NEXT:    movl %r8d, %edi972; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT973; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r15d974; SOFT-FLOAT-64-FMA-NEXT:    movl %ebp, %edi975; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi976; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT977; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %ebp978; SOFT-FLOAT-64-FMA-NEXT:    movl %r14d, %edi979; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi980; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT981; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r14d982; SOFT-FLOAT-64-FMA-NEXT:    movl %r12d, %edi983; SOFT-FLOAT-64-FMA-NEXT:    movl %r13d, %esi984; SOFT-FLOAT-64-FMA-NEXT:    callq __mulsf3@PLT985; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %edi986; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi987; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT988; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r12d989; SOFT-FLOAT-64-FMA-NEXT:    movl %r14d, %edi990; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi991; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT992; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %r14d993; SOFT-FLOAT-64-FMA-NEXT:    movl %ebp, %edi994; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi995; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT996; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, %ebp997; SOFT-FLOAT-64-FMA-NEXT:    movl %r15d, %edi998; SOFT-FLOAT-64-FMA-NEXT:    movl {{[0-9]+}}(%rsp), %esi999; SOFT-FLOAT-64-FMA-NEXT:    callq __addsf3@PLT1000; SOFT-FLOAT-64-FMA-NEXT:    movl %eax, 12(%rbx)1001; SOFT-FLOAT-64-FMA-NEXT:    movl %ebp, 8(%rbx)1002; SOFT-FLOAT-64-FMA-NEXT:    movl %r14d, 4(%rbx)1003; SOFT-FLOAT-64-FMA-NEXT:    movl %r12d, (%rbx)1004; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rax1005; SOFT-FLOAT-64-FMA-NEXT:    addq $8, %rsp1006; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 561007; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx1008; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 481009; SOFT-FLOAT-64-FMA-NEXT:    popq %r121010; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 401011; SOFT-FLOAT-64-FMA-NEXT:    popq %r131012; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 321013; SOFT-FLOAT-64-FMA-NEXT:    popq %r141014; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 241015; SOFT-FLOAT-64-FMA-NEXT:    popq %r151016; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 161017; SOFT-FLOAT-64-FMA-NEXT:    popq %rbp1018; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 81019; SOFT-FLOAT-64-FMA-NEXT:    retq1020;1021; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_v4f32:1022; SOFT-FLOAT-64-FMA4:       # %bb.0:1023; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbp1024; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 161025; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r151026; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 241027; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r141028; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 321029; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r131030; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 401031; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r121032; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 481033; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx1034; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 561035; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rax1036; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 641037; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -561038; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r12, -481039; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r13, -401040; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r14, -321041; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r15, -241042; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbp, -161043; SOFT-FLOAT-64-FMA4-NEXT:    movl %r9d, %r13d1044; SOFT-FLOAT-64-FMA4-NEXT:    movl %ecx, %ebp1045; SOFT-FLOAT-64-FMA4-NEXT:    movl %edx, %r14d1046; SOFT-FLOAT-64-FMA4-NEXT:    movl %esi, %r12d1047; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdi, %rbx1048; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi1049; SOFT-FLOAT-64-FMA4-NEXT:    movl %r8d, %edi1050; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT1051; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r15d1052; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebp, %edi1053; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi1054; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT1055; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %ebp1056; SOFT-FLOAT-64-FMA4-NEXT:    movl %r14d, %edi1057; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi1058; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT1059; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r14d1060; SOFT-FLOAT-64-FMA4-NEXT:    movl %r12d, %edi1061; SOFT-FLOAT-64-FMA4-NEXT:    movl %r13d, %esi1062; SOFT-FLOAT-64-FMA4-NEXT:    callq __mulsf3@PLT1063; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %edi1064; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi1065; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT1066; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r12d1067; SOFT-FLOAT-64-FMA4-NEXT:    movl %r14d, %edi1068; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi1069; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT1070; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %r14d1071; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebp, %edi1072; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi1073; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT1074; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, %ebp1075; SOFT-FLOAT-64-FMA4-NEXT:    movl %r15d, %edi1076; SOFT-FLOAT-64-FMA4-NEXT:    movl {{[0-9]+}}(%rsp), %esi1077; SOFT-FLOAT-64-FMA4-NEXT:    callq __addsf3@PLT1078; SOFT-FLOAT-64-FMA4-NEXT:    movl %eax, 12(%rbx)1079; SOFT-FLOAT-64-FMA4-NEXT:    movl %ebp, 8(%rbx)1080; SOFT-FLOAT-64-FMA4-NEXT:    movl %r14d, 4(%rbx)1081; SOFT-FLOAT-64-FMA4-NEXT:    movl %r12d, (%rbx)1082; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rax1083; SOFT-FLOAT-64-FMA4-NEXT:    addq $8, %rsp1084; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 561085; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx1086; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 481087; SOFT-FLOAT-64-FMA4-NEXT:    popq %r121088; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 401089; SOFT-FLOAT-64-FMA4-NEXT:    popq %r131090; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 321091; SOFT-FLOAT-64-FMA4-NEXT:    popq %r141092; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 241093; SOFT-FLOAT-64-FMA4-NEXT:    popq %r151094; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 161095; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbp1096; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 81097; SOFT-FLOAT-64-FMA4-NEXT:    retq1098  %product = fmul contract <4 x float> %a, %b1099  %result = fadd contract <4 x float> %product, %c1100  ret <4 x float> %result1101}1102 1103define <4 x double> @fmuladd_contract_v4f64(<4 x double> %a, <4 x double> %b, <4 x double> %c) #0 {1104; SOFT-FLOAT-32-LABEL: fmuladd_contract_v4f64:1105; SOFT-FLOAT-32:       # %bb.0:1106; SOFT-FLOAT-32-NEXT:    pushl %ebp1107; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 81108; SOFT-FLOAT-32-NEXT:    pushl %ebx1109; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 121110; SOFT-FLOAT-32-NEXT:    pushl %edi1111; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 161112; SOFT-FLOAT-32-NEXT:    pushl %esi1113; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 201114; SOFT-FLOAT-32-NEXT:    subl $16, %esp1115; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 361116; SOFT-FLOAT-32-NEXT:    .cfi_offset %esi, -201117; SOFT-FLOAT-32-NEXT:    .cfi_offset %edi, -161118; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebx, -121119; SOFT-FLOAT-32-NEXT:    .cfi_offset %ebp, -81120; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %edi1121; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebx1122; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %esi1123; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ebp1124; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1125; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41126; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1127; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41128; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1129; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41130; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1131; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41132; SOFT-FLOAT-32-NEXT:    calll __muldf31133; SOFT-FLOAT-32-NEXT:    addl $16, %esp1134; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161135; SOFT-FLOAT-32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1136; SOFT-FLOAT-32-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1137; SOFT-FLOAT-32-NEXT:    pushl %ebp1138; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41139; SOFT-FLOAT-32-NEXT:    pushl %esi1140; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41141; SOFT-FLOAT-32-NEXT:    pushl %ebx1142; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41143; SOFT-FLOAT-32-NEXT:    pushl %edi1144; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41145; SOFT-FLOAT-32-NEXT:    calll __muldf31146; SOFT-FLOAT-32-NEXT:    addl $16, %esp1147; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161148; SOFT-FLOAT-32-NEXT:    movl %eax, %esi1149; SOFT-FLOAT-32-NEXT:    movl %edx, %ebp1150; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1151; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41152; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1153; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41154; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1155; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41156; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1157; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41158; SOFT-FLOAT-32-NEXT:    calll __muldf31159; SOFT-FLOAT-32-NEXT:    addl $16, %esp1160; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161161; SOFT-FLOAT-32-NEXT:    movl %eax, %edi1162; SOFT-FLOAT-32-NEXT:    movl %edx, %ebx1163; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1164; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41165; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1166; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41167; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1168; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41169; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1170; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41171; SOFT-FLOAT-32-NEXT:    calll __muldf31172; SOFT-FLOAT-32-NEXT:    addl $16, %esp1173; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161174; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1175; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41176; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1177; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41178; SOFT-FLOAT-32-NEXT:    pushl %edx1179; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41180; SOFT-FLOAT-32-NEXT:    pushl %eax1181; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41182; SOFT-FLOAT-32-NEXT:    calll __adddf31183; SOFT-FLOAT-32-NEXT:    addl $16, %esp1184; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161185; SOFT-FLOAT-32-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1186; SOFT-FLOAT-32-NEXT:    movl %edx, (%esp) # 4-byte Spill1187; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1188; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41189; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1190; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41191; SOFT-FLOAT-32-NEXT:    pushl %ebx1192; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41193; SOFT-FLOAT-32-NEXT:    pushl %edi1194; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41195; SOFT-FLOAT-32-NEXT:    calll __adddf31196; SOFT-FLOAT-32-NEXT:    addl $16, %esp1197; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161198; SOFT-FLOAT-32-NEXT:    movl %eax, %edi1199; SOFT-FLOAT-32-NEXT:    movl %edx, %ebx1200; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1201; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41202; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1203; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41204; SOFT-FLOAT-32-NEXT:    pushl %ebp1205; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41206; SOFT-FLOAT-32-NEXT:    pushl %esi1207; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41208; SOFT-FLOAT-32-NEXT:    calll __adddf31209; SOFT-FLOAT-32-NEXT:    addl $16, %esp1210; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161211; SOFT-FLOAT-32-NEXT:    movl %eax, %ebp1212; SOFT-FLOAT-32-NEXT:    movl %edx, %esi1213; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1214; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41215; SOFT-FLOAT-32-NEXT:    pushl {{[0-9]+}}(%esp)1216; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41217; SOFT-FLOAT-32-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload1218; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41219; SOFT-FLOAT-32-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload1220; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset 41221; SOFT-FLOAT-32-NEXT:    calll __adddf31222; SOFT-FLOAT-32-NEXT:    addl $16, %esp1223; SOFT-FLOAT-32-NEXT:    .cfi_adjust_cfa_offset -161224; SOFT-FLOAT-32-NEXT:    movl {{[0-9]+}}(%esp), %ecx1225; SOFT-FLOAT-32-NEXT:    movl %edx, 28(%ecx)1226; SOFT-FLOAT-32-NEXT:    movl %eax, 24(%ecx)1227; SOFT-FLOAT-32-NEXT:    movl %esi, 20(%ecx)1228; SOFT-FLOAT-32-NEXT:    movl %ebp, 16(%ecx)1229; SOFT-FLOAT-32-NEXT:    movl %ebx, 12(%ecx)1230; SOFT-FLOAT-32-NEXT:    movl %edi, 8(%ecx)1231; SOFT-FLOAT-32-NEXT:    movl (%esp), %eax # 4-byte Reload1232; SOFT-FLOAT-32-NEXT:    movl %eax, 4(%ecx)1233; SOFT-FLOAT-32-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload1234; SOFT-FLOAT-32-NEXT:    movl %eax, (%ecx)1235; SOFT-FLOAT-32-NEXT:    movl %ecx, %eax1236; SOFT-FLOAT-32-NEXT:    addl $16, %esp1237; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 201238; SOFT-FLOAT-32-NEXT:    popl %esi1239; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 161240; SOFT-FLOAT-32-NEXT:    popl %edi1241; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 121242; SOFT-FLOAT-32-NEXT:    popl %ebx1243; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 81244; SOFT-FLOAT-32-NEXT:    popl %ebp1245; SOFT-FLOAT-32-NEXT:    .cfi_def_cfa_offset 41246; SOFT-FLOAT-32-NEXT:    retl $41247;1248; SOFT-FLOAT-32-FMA-LABEL: fmuladd_contract_v4f64:1249; SOFT-FLOAT-32-FMA:       # %bb.0:1250; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp1251; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 81252; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx1253; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 121254; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi1255; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 161256; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi1257; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 201258; SOFT-FLOAT-32-FMA-NEXT:    subl $16, %esp1259; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 361260; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %esi, -201261; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %edi, -161262; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebx, -121263; SOFT-FLOAT-32-FMA-NEXT:    .cfi_offset %ebp, -81264; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %edi1265; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebx1266; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %esi1267; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ebp1268; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1269; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41270; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1271; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41272; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1273; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41274; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1275; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41276; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf31277; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1278; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161279; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1280; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1281; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp1282; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41283; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi1284; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41285; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx1286; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41287; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi1288; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41289; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf31290; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1291; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161292; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %esi1293; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %ebp1294; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1295; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41296; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1297; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41298; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1299; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41300; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1301; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41302; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf31303; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1304; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161305; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi1306; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %ebx1307; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1308; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41309; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1310; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41311; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1312; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41313; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1314; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41315; SOFT-FLOAT-32-FMA-NEXT:    calll __muldf31316; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1317; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161318; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1319; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41320; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1321; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41322; SOFT-FLOAT-32-FMA-NEXT:    pushl %edx1323; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41324; SOFT-FLOAT-32-FMA-NEXT:    pushl %eax1325; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41326; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf31327; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1328; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161329; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1330; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, (%esp) # 4-byte Spill1331; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1332; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41333; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1334; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41335; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebx1336; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41337; SOFT-FLOAT-32-FMA-NEXT:    pushl %edi1338; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41339; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf31340; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1341; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161342; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %edi1343; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %ebx1344; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1345; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41346; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1347; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41348; SOFT-FLOAT-32-FMA-NEXT:    pushl %ebp1349; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41350; SOFT-FLOAT-32-FMA-NEXT:    pushl %esi1351; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41352; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf31353; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1354; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161355; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, %ebp1356; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, %esi1357; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1358; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41359; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[0-9]+}}(%esp)1360; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41361; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload1362; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41363; SOFT-FLOAT-32-FMA-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload1364; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset 41365; SOFT-FLOAT-32-FMA-NEXT:    calll __adddf31366; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1367; SOFT-FLOAT-32-FMA-NEXT:    .cfi_adjust_cfa_offset -161368; SOFT-FLOAT-32-FMA-NEXT:    movl {{[0-9]+}}(%esp), %ecx1369; SOFT-FLOAT-32-FMA-NEXT:    movl %edx, 28(%ecx)1370; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, 24(%ecx)1371; SOFT-FLOAT-32-FMA-NEXT:    movl %esi, 20(%ecx)1372; SOFT-FLOAT-32-FMA-NEXT:    movl %ebp, 16(%ecx)1373; SOFT-FLOAT-32-FMA-NEXT:    movl %ebx, 12(%ecx)1374; SOFT-FLOAT-32-FMA-NEXT:    movl %edi, 8(%ecx)1375; SOFT-FLOAT-32-FMA-NEXT:    movl (%esp), %eax # 4-byte Reload1376; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, 4(%ecx)1377; SOFT-FLOAT-32-FMA-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload1378; SOFT-FLOAT-32-FMA-NEXT:    movl %eax, (%ecx)1379; SOFT-FLOAT-32-FMA-NEXT:    movl %ecx, %eax1380; SOFT-FLOAT-32-FMA-NEXT:    addl $16, %esp1381; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 201382; SOFT-FLOAT-32-FMA-NEXT:    popl %esi1383; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 161384; SOFT-FLOAT-32-FMA-NEXT:    popl %edi1385; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 121386; SOFT-FLOAT-32-FMA-NEXT:    popl %ebx1387; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 81388; SOFT-FLOAT-32-FMA-NEXT:    popl %ebp1389; SOFT-FLOAT-32-FMA-NEXT:    .cfi_def_cfa_offset 41390; SOFT-FLOAT-32-FMA-NEXT:    retl $41391;1392; SOFT-FLOAT-32-FMA4-LABEL: fmuladd_contract_v4f64:1393; SOFT-FLOAT-32-FMA4:       # %bb.0:1394; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp1395; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 81396; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx1397; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 121398; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi1399; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 161400; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi1401; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 201402; SOFT-FLOAT-32-FMA4-NEXT:    subl $16, %esp1403; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 361404; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %esi, -201405; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %edi, -161406; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebx, -121407; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_offset %ebp, -81408; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %edi1409; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebx1410; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %esi1411; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ebp1412; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1413; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41414; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1415; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41416; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1417; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41418; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1419; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41420; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf31421; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1422; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161423; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1424; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1425; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp1426; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41427; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi1428; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41429; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx1430; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41431; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi1432; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41433; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf31434; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1435; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161436; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %esi1437; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %ebp1438; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1439; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41440; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1441; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41442; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1443; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41444; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1445; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41446; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf31447; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1448; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161449; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi1450; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %ebx1451; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1452; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41453; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1454; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41455; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1456; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41457; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1458; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41459; SOFT-FLOAT-32-FMA4-NEXT:    calll __muldf31460; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1461; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161462; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1463; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41464; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1465; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41466; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edx1467; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41468; SOFT-FLOAT-32-FMA4-NEXT:    pushl %eax1469; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41470; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf31471; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1472; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161473; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill1474; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, (%esp) # 4-byte Spill1475; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1476; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41477; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1478; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41479; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebx1480; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41481; SOFT-FLOAT-32-FMA4-NEXT:    pushl %edi1482; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41483; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf31484; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1485; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161486; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %edi1487; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %ebx1488; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1489; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41490; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1491; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41492; SOFT-FLOAT-32-FMA4-NEXT:    pushl %ebp1493; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41494; SOFT-FLOAT-32-FMA4-NEXT:    pushl %esi1495; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41496; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf31497; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1498; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161499; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, %ebp1500; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, %esi1501; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1502; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41503; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[0-9]+}}(%esp)1504; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41505; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload1506; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41507; SOFT-FLOAT-32-FMA4-NEXT:    pushl {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload1508; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset 41509; SOFT-FLOAT-32-FMA4-NEXT:    calll __adddf31510; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1511; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_adjust_cfa_offset -161512; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[0-9]+}}(%esp), %ecx1513; SOFT-FLOAT-32-FMA4-NEXT:    movl %edx, 28(%ecx)1514; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, 24(%ecx)1515; SOFT-FLOAT-32-FMA4-NEXT:    movl %esi, 20(%ecx)1516; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebp, 16(%ecx)1517; SOFT-FLOAT-32-FMA4-NEXT:    movl %ebx, 12(%ecx)1518; SOFT-FLOAT-32-FMA4-NEXT:    movl %edi, 8(%ecx)1519; SOFT-FLOAT-32-FMA4-NEXT:    movl (%esp), %eax # 4-byte Reload1520; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, 4(%ecx)1521; SOFT-FLOAT-32-FMA4-NEXT:    movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload1522; SOFT-FLOAT-32-FMA4-NEXT:    movl %eax, (%ecx)1523; SOFT-FLOAT-32-FMA4-NEXT:    movl %ecx, %eax1524; SOFT-FLOAT-32-FMA4-NEXT:    addl $16, %esp1525; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 201526; SOFT-FLOAT-32-FMA4-NEXT:    popl %esi1527; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 161528; SOFT-FLOAT-32-FMA4-NEXT:    popl %edi1529; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 121530; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebx1531; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 81532; SOFT-FLOAT-32-FMA4-NEXT:    popl %ebp1533; SOFT-FLOAT-32-FMA4-NEXT:    .cfi_def_cfa_offset 41534; SOFT-FLOAT-32-FMA4-NEXT:    retl $41535;1536; SOFT-FLOAT-64-LABEL: fmuladd_contract_v4f64:1537; SOFT-FLOAT-64:       # %bb.0:1538; SOFT-FLOAT-64-NEXT:    pushq %rbp1539; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 161540; SOFT-FLOAT-64-NEXT:    pushq %r151541; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 241542; SOFT-FLOAT-64-NEXT:    pushq %r141543; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 321544; SOFT-FLOAT-64-NEXT:    pushq %r131545; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 401546; SOFT-FLOAT-64-NEXT:    pushq %r121547; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 481548; SOFT-FLOAT-64-NEXT:    pushq %rbx1549; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 561550; SOFT-FLOAT-64-NEXT:    pushq %rax1551; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 641552; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbx, -561553; SOFT-FLOAT-64-NEXT:    .cfi_offset %r12, -481554; SOFT-FLOAT-64-NEXT:    .cfi_offset %r13, -401555; SOFT-FLOAT-64-NEXT:    .cfi_offset %r14, -321556; SOFT-FLOAT-64-NEXT:    .cfi_offset %r15, -241557; SOFT-FLOAT-64-NEXT:    .cfi_offset %rbp, -161558; SOFT-FLOAT-64-NEXT:    movq %r9, %rbp1559; SOFT-FLOAT-64-NEXT:    movq %rcx, %r141560; SOFT-FLOAT-64-NEXT:    movq %rdx, %r151561; SOFT-FLOAT-64-NEXT:    movq %rsi, %r131562; SOFT-FLOAT-64-NEXT:    movq %rdi, %rbx1563; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1564; SOFT-FLOAT-64-NEXT:    movq %r8, %rdi1565; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT1566; SOFT-FLOAT-64-NEXT:    movq %rax, %r121567; SOFT-FLOAT-64-NEXT:    movq %r14, %rdi1568; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1569; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT1570; SOFT-FLOAT-64-NEXT:    movq %rax, %r141571; SOFT-FLOAT-64-NEXT:    movq %r15, %rdi1572; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1573; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT1574; SOFT-FLOAT-64-NEXT:    movq %rax, %r151575; SOFT-FLOAT-64-NEXT:    movq %r13, %rdi1576; SOFT-FLOAT-64-NEXT:    movq %rbp, %rsi1577; SOFT-FLOAT-64-NEXT:    callq __muldf3@PLT1578; SOFT-FLOAT-64-NEXT:    movq %rax, %rdi1579; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1580; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT1581; SOFT-FLOAT-64-NEXT:    movq %rax, %r131582; SOFT-FLOAT-64-NEXT:    movq %r15, %rdi1583; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1584; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT1585; SOFT-FLOAT-64-NEXT:    movq %rax, %r151586; SOFT-FLOAT-64-NEXT:    movq %r14, %rdi1587; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1588; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT1589; SOFT-FLOAT-64-NEXT:    movq %rax, %r141590; SOFT-FLOAT-64-NEXT:    movq %r12, %rdi1591; SOFT-FLOAT-64-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1592; SOFT-FLOAT-64-NEXT:    callq __adddf3@PLT1593; SOFT-FLOAT-64-NEXT:    movq %rax, 24(%rbx)1594; SOFT-FLOAT-64-NEXT:    movq %r14, 16(%rbx)1595; SOFT-FLOAT-64-NEXT:    movq %r15, 8(%rbx)1596; SOFT-FLOAT-64-NEXT:    movq %r13, (%rbx)1597; SOFT-FLOAT-64-NEXT:    movq %rbx, %rax1598; SOFT-FLOAT-64-NEXT:    addq $8, %rsp1599; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 561600; SOFT-FLOAT-64-NEXT:    popq %rbx1601; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 481602; SOFT-FLOAT-64-NEXT:    popq %r121603; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 401604; SOFT-FLOAT-64-NEXT:    popq %r131605; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 321606; SOFT-FLOAT-64-NEXT:    popq %r141607; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 241608; SOFT-FLOAT-64-NEXT:    popq %r151609; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 161610; SOFT-FLOAT-64-NEXT:    popq %rbp1611; SOFT-FLOAT-64-NEXT:    .cfi_def_cfa_offset 81612; SOFT-FLOAT-64-NEXT:    retq1613;1614; SOFT-FLOAT-64-FMA-LABEL: fmuladd_contract_v4f64:1615; SOFT-FLOAT-64-FMA:       # %bb.0:1616; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbp1617; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 161618; SOFT-FLOAT-64-FMA-NEXT:    pushq %r151619; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 241620; SOFT-FLOAT-64-FMA-NEXT:    pushq %r141621; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 321622; SOFT-FLOAT-64-FMA-NEXT:    pushq %r131623; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 401624; SOFT-FLOAT-64-FMA-NEXT:    pushq %r121625; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 481626; SOFT-FLOAT-64-FMA-NEXT:    pushq %rbx1627; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 561628; SOFT-FLOAT-64-FMA-NEXT:    pushq %rax1629; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 641630; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbx, -561631; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r12, -481632; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r13, -401633; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r14, -321634; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %r15, -241635; SOFT-FLOAT-64-FMA-NEXT:    .cfi_offset %rbp, -161636; SOFT-FLOAT-64-FMA-NEXT:    movq %r9, %rbp1637; SOFT-FLOAT-64-FMA-NEXT:    movq %rcx, %r141638; SOFT-FLOAT-64-FMA-NEXT:    movq %rdx, %r151639; SOFT-FLOAT-64-FMA-NEXT:    movq %rsi, %r131640; SOFT-FLOAT-64-FMA-NEXT:    movq %rdi, %rbx1641; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1642; SOFT-FLOAT-64-FMA-NEXT:    movq %r8, %rdi1643; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT1644; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r121645; SOFT-FLOAT-64-FMA-NEXT:    movq %r14, %rdi1646; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1647; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT1648; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r141649; SOFT-FLOAT-64-FMA-NEXT:    movq %r15, %rdi1650; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1651; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT1652; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r151653; SOFT-FLOAT-64-FMA-NEXT:    movq %r13, %rdi1654; SOFT-FLOAT-64-FMA-NEXT:    movq %rbp, %rsi1655; SOFT-FLOAT-64-FMA-NEXT:    callq __muldf3@PLT1656; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %rdi1657; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1658; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT1659; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r131660; SOFT-FLOAT-64-FMA-NEXT:    movq %r15, %rdi1661; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1662; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT1663; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r151664; SOFT-FLOAT-64-FMA-NEXT:    movq %r14, %rdi1665; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1666; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT1667; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, %r141668; SOFT-FLOAT-64-FMA-NEXT:    movq %r12, %rdi1669; SOFT-FLOAT-64-FMA-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1670; SOFT-FLOAT-64-FMA-NEXT:    callq __adddf3@PLT1671; SOFT-FLOAT-64-FMA-NEXT:    movq %rax, 24(%rbx)1672; SOFT-FLOAT-64-FMA-NEXT:    movq %r14, 16(%rbx)1673; SOFT-FLOAT-64-FMA-NEXT:    movq %r15, 8(%rbx)1674; SOFT-FLOAT-64-FMA-NEXT:    movq %r13, (%rbx)1675; SOFT-FLOAT-64-FMA-NEXT:    movq %rbx, %rax1676; SOFT-FLOAT-64-FMA-NEXT:    addq $8, %rsp1677; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 561678; SOFT-FLOAT-64-FMA-NEXT:    popq %rbx1679; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 481680; SOFT-FLOAT-64-FMA-NEXT:    popq %r121681; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 401682; SOFT-FLOAT-64-FMA-NEXT:    popq %r131683; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 321684; SOFT-FLOAT-64-FMA-NEXT:    popq %r141685; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 241686; SOFT-FLOAT-64-FMA-NEXT:    popq %r151687; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 161688; SOFT-FLOAT-64-FMA-NEXT:    popq %rbp1689; SOFT-FLOAT-64-FMA-NEXT:    .cfi_def_cfa_offset 81690; SOFT-FLOAT-64-FMA-NEXT:    retq1691;1692; SOFT-FLOAT-64-FMA4-LABEL: fmuladd_contract_v4f64:1693; SOFT-FLOAT-64-FMA4:       # %bb.0:1694; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbp1695; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 161696; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r151697; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 241698; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r141699; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 321700; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r131701; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 401702; SOFT-FLOAT-64-FMA4-NEXT:    pushq %r121703; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 481704; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rbx1705; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 561706; SOFT-FLOAT-64-FMA4-NEXT:    pushq %rax1707; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 641708; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbx, -561709; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r12, -481710; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r13, -401711; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r14, -321712; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %r15, -241713; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_offset %rbp, -161714; SOFT-FLOAT-64-FMA4-NEXT:    movq %r9, %rbp1715; SOFT-FLOAT-64-FMA4-NEXT:    movq %rcx, %r141716; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdx, %r151717; SOFT-FLOAT-64-FMA4-NEXT:    movq %rsi, %r131718; SOFT-FLOAT-64-FMA4-NEXT:    movq %rdi, %rbx1719; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1720; SOFT-FLOAT-64-FMA4-NEXT:    movq %r8, %rdi1721; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT1722; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r121723; SOFT-FLOAT-64-FMA4-NEXT:    movq %r14, %rdi1724; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1725; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT1726; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r141727; SOFT-FLOAT-64-FMA4-NEXT:    movq %r15, %rdi1728; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1729; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT1730; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r151731; SOFT-FLOAT-64-FMA4-NEXT:    movq %r13, %rdi1732; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbp, %rsi1733; SOFT-FLOAT-64-FMA4-NEXT:    callq __muldf3@PLT1734; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %rdi1735; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1736; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT1737; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r131738; SOFT-FLOAT-64-FMA4-NEXT:    movq %r15, %rdi1739; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1740; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT1741; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r151742; SOFT-FLOAT-64-FMA4-NEXT:    movq %r14, %rdi1743; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1744; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT1745; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, %r141746; SOFT-FLOAT-64-FMA4-NEXT:    movq %r12, %rdi1747; SOFT-FLOAT-64-FMA4-NEXT:    movq {{[0-9]+}}(%rsp), %rsi1748; SOFT-FLOAT-64-FMA4-NEXT:    callq __adddf3@PLT1749; SOFT-FLOAT-64-FMA4-NEXT:    movq %rax, 24(%rbx)1750; SOFT-FLOAT-64-FMA4-NEXT:    movq %r14, 16(%rbx)1751; SOFT-FLOAT-64-FMA4-NEXT:    movq %r15, 8(%rbx)1752; SOFT-FLOAT-64-FMA4-NEXT:    movq %r13, (%rbx)1753; SOFT-FLOAT-64-FMA4-NEXT:    movq %rbx, %rax1754; SOFT-FLOAT-64-FMA4-NEXT:    addq $8, %rsp1755; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 561756; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbx1757; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 481758; SOFT-FLOAT-64-FMA4-NEXT:    popq %r121759; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 401760; SOFT-FLOAT-64-FMA4-NEXT:    popq %r131761; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 321762; SOFT-FLOAT-64-FMA4-NEXT:    popq %r141763; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 241764; SOFT-FLOAT-64-FMA4-NEXT:    popq %r151765; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 161766; SOFT-FLOAT-64-FMA4-NEXT:    popq %rbp1767; SOFT-FLOAT-64-FMA4-NEXT:    .cfi_def_cfa_offset 81768; SOFT-FLOAT-64-FMA4-NEXT:    retq1769  %product = fmul contract <4 x double> %a, %b1770  %result = fadd contract <4 x double> %product, %c1771  ret <4 x double> %result1772}1773 1774attributes #0 = { "use-soft-float"="true" }1775 1776declare float @llvm.fmuladd.f32(float %a, float %b, float %c)1777declare double @llvm.fmuladd.f64(double %a, double %b, double %c)1778