brintos

brintos / llvm-project-archived public Read only

0
0
Text · 17.5 KiB · 2dd1f05 Raw
640 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i386-unknown | FileCheck %s --check-prefixes=X863; RUN: llc < %s -mtriple=x86_64-unknown | FileCheck %s --check-prefixes=X644 5;6; FADD7;8 9define x86_fp80 @fiadd_fp80_i16(x86_fp80 %a0, i16 %a1) {10; X86-LABEL: fiadd_fp80_i16:11; X86:       # %bb.0:12; X86-NEXT:    pushl %eax13; X86-NEXT:    .cfi_def_cfa_offset 814; X86-NEXT:    fldt {{[0-9]+}}(%esp)15; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax16; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)17; X86-NEXT:    fiadds {{[0-9]+}}(%esp)18; X86-NEXT:    popl %eax19; X86-NEXT:    .cfi_def_cfa_offset 420; X86-NEXT:    retl21;22; X64-LABEL: fiadd_fp80_i16:23; X64:       # %bb.0:24; X64-NEXT:    fldt {{[0-9]+}}(%rsp)25; X64-NEXT:    movw %di, -{{[0-9]+}}(%rsp)26; X64-NEXT:    fiadds -{{[0-9]+}}(%rsp)27; X64-NEXT:    retq28  %1 = sitofp i16 %a1 to x86_fp8029  %2 = fadd x86_fp80 %a0, %130  ret x86_fp80 %231}32 33define x86_fp80 @fiadd_fp80_i16_ld(x86_fp80 %a0, ptr%a1) {34; X86-LABEL: fiadd_fp80_i16_ld:35; X86:       # %bb.0:36; X86-NEXT:    pushl %eax37; X86-NEXT:    .cfi_def_cfa_offset 838; X86-NEXT:    fldt {{[0-9]+}}(%esp)39; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax40; X86-NEXT:    movzwl (%eax), %eax41; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)42; X86-NEXT:    fiadds {{[0-9]+}}(%esp)43; X86-NEXT:    popl %eax44; X86-NEXT:    .cfi_def_cfa_offset 445; X86-NEXT:    retl46;47; X64-LABEL: fiadd_fp80_i16_ld:48; X64:       # %bb.0:49; X64-NEXT:    fldt {{[0-9]+}}(%rsp)50; X64-NEXT:    movzwl (%rdi), %eax51; X64-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)52; X64-NEXT:    fiadds -{{[0-9]+}}(%rsp)53; X64-NEXT:    retq54  %1 = load i16, ptr%a155  %2 = sitofp i16 %1 to x86_fp8056  %3 = fadd x86_fp80 %a0, %257  ret x86_fp80 %358}59 60define x86_fp80 @fiadd_fp80_i32(x86_fp80 %a0, i32 %a1) {61; X86-LABEL: fiadd_fp80_i32:62; X86:       # %bb.0:63; X86-NEXT:    pushl %eax64; X86-NEXT:    .cfi_def_cfa_offset 865; X86-NEXT:    fldt {{[0-9]+}}(%esp)66; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax67; X86-NEXT:    movl %eax, (%esp)68; X86-NEXT:    fiaddl (%esp)69; X86-NEXT:    popl %eax70; X86-NEXT:    .cfi_def_cfa_offset 471; X86-NEXT:    retl72;73; X64-LABEL: fiadd_fp80_i32:74; X64:       # %bb.0:75; X64-NEXT:    fldt {{[0-9]+}}(%rsp)76; X64-NEXT:    movl %edi, -{{[0-9]+}}(%rsp)77; X64-NEXT:    fiaddl -{{[0-9]+}}(%rsp)78; X64-NEXT:    retq79  %1 = sitofp i32 %a1 to x86_fp8080  %2 = fadd x86_fp80 %a0, %181  ret x86_fp80 %282}83 84define x86_fp80 @fiadd_fp80_i32_ld(x86_fp80 %a0, ptr%a1) {85; X86-LABEL: fiadd_fp80_i32_ld:86; X86:       # %bb.0:87; X86-NEXT:    pushl %eax88; X86-NEXT:    .cfi_def_cfa_offset 889; X86-NEXT:    fldt {{[0-9]+}}(%esp)90; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax91; X86-NEXT:    movl (%eax), %eax92; X86-NEXT:    movl %eax, (%esp)93; X86-NEXT:    fiaddl (%esp)94; X86-NEXT:    popl %eax95; X86-NEXT:    .cfi_def_cfa_offset 496; X86-NEXT:    retl97;98; X64-LABEL: fiadd_fp80_i32_ld:99; X64:       # %bb.0:100; X64-NEXT:    fldt {{[0-9]+}}(%rsp)101; X64-NEXT:    movl (%rdi), %eax102; X64-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)103; X64-NEXT:    fiaddl -{{[0-9]+}}(%rsp)104; X64-NEXT:    retq105  %1 = load i32, ptr%a1106  %2 = sitofp i32 %1 to x86_fp80107  %3 = fadd x86_fp80 %a0, %2108  ret x86_fp80 %3109}110 111;112; FSUB113;114 115define x86_fp80 @fisub_fp80_i16(x86_fp80 %a0, i16 %a1) {116; X86-LABEL: fisub_fp80_i16:117; X86:       # %bb.0:118; X86-NEXT:    pushl %eax119; X86-NEXT:    .cfi_def_cfa_offset 8120; X86-NEXT:    fldt {{[0-9]+}}(%esp)121; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax122; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)123; X86-NEXT:    fisubs {{[0-9]+}}(%esp)124; X86-NEXT:    popl %eax125; X86-NEXT:    .cfi_def_cfa_offset 4126; X86-NEXT:    retl127;128; X64-LABEL: fisub_fp80_i16:129; X64:       # %bb.0:130; X64-NEXT:    fldt {{[0-9]+}}(%rsp)131; X64-NEXT:    movw %di, -{{[0-9]+}}(%rsp)132; X64-NEXT:    fisubs -{{[0-9]+}}(%rsp)133; X64-NEXT:    retq134  %1 = sitofp i16 %a1 to x86_fp80135  %2 = fsub x86_fp80 %a0, %1136  ret x86_fp80 %2137}138 139define x86_fp80 @fisub_fp80_i16_ld(x86_fp80 %a0, ptr%a1) {140; X86-LABEL: fisub_fp80_i16_ld:141; X86:       # %bb.0:142; X86-NEXT:    pushl %eax143; X86-NEXT:    .cfi_def_cfa_offset 8144; X86-NEXT:    fldt {{[0-9]+}}(%esp)145; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax146; X86-NEXT:    movzwl (%eax), %eax147; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)148; X86-NEXT:    fisubs {{[0-9]+}}(%esp)149; X86-NEXT:    popl %eax150; X86-NEXT:    .cfi_def_cfa_offset 4151; X86-NEXT:    retl152;153; X64-LABEL: fisub_fp80_i16_ld:154; X64:       # %bb.0:155; X64-NEXT:    fldt {{[0-9]+}}(%rsp)156; X64-NEXT:    movzwl (%rdi), %eax157; X64-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)158; X64-NEXT:    fisubs -{{[0-9]+}}(%rsp)159; X64-NEXT:    retq160  %1 = load i16, ptr%a1161  %2 = sitofp i16 %1 to x86_fp80162  %3 = fsub x86_fp80 %a0, %2163  ret x86_fp80 %3164}165 166define x86_fp80 @fisub_fp80_i32(x86_fp80 %a0, i32 %a1) {167; X86-LABEL: fisub_fp80_i32:168; X86:       # %bb.0:169; X86-NEXT:    pushl %eax170; X86-NEXT:    .cfi_def_cfa_offset 8171; X86-NEXT:    fldt {{[0-9]+}}(%esp)172; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax173; X86-NEXT:    movl %eax, (%esp)174; X86-NEXT:    fisubl (%esp)175; X86-NEXT:    popl %eax176; X86-NEXT:    .cfi_def_cfa_offset 4177; X86-NEXT:    retl178;179; X64-LABEL: fisub_fp80_i32:180; X64:       # %bb.0:181; X64-NEXT:    fldt {{[0-9]+}}(%rsp)182; X64-NEXT:    movl %edi, -{{[0-9]+}}(%rsp)183; X64-NEXT:    fisubl -{{[0-9]+}}(%rsp)184; X64-NEXT:    retq185  %1 = sitofp i32 %a1 to x86_fp80186  %2 = fsub x86_fp80 %a0, %1187  ret x86_fp80 %2188}189 190define x86_fp80 @fisub_fp80_i32_ld(x86_fp80 %a0, ptr%a1) {191; X86-LABEL: fisub_fp80_i32_ld:192; X86:       # %bb.0:193; X86-NEXT:    pushl %eax194; X86-NEXT:    .cfi_def_cfa_offset 8195; X86-NEXT:    fldt {{[0-9]+}}(%esp)196; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax197; X86-NEXT:    movl (%eax), %eax198; X86-NEXT:    movl %eax, (%esp)199; X86-NEXT:    fisubl (%esp)200; X86-NEXT:    popl %eax201; X86-NEXT:    .cfi_def_cfa_offset 4202; X86-NEXT:    retl203;204; X64-LABEL: fisub_fp80_i32_ld:205; X64:       # %bb.0:206; X64-NEXT:    fldt {{[0-9]+}}(%rsp)207; X64-NEXT:    movl (%rdi), %eax208; X64-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)209; X64-NEXT:    fisubl -{{[0-9]+}}(%rsp)210; X64-NEXT:    retq211  %1 = load i32, ptr%a1212  %2 = sitofp i32 %1 to x86_fp80213  %3 = fsub x86_fp80 %a0, %2214  ret x86_fp80 %3215}216 217;218; FSUBR219;220 221define x86_fp80 @fisubr_fp80_i16(x86_fp80 %a0, i16 %a1) {222; X86-LABEL: fisubr_fp80_i16:223; X86:       # %bb.0:224; X86-NEXT:    pushl %eax225; X86-NEXT:    .cfi_def_cfa_offset 8226; X86-NEXT:    fldt {{[0-9]+}}(%esp)227; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax228; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)229; X86-NEXT:    fisubrs {{[0-9]+}}(%esp)230; X86-NEXT:    popl %eax231; X86-NEXT:    .cfi_def_cfa_offset 4232; X86-NEXT:    retl233;234; X64-LABEL: fisubr_fp80_i16:235; X64:       # %bb.0:236; X64-NEXT:    fldt {{[0-9]+}}(%rsp)237; X64-NEXT:    movw %di, -{{[0-9]+}}(%rsp)238; X64-NEXT:    fisubrs -{{[0-9]+}}(%rsp)239; X64-NEXT:    retq240  %1 = sitofp i16 %a1 to x86_fp80241  %2 = fsub x86_fp80 %1, %a0242  ret x86_fp80 %2243}244 245define x86_fp80 @fisubr_fp80_i16_ld(x86_fp80 %a0, ptr%a1) {246; X86-LABEL: fisubr_fp80_i16_ld:247; X86:       # %bb.0:248; X86-NEXT:    pushl %eax249; X86-NEXT:    .cfi_def_cfa_offset 8250; X86-NEXT:    fldt {{[0-9]+}}(%esp)251; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax252; X86-NEXT:    movzwl (%eax), %eax253; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)254; X86-NEXT:    fisubrs {{[0-9]+}}(%esp)255; X86-NEXT:    popl %eax256; X86-NEXT:    .cfi_def_cfa_offset 4257; X86-NEXT:    retl258;259; X64-LABEL: fisubr_fp80_i16_ld:260; X64:       # %bb.0:261; X64-NEXT:    fldt {{[0-9]+}}(%rsp)262; X64-NEXT:    movzwl (%rdi), %eax263; X64-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)264; X64-NEXT:    fisubrs -{{[0-9]+}}(%rsp)265; X64-NEXT:    retq266  %1 = load i16, ptr%a1267  %2 = sitofp i16 %1 to x86_fp80268  %3 = fsub x86_fp80 %2, %a0269  ret x86_fp80 %3270}271 272define x86_fp80 @fisubr_fp80_i32(x86_fp80 %a0, i32 %a1) {273; X86-LABEL: fisubr_fp80_i32:274; X86:       # %bb.0:275; X86-NEXT:    pushl %eax276; X86-NEXT:    .cfi_def_cfa_offset 8277; X86-NEXT:    fldt {{[0-9]+}}(%esp)278; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax279; X86-NEXT:    movl %eax, (%esp)280; X86-NEXT:    fisubrl (%esp)281; X86-NEXT:    popl %eax282; X86-NEXT:    .cfi_def_cfa_offset 4283; X86-NEXT:    retl284;285; X64-LABEL: fisubr_fp80_i32:286; X64:       # %bb.0:287; X64-NEXT:    fldt {{[0-9]+}}(%rsp)288; X64-NEXT:    movl %edi, -{{[0-9]+}}(%rsp)289; X64-NEXT:    fisubrl -{{[0-9]+}}(%rsp)290; X64-NEXT:    retq291  %1 = sitofp i32 %a1 to x86_fp80292  %2 = fsub x86_fp80 %1, %a0293  ret x86_fp80 %2294}295 296define x86_fp80 @fisubr_fp80_i32_ld(x86_fp80 %a0, ptr%a1) {297; X86-LABEL: fisubr_fp80_i32_ld:298; X86:       # %bb.0:299; X86-NEXT:    pushl %eax300; X86-NEXT:    .cfi_def_cfa_offset 8301; X86-NEXT:    fldt {{[0-9]+}}(%esp)302; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax303; X86-NEXT:    movl (%eax), %eax304; X86-NEXT:    movl %eax, (%esp)305; X86-NEXT:    fisubrl (%esp)306; X86-NEXT:    popl %eax307; X86-NEXT:    .cfi_def_cfa_offset 4308; X86-NEXT:    retl309;310; X64-LABEL: fisubr_fp80_i32_ld:311; X64:       # %bb.0:312; X64-NEXT:    fldt {{[0-9]+}}(%rsp)313; X64-NEXT:    movl (%rdi), %eax314; X64-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)315; X64-NEXT:    fisubrl -{{[0-9]+}}(%rsp)316; X64-NEXT:    retq317  %1 = load i32, ptr%a1318  %2 = sitofp i32 %1 to x86_fp80319  %3 = fsub x86_fp80 %2, %a0320  ret x86_fp80 %3321}322 323;324; FMUL325;326 327define x86_fp80 @fimul_fp80_i16(x86_fp80 %a0, i16 %a1) {328; X86-LABEL: fimul_fp80_i16:329; X86:       # %bb.0:330; X86-NEXT:    pushl %eax331; X86-NEXT:    .cfi_def_cfa_offset 8332; X86-NEXT:    fldt {{[0-9]+}}(%esp)333; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax334; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)335; X86-NEXT:    fimuls {{[0-9]+}}(%esp)336; X86-NEXT:    popl %eax337; X86-NEXT:    .cfi_def_cfa_offset 4338; X86-NEXT:    retl339;340; X64-LABEL: fimul_fp80_i16:341; X64:       # %bb.0:342; X64-NEXT:    fldt {{[0-9]+}}(%rsp)343; X64-NEXT:    movw %di, -{{[0-9]+}}(%rsp)344; X64-NEXT:    fimuls -{{[0-9]+}}(%rsp)345; X64-NEXT:    retq346  %1 = sitofp i16 %a1 to x86_fp80347  %2 = fmul x86_fp80 %a0, %1348  ret x86_fp80 %2349}350 351define x86_fp80 @fimul_fp80_i16_ld(x86_fp80 %a0, ptr%a1) {352; X86-LABEL: fimul_fp80_i16_ld:353; X86:       # %bb.0:354; X86-NEXT:    pushl %eax355; X86-NEXT:    .cfi_def_cfa_offset 8356; X86-NEXT:    fldt {{[0-9]+}}(%esp)357; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax358; X86-NEXT:    movzwl (%eax), %eax359; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)360; X86-NEXT:    fimuls {{[0-9]+}}(%esp)361; X86-NEXT:    popl %eax362; X86-NEXT:    .cfi_def_cfa_offset 4363; X86-NEXT:    retl364;365; X64-LABEL: fimul_fp80_i16_ld:366; X64:       # %bb.0:367; X64-NEXT:    fldt {{[0-9]+}}(%rsp)368; X64-NEXT:    movzwl (%rdi), %eax369; X64-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)370; X64-NEXT:    fimuls -{{[0-9]+}}(%rsp)371; X64-NEXT:    retq372  %1 = load i16, ptr%a1373  %2 = sitofp i16 %1 to x86_fp80374  %3 = fmul x86_fp80 %a0, %2375  ret x86_fp80 %3376}377 378define x86_fp80 @fimul_fp80_i32(x86_fp80 %a0, i32 %a1) {379; X86-LABEL: fimul_fp80_i32:380; X86:       # %bb.0:381; X86-NEXT:    pushl %eax382; X86-NEXT:    .cfi_def_cfa_offset 8383; X86-NEXT:    fldt {{[0-9]+}}(%esp)384; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax385; X86-NEXT:    movl %eax, (%esp)386; X86-NEXT:    fimull (%esp)387; X86-NEXT:    popl %eax388; X86-NEXT:    .cfi_def_cfa_offset 4389; X86-NEXT:    retl390;391; X64-LABEL: fimul_fp80_i32:392; X64:       # %bb.0:393; X64-NEXT:    fldt {{[0-9]+}}(%rsp)394; X64-NEXT:    movl %edi, -{{[0-9]+}}(%rsp)395; X64-NEXT:    fimull -{{[0-9]+}}(%rsp)396; X64-NEXT:    retq397  %1 = sitofp i32 %a1 to x86_fp80398  %2 = fmul x86_fp80 %a0, %1399  ret x86_fp80 %2400}401 402define x86_fp80 @fimul_fp80_i32_ld(x86_fp80 %a0, ptr%a1) {403; X86-LABEL: fimul_fp80_i32_ld:404; X86:       # %bb.0:405; X86-NEXT:    pushl %eax406; X86-NEXT:    .cfi_def_cfa_offset 8407; X86-NEXT:    fldt {{[0-9]+}}(%esp)408; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax409; X86-NEXT:    movl (%eax), %eax410; X86-NEXT:    movl %eax, (%esp)411; X86-NEXT:    fimull (%esp)412; X86-NEXT:    popl %eax413; X86-NEXT:    .cfi_def_cfa_offset 4414; X86-NEXT:    retl415;416; X64-LABEL: fimul_fp80_i32_ld:417; X64:       # %bb.0:418; X64-NEXT:    fldt {{[0-9]+}}(%rsp)419; X64-NEXT:    movl (%rdi), %eax420; X64-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)421; X64-NEXT:    fimull -{{[0-9]+}}(%rsp)422; X64-NEXT:    retq423  %1 = load i32, ptr%a1424  %2 = sitofp i32 %1 to x86_fp80425  %3 = fmul x86_fp80 %a0, %2426  ret x86_fp80 %3427}428 429;430; FDIV431;432 433define x86_fp80 @fidiv_fp80_i16(x86_fp80 %a0, i16 %a1) {434; X86-LABEL: fidiv_fp80_i16:435; X86:       # %bb.0:436; X86-NEXT:    pushl %eax437; X86-NEXT:    .cfi_def_cfa_offset 8438; X86-NEXT:    fldt {{[0-9]+}}(%esp)439; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax440; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)441; X86-NEXT:    fidivs {{[0-9]+}}(%esp)442; X86-NEXT:    popl %eax443; X86-NEXT:    .cfi_def_cfa_offset 4444; X86-NEXT:    retl445;446; X64-LABEL: fidiv_fp80_i16:447; X64:       # %bb.0:448; X64-NEXT:    fldt {{[0-9]+}}(%rsp)449; X64-NEXT:    movw %di, -{{[0-9]+}}(%rsp)450; X64-NEXT:    fidivs -{{[0-9]+}}(%rsp)451; X64-NEXT:    retq452  %1 = sitofp i16 %a1 to x86_fp80453  %2 = fdiv x86_fp80 %a0, %1454  ret x86_fp80 %2455}456 457define x86_fp80 @fidiv_fp80_i16_ld(x86_fp80 %a0, ptr%a1) {458; X86-LABEL: fidiv_fp80_i16_ld:459; X86:       # %bb.0:460; X86-NEXT:    pushl %eax461; X86-NEXT:    .cfi_def_cfa_offset 8462; X86-NEXT:    fldt {{[0-9]+}}(%esp)463; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax464; X86-NEXT:    movzwl (%eax), %eax465; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)466; X86-NEXT:    fidivs {{[0-9]+}}(%esp)467; X86-NEXT:    popl %eax468; X86-NEXT:    .cfi_def_cfa_offset 4469; X86-NEXT:    retl470;471; X64-LABEL: fidiv_fp80_i16_ld:472; X64:       # %bb.0:473; X64-NEXT:    fldt {{[0-9]+}}(%rsp)474; X64-NEXT:    movzwl (%rdi), %eax475; X64-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)476; X64-NEXT:    fidivs -{{[0-9]+}}(%rsp)477; X64-NEXT:    retq478  %1 = load i16, ptr%a1479  %2 = sitofp i16 %1 to x86_fp80480  %3 = fdiv x86_fp80 %a0, %2481  ret x86_fp80 %3482}483 484define x86_fp80 @fidiv_fp80_i32(x86_fp80 %a0, i32 %a1) {485; X86-LABEL: fidiv_fp80_i32:486; X86:       # %bb.0:487; X86-NEXT:    pushl %eax488; X86-NEXT:    .cfi_def_cfa_offset 8489; X86-NEXT:    fldt {{[0-9]+}}(%esp)490; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax491; X86-NEXT:    movl %eax, (%esp)492; X86-NEXT:    fidivl (%esp)493; X86-NEXT:    popl %eax494; X86-NEXT:    .cfi_def_cfa_offset 4495; X86-NEXT:    retl496;497; X64-LABEL: fidiv_fp80_i32:498; X64:       # %bb.0:499; X64-NEXT:    fldt {{[0-9]+}}(%rsp)500; X64-NEXT:    movl %edi, -{{[0-9]+}}(%rsp)501; X64-NEXT:    fidivl -{{[0-9]+}}(%rsp)502; X64-NEXT:    retq503  %1 = sitofp i32 %a1 to x86_fp80504  %2 = fdiv x86_fp80 %a0, %1505  ret x86_fp80 %2506}507 508define x86_fp80 @fidiv_fp80_i32_ld(x86_fp80 %a0, ptr%a1) {509; X86-LABEL: fidiv_fp80_i32_ld:510; X86:       # %bb.0:511; X86-NEXT:    pushl %eax512; X86-NEXT:    .cfi_def_cfa_offset 8513; X86-NEXT:    fldt {{[0-9]+}}(%esp)514; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax515; X86-NEXT:    movl (%eax), %eax516; X86-NEXT:    movl %eax, (%esp)517; X86-NEXT:    fidivl (%esp)518; X86-NEXT:    popl %eax519; X86-NEXT:    .cfi_def_cfa_offset 4520; X86-NEXT:    retl521;522; X64-LABEL: fidiv_fp80_i32_ld:523; X64:       # %bb.0:524; X64-NEXT:    fldt {{[0-9]+}}(%rsp)525; X64-NEXT:    movl (%rdi), %eax526; X64-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)527; X64-NEXT:    fidivl -{{[0-9]+}}(%rsp)528; X64-NEXT:    retq529  %1 = load i32, ptr%a1530  %2 = sitofp i32 %1 to x86_fp80531  %3 = fdiv x86_fp80 %a0, %2532  ret x86_fp80 %3533}534 535;536; FDIVR537;538 539define x86_fp80 @fidivr_fp80_i16(x86_fp80 %a0, i16 %a1) {540; X86-LABEL: fidivr_fp80_i16:541; X86:       # %bb.0:542; X86-NEXT:    pushl %eax543; X86-NEXT:    .cfi_def_cfa_offset 8544; X86-NEXT:    fldt {{[0-9]+}}(%esp)545; X86-NEXT:    movzwl {{[0-9]+}}(%esp), %eax546; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)547; X86-NEXT:    fidivrs {{[0-9]+}}(%esp)548; X86-NEXT:    popl %eax549; X86-NEXT:    .cfi_def_cfa_offset 4550; X86-NEXT:    retl551;552; X64-LABEL: fidivr_fp80_i16:553; X64:       # %bb.0:554; X64-NEXT:    fldt {{[0-9]+}}(%rsp)555; X64-NEXT:    movw %di, -{{[0-9]+}}(%rsp)556; X64-NEXT:    fidivrs -{{[0-9]+}}(%rsp)557; X64-NEXT:    retq558  %1 = sitofp i16 %a1 to x86_fp80559  %2 = fdiv x86_fp80 %1, %a0560  ret x86_fp80 %2561}562 563define x86_fp80 @fidivr_fp80_i16_ld(x86_fp80 %a0, ptr%a1) {564; X86-LABEL: fidivr_fp80_i16_ld:565; X86:       # %bb.0:566; X86-NEXT:    pushl %eax567; X86-NEXT:    .cfi_def_cfa_offset 8568; X86-NEXT:    fldt {{[0-9]+}}(%esp)569; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax570; X86-NEXT:    movzwl (%eax), %eax571; X86-NEXT:    movw %ax, {{[0-9]+}}(%esp)572; X86-NEXT:    fidivrs {{[0-9]+}}(%esp)573; X86-NEXT:    popl %eax574; X86-NEXT:    .cfi_def_cfa_offset 4575; X86-NEXT:    retl576;577; X64-LABEL: fidivr_fp80_i16_ld:578; X64:       # %bb.0:579; X64-NEXT:    fldt {{[0-9]+}}(%rsp)580; X64-NEXT:    movzwl (%rdi), %eax581; X64-NEXT:    movw %ax, -{{[0-9]+}}(%rsp)582; X64-NEXT:    fidivrs -{{[0-9]+}}(%rsp)583; X64-NEXT:    retq584  %1 = load i16, ptr%a1585  %2 = sitofp i16 %1 to x86_fp80586  %3 = fdiv x86_fp80 %2, %a0587  ret x86_fp80 %3588}589 590define x86_fp80 @fidivr_fp80_i32(x86_fp80 %a0, i32 %a1) {591; X86-LABEL: fidivr_fp80_i32:592; X86:       # %bb.0:593; X86-NEXT:    pushl %eax594; X86-NEXT:    .cfi_def_cfa_offset 8595; X86-NEXT:    fldt {{[0-9]+}}(%esp)596; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax597; X86-NEXT:    movl %eax, (%esp)598; X86-NEXT:    fidivrl (%esp)599; X86-NEXT:    popl %eax600; X86-NEXT:    .cfi_def_cfa_offset 4601; X86-NEXT:    retl602;603; X64-LABEL: fidivr_fp80_i32:604; X64:       # %bb.0:605; X64-NEXT:    fldt {{[0-9]+}}(%rsp)606; X64-NEXT:    movl %edi, -{{[0-9]+}}(%rsp)607; X64-NEXT:    fidivrl -{{[0-9]+}}(%rsp)608; X64-NEXT:    retq609  %1 = sitofp i32 %a1 to x86_fp80610  %2 = fdiv x86_fp80 %1, %a0611  ret x86_fp80 %2612}613 614define x86_fp80 @fidivr_fp80_i32_ld(x86_fp80 %a0, ptr%a1) {615; X86-LABEL: fidivr_fp80_i32_ld:616; X86:       # %bb.0:617; X86-NEXT:    pushl %eax618; X86-NEXT:    .cfi_def_cfa_offset 8619; X86-NEXT:    fldt {{[0-9]+}}(%esp)620; X86-NEXT:    movl {{[0-9]+}}(%esp), %eax621; X86-NEXT:    movl (%eax), %eax622; X86-NEXT:    movl %eax, (%esp)623; X86-NEXT:    fidivrl (%esp)624; X86-NEXT:    popl %eax625; X86-NEXT:    .cfi_def_cfa_offset 4626; X86-NEXT:    retl627;628; X64-LABEL: fidivr_fp80_i32_ld:629; X64:       # %bb.0:630; X64-NEXT:    fldt {{[0-9]+}}(%rsp)631; X64-NEXT:    movl (%rdi), %eax632; X64-NEXT:    movl %eax, -{{[0-9]+}}(%rsp)633; X64-NEXT:    fidivrl -{{[0-9]+}}(%rsp)634; X64-NEXT:    retq635  %1 = load i32, ptr%a1636  %2 = sitofp i32 %1 to x86_fp80637  %3 = fdiv x86_fp80 %2, %a0638  ret x86_fp80 %3639}640