brintos

brintos / llvm-project-archived public Read only

0
0
Text · 42.4 KiB · 84c9750 Raw
1433 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s                               -mtriple=x86_64-apple-darwin10 -mattr=+x87,-sse,-sse2 -verify-machineinstrs | FileCheck %s --check-prefixes=X64,SDAG-X643; RUN: llc < %s -fast-isel -fast-isel-abort=1 -mtriple=x86_64-apple-darwin10 -mattr=+x87,-sse,-sse2 -verify-machineinstrs | FileCheck %s --check-prefixes=X64,FAST-X644; RUN: llc < %s -global-isel -global-isel-abort=1 -mtriple=x86_64-apple-darwin10 -mattr=+x87,-sse,-sse2 -verify-machineinstrs | FileCheck %s --check-prefixes=GISEL-X645; RUN: llc < %s                               -mtriple=i686-apple-darwin10 -mattr=+x87,-sse,-sse2 -verify-machineinstrs | FileCheck %s --check-prefixes=X86,SDAG-X866; Allow fast-isel to fallback to selection dag on x867; RUN: llc < %s -fast-isel -mtriple=i686-apple-darwin10 -mattr=+x87,-sse,-sse2 -verify-machineinstrs | FileCheck %s --check-prefixes=X86,FAST-X868; RUN: llc < %s -global-isel -global-isel-abort=1 -mtriple=i686-apple-darwin10 -mattr=+x87,-sse,-sse2 -verify-machineinstrs | FileCheck %s --check-prefixes=GISEL-X869 10  define i1 @fcmp_x86_fp80_oeq(x86_fp80 %x, x86_fp80 %y) nounwind {11; X64-LABEL: fcmp_x86_fp80_oeq:12; X64:       ## %bb.0:13; X64-NEXT:    fldt {{[0-9]+}}(%rsp)14; X64-NEXT:    fldt {{[0-9]+}}(%rsp)15; X64-NEXT:    fucompi %st(1), %st16; X64-NEXT:    fstp %st(0)17; X64-NEXT:    setnp %cl18; X64-NEXT:    sete %al19; X64-NEXT:    andb %cl, %al20; X64-NEXT:    retq21;22; GISEL-X64-LABEL: fcmp_x86_fp80_oeq:23; GISEL-X64:       ## %bb.0:24; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)25; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)26; GISEL-X64-NEXT:    fxch %st(1)27; GISEL-X64-NEXT:    fucompi %st(1), %st28; GISEL-X64-NEXT:    fstp %st(0)29; GISEL-X64-NEXT:    sete %cl30; GISEL-X64-NEXT:    setnp %al31; GISEL-X64-NEXT:    andb %cl, %al32; GISEL-X64-NEXT:    retq33;34; X86-LABEL: fcmp_x86_fp80_oeq:35; X86:       ## %bb.0:36; X86-NEXT:    fldt {{[0-9]+}}(%esp)37; X86-NEXT:    fldt {{[0-9]+}}(%esp)38; X86-NEXT:    fucompp39; X86-NEXT:    fnstsw %ax40; X86-NEXT:    ## kill: def $ah killed $ah killed $ax41; X86-NEXT:    sahf42; X86-NEXT:    setnp %cl43; X86-NEXT:    sete %al44; X86-NEXT:    andb %cl, %al45; X86-NEXT:    retl46;47; GISEL-X86-LABEL: fcmp_x86_fp80_oeq:48; GISEL-X86:       ## %bb.0:49; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)50; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)51; GISEL-X86-NEXT:    fxch %st(1)52; GISEL-X86-NEXT:    fucompi %st(1), %st53; GISEL-X86-NEXT:    fstp %st(0)54; GISEL-X86-NEXT:    sete %cl55; GISEL-X86-NEXT:    setnp %al56; GISEL-X86-NEXT:    andb %cl, %al57; GISEL-X86-NEXT:    retl58    %1 = fcmp oeq x86_fp80 %x, %y59    ret i1 %160  }61 62  define i1 @fcmp_x86_fp80_ogt(x86_fp80 %x, x86_fp80 %y) nounwind {63; X64-LABEL: fcmp_x86_fp80_ogt:64; X64:       ## %bb.0:65; X64-NEXT:    fldt {{[0-9]+}}(%rsp)66; X64-NEXT:    fldt {{[0-9]+}}(%rsp)67; X64-NEXT:    fucompi %st(1), %st68; X64-NEXT:    fstp %st(0)69; X64-NEXT:    seta %al70; X64-NEXT:    retq71;72; GISEL-X64-LABEL: fcmp_x86_fp80_ogt:73; GISEL-X64:       ## %bb.0:74; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)75; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)76; GISEL-X64-NEXT:    fxch %st(1)77; GISEL-X64-NEXT:    fucompi %st(1), %st78; GISEL-X64-NEXT:    fstp %st(0)79; GISEL-X64-NEXT:    seta %al80; GISEL-X64-NEXT:    retq81;82; X86-LABEL: fcmp_x86_fp80_ogt:83; X86:       ## %bb.0:84; X86-NEXT:    fldt {{[0-9]+}}(%esp)85; X86-NEXT:    fldt {{[0-9]+}}(%esp)86; X86-NEXT:    fucompp87; X86-NEXT:    fnstsw %ax88; X86-NEXT:    ## kill: def $ah killed $ah killed $ax89; X86-NEXT:    sahf90; X86-NEXT:    seta %al91; X86-NEXT:    retl92;93; GISEL-X86-LABEL: fcmp_x86_fp80_ogt:94; GISEL-X86:       ## %bb.0:95; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)96; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)97; GISEL-X86-NEXT:    fxch %st(1)98; GISEL-X86-NEXT:    fucompi %st(1), %st99; GISEL-X86-NEXT:    fstp %st(0)100; GISEL-X86-NEXT:    seta %al101; GISEL-X86-NEXT:    retl102    %1 = fcmp ogt x86_fp80 %x, %y103    ret i1 %1104  }105 106  define i1 @fcmp_x86_fp80_oge(x86_fp80 %x, x86_fp80 %y) nounwind {107; X64-LABEL: fcmp_x86_fp80_oge:108; X64:       ## %bb.0:109; X64-NEXT:    fldt {{[0-9]+}}(%rsp)110; X64-NEXT:    fldt {{[0-9]+}}(%rsp)111; X64-NEXT:    fucompi %st(1), %st112; X64-NEXT:    fstp %st(0)113; X64-NEXT:    setae %al114; X64-NEXT:    retq115;116; GISEL-X64-LABEL: fcmp_x86_fp80_oge:117; GISEL-X64:       ## %bb.0:118; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)119; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)120; GISEL-X64-NEXT:    fxch %st(1)121; GISEL-X64-NEXT:    fucompi %st(1), %st122; GISEL-X64-NEXT:    fstp %st(0)123; GISEL-X64-NEXT:    setae %al124; GISEL-X64-NEXT:    retq125;126; X86-LABEL: fcmp_x86_fp80_oge:127; X86:       ## %bb.0:128; X86-NEXT:    fldt {{[0-9]+}}(%esp)129; X86-NEXT:    fldt {{[0-9]+}}(%esp)130; X86-NEXT:    fucompp131; X86-NEXT:    fnstsw %ax132; X86-NEXT:    ## kill: def $ah killed $ah killed $ax133; X86-NEXT:    sahf134; X86-NEXT:    setae %al135; X86-NEXT:    retl136;137; GISEL-X86-LABEL: fcmp_x86_fp80_oge:138; GISEL-X86:       ## %bb.0:139; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)140; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)141; GISEL-X86-NEXT:    fxch %st(1)142; GISEL-X86-NEXT:    fucompi %st(1), %st143; GISEL-X86-NEXT:    fstp %st(0)144; GISEL-X86-NEXT:    setae %al145; GISEL-X86-NEXT:    retl146    %1 = fcmp oge x86_fp80 %x, %y147    ret i1 %1148  }149 150  define i1 @fcmp_x86_fp80_olt(x86_fp80 %x, x86_fp80 %y) nounwind {151; SDAG-X64-LABEL: fcmp_x86_fp80_olt:152; SDAG-X64:       ## %bb.0:153; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)154; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)155; SDAG-X64-NEXT:    fucompi %st(1), %st156; SDAG-X64-NEXT:    fstp %st(0)157; SDAG-X64-NEXT:    seta %al158; SDAG-X64-NEXT:    retq159;160; FAST-X64-LABEL: fcmp_x86_fp80_olt:161; FAST-X64:       ## %bb.0:162; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)163; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)164; FAST-X64-NEXT:    fxch %st(1)165; FAST-X64-NEXT:    fucompi %st(1), %st166; FAST-X64-NEXT:    fstp %st(0)167; FAST-X64-NEXT:    seta %al168; FAST-X64-NEXT:    retq169;170; GISEL-X64-LABEL: fcmp_x86_fp80_olt:171; GISEL-X64:       ## %bb.0:172; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)173; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)174; GISEL-X64-NEXT:    fucompi %st(1), %st175; GISEL-X64-NEXT:    fstp %st(0)176; GISEL-X64-NEXT:    seta %al177; GISEL-X64-NEXT:    retq178;179; SDAG-X86-LABEL: fcmp_x86_fp80_olt:180; SDAG-X86:       ## %bb.0:181; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)182; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)183; SDAG-X86-NEXT:    fucompp184; SDAG-X86-NEXT:    fnstsw %ax185; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax186; SDAG-X86-NEXT:    sahf187; SDAG-X86-NEXT:    seta %al188; SDAG-X86-NEXT:    retl189;190; FAST-X86-LABEL: fcmp_x86_fp80_olt:191; FAST-X86:       ## %bb.0:192; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)193; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)194; FAST-X86-NEXT:    fxch %st(1)195; FAST-X86-NEXT:    fucompp196; FAST-X86-NEXT:    fnstsw %ax197; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax198; FAST-X86-NEXT:    sahf199; FAST-X86-NEXT:    seta %al200; FAST-X86-NEXT:    retl201;202; GISEL-X86-LABEL: fcmp_x86_fp80_olt:203; GISEL-X86:       ## %bb.0:204; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)205; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)206; GISEL-X86-NEXT:    fucompi %st(1), %st207; GISEL-X86-NEXT:    fstp %st(0)208; GISEL-X86-NEXT:    seta %al209; GISEL-X86-NEXT:    retl210    %1 = fcmp olt x86_fp80 %x, %y211    ret i1 %1212  }213 214  define i1 @fcmp_x86_fp80_ole(x86_fp80 %x, x86_fp80 %y) nounwind {215; SDAG-X64-LABEL: fcmp_x86_fp80_ole:216; SDAG-X64:       ## %bb.0:217; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)218; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)219; SDAG-X64-NEXT:    fucompi %st(1), %st220; SDAG-X64-NEXT:    fstp %st(0)221; SDAG-X64-NEXT:    setae %al222; SDAG-X64-NEXT:    retq223;224; FAST-X64-LABEL: fcmp_x86_fp80_ole:225; FAST-X64:       ## %bb.0:226; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)227; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)228; FAST-X64-NEXT:    fxch %st(1)229; FAST-X64-NEXT:    fucompi %st(1), %st230; FAST-X64-NEXT:    fstp %st(0)231; FAST-X64-NEXT:    setae %al232; FAST-X64-NEXT:    retq233;234; GISEL-X64-LABEL: fcmp_x86_fp80_ole:235; GISEL-X64:       ## %bb.0:236; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)237; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)238; GISEL-X64-NEXT:    fucompi %st(1), %st239; GISEL-X64-NEXT:    fstp %st(0)240; GISEL-X64-NEXT:    setae %al241; GISEL-X64-NEXT:    retq242;243; SDAG-X86-LABEL: fcmp_x86_fp80_ole:244; SDAG-X86:       ## %bb.0:245; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)246; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)247; SDAG-X86-NEXT:    fucompp248; SDAG-X86-NEXT:    fnstsw %ax249; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax250; SDAG-X86-NEXT:    sahf251; SDAG-X86-NEXT:    setae %al252; SDAG-X86-NEXT:    retl253;254; FAST-X86-LABEL: fcmp_x86_fp80_ole:255; FAST-X86:       ## %bb.0:256; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)257; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)258; FAST-X86-NEXT:    fxch %st(1)259; FAST-X86-NEXT:    fucompp260; FAST-X86-NEXT:    fnstsw %ax261; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax262; FAST-X86-NEXT:    sahf263; FAST-X86-NEXT:    setae %al264; FAST-X86-NEXT:    retl265;266; GISEL-X86-LABEL: fcmp_x86_fp80_ole:267; GISEL-X86:       ## %bb.0:268; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)269; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)270; GISEL-X86-NEXT:    fucompi %st(1), %st271; GISEL-X86-NEXT:    fstp %st(0)272; GISEL-X86-NEXT:    setae %al273; GISEL-X86-NEXT:    retl274    %1 = fcmp ole x86_fp80 %x, %y275    ret i1 %1276  }277 278  define i1 @fcmp_x86_fp80_one(x86_fp80 %x, x86_fp80 %y) nounwind {279; X64-LABEL: fcmp_x86_fp80_one:280; X64:       ## %bb.0:281; X64-NEXT:    fldt {{[0-9]+}}(%rsp)282; X64-NEXT:    fldt {{[0-9]+}}(%rsp)283; X64-NEXT:    fucompi %st(1), %st284; X64-NEXT:    fstp %st(0)285; X64-NEXT:    setne %al286; X64-NEXT:    retq287;288; GISEL-X64-LABEL: fcmp_x86_fp80_one:289; GISEL-X64:       ## %bb.0:290; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)291; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)292; GISEL-X64-NEXT:    fxch %st(1)293; GISEL-X64-NEXT:    fucompi %st(1), %st294; GISEL-X64-NEXT:    fstp %st(0)295; GISEL-X64-NEXT:    setne %al296; GISEL-X64-NEXT:    retq297;298; X86-LABEL: fcmp_x86_fp80_one:299; X86:       ## %bb.0:300; X86-NEXT:    fldt {{[0-9]+}}(%esp)301; X86-NEXT:    fldt {{[0-9]+}}(%esp)302; X86-NEXT:    fucompp303; X86-NEXT:    fnstsw %ax304; X86-NEXT:    ## kill: def $ah killed $ah killed $ax305; X86-NEXT:    sahf306; X86-NEXT:    setne %al307; X86-NEXT:    retl308;309; GISEL-X86-LABEL: fcmp_x86_fp80_one:310; GISEL-X86:       ## %bb.0:311; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)312; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)313; GISEL-X86-NEXT:    fxch %st(1)314; GISEL-X86-NEXT:    fucompi %st(1), %st315; GISEL-X86-NEXT:    fstp %st(0)316; GISEL-X86-NEXT:    setne %al317; GISEL-X86-NEXT:    retl318    %1 = fcmp one x86_fp80 %x, %y319    ret i1 %1320  }321 322  define i1 @fcmp_x86_fp80_ord(x86_fp80 %x, x86_fp80 %y) nounwind {323; X64-LABEL: fcmp_x86_fp80_ord:324; X64:       ## %bb.0:325; X64-NEXT:    fldt {{[0-9]+}}(%rsp)326; X64-NEXT:    fldt {{[0-9]+}}(%rsp)327; X64-NEXT:    fucompi %st(1), %st328; X64-NEXT:    fstp %st(0)329; X64-NEXT:    setnp %al330; X64-NEXT:    retq331;332; GISEL-X64-LABEL: fcmp_x86_fp80_ord:333; GISEL-X64:       ## %bb.0:334; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)335; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)336; GISEL-X64-NEXT:    fxch %st(1)337; GISEL-X64-NEXT:    fucompi %st(1), %st338; GISEL-X64-NEXT:    fstp %st(0)339; GISEL-X64-NEXT:    setnp %al340; GISEL-X64-NEXT:    retq341;342; X86-LABEL: fcmp_x86_fp80_ord:343; X86:       ## %bb.0:344; X86-NEXT:    fldt {{[0-9]+}}(%esp)345; X86-NEXT:    fldt {{[0-9]+}}(%esp)346; X86-NEXT:    fucompp347; X86-NEXT:    fnstsw %ax348; X86-NEXT:    ## kill: def $ah killed $ah killed $ax349; X86-NEXT:    sahf350; X86-NEXT:    setnp %al351; X86-NEXT:    retl352;353; GISEL-X86-LABEL: fcmp_x86_fp80_ord:354; GISEL-X86:       ## %bb.0:355; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)356; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)357; GISEL-X86-NEXT:    fxch %st(1)358; GISEL-X86-NEXT:    fucompi %st(1), %st359; GISEL-X86-NEXT:    fstp %st(0)360; GISEL-X86-NEXT:    setnp %al361; GISEL-X86-NEXT:    retl362    %1 = fcmp ord x86_fp80 %x, %y363    ret i1 %1364  }365 366  define i1 @fcmp_x86_fp80_uno(x86_fp80 %x, x86_fp80 %y) nounwind {367; X64-LABEL: fcmp_x86_fp80_uno:368; X64:       ## %bb.0:369; X64-NEXT:    fldt {{[0-9]+}}(%rsp)370; X64-NEXT:    fldt {{[0-9]+}}(%rsp)371; X64-NEXT:    fucompi %st(1), %st372; X64-NEXT:    fstp %st(0)373; X64-NEXT:    setp %al374; X64-NEXT:    retq375;376; GISEL-X64-LABEL: fcmp_x86_fp80_uno:377; GISEL-X64:       ## %bb.0:378; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)379; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)380; GISEL-X64-NEXT:    fxch %st(1)381; GISEL-X64-NEXT:    fucompi %st(1), %st382; GISEL-X64-NEXT:    fstp %st(0)383; GISEL-X64-NEXT:    setp %al384; GISEL-X64-NEXT:    retq385;386; X86-LABEL: fcmp_x86_fp80_uno:387; X86:       ## %bb.0:388; X86-NEXT:    fldt {{[0-9]+}}(%esp)389; X86-NEXT:    fldt {{[0-9]+}}(%esp)390; X86-NEXT:    fucompp391; X86-NEXT:    fnstsw %ax392; X86-NEXT:    ## kill: def $ah killed $ah killed $ax393; X86-NEXT:    sahf394; X86-NEXT:    setp %al395; X86-NEXT:    retl396;397; GISEL-X86-LABEL: fcmp_x86_fp80_uno:398; GISEL-X86:       ## %bb.0:399; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)400; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)401; GISEL-X86-NEXT:    fxch %st(1)402; GISEL-X86-NEXT:    fucompi %st(1), %st403; GISEL-X86-NEXT:    fstp %st(0)404; GISEL-X86-NEXT:    setp %al405; GISEL-X86-NEXT:    retl406    %1 = fcmp uno x86_fp80 %x, %y407    ret i1 %1408  }409 410  define i1 @fcmp_x86_fp80_ueq(x86_fp80 %x, x86_fp80 %y) nounwind {411; X64-LABEL: fcmp_x86_fp80_ueq:412; X64:       ## %bb.0:413; X64-NEXT:    fldt {{[0-9]+}}(%rsp)414; X64-NEXT:    fldt {{[0-9]+}}(%rsp)415; X64-NEXT:    fucompi %st(1), %st416; X64-NEXT:    fstp %st(0)417; X64-NEXT:    sete %al418; X64-NEXT:    retq419;420; GISEL-X64-LABEL: fcmp_x86_fp80_ueq:421; GISEL-X64:       ## %bb.0:422; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)423; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)424; GISEL-X64-NEXT:    fxch %st(1)425; GISEL-X64-NEXT:    fucompi %st(1), %st426; GISEL-X64-NEXT:    fstp %st(0)427; GISEL-X64-NEXT:    sete %al428; GISEL-X64-NEXT:    retq429;430; X86-LABEL: fcmp_x86_fp80_ueq:431; X86:       ## %bb.0:432; X86-NEXT:    fldt {{[0-9]+}}(%esp)433; X86-NEXT:    fldt {{[0-9]+}}(%esp)434; X86-NEXT:    fucompp435; X86-NEXT:    fnstsw %ax436; X86-NEXT:    ## kill: def $ah killed $ah killed $ax437; X86-NEXT:    sahf438; X86-NEXT:    sete %al439; X86-NEXT:    retl440;441; GISEL-X86-LABEL: fcmp_x86_fp80_ueq:442; GISEL-X86:       ## %bb.0:443; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)444; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)445; GISEL-X86-NEXT:    fxch %st(1)446; GISEL-X86-NEXT:    fucompi %st(1), %st447; GISEL-X86-NEXT:    fstp %st(0)448; GISEL-X86-NEXT:    sete %al449; GISEL-X86-NEXT:    retl450    %1 = fcmp ueq x86_fp80 %x, %y451    ret i1 %1452  }453 454  define i1 @fcmp_x86_fp80_ugt(x86_fp80 %x, x86_fp80 %y) nounwind {455; SDAG-X64-LABEL: fcmp_x86_fp80_ugt:456; SDAG-X64:       ## %bb.0:457; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)458; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)459; SDAG-X64-NEXT:    fucompi %st(1), %st460; SDAG-X64-NEXT:    fstp %st(0)461; SDAG-X64-NEXT:    setb %al462; SDAG-X64-NEXT:    retq463;464; FAST-X64-LABEL: fcmp_x86_fp80_ugt:465; FAST-X64:       ## %bb.0:466; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)467; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)468; FAST-X64-NEXT:    fxch %st(1)469; FAST-X64-NEXT:    fucompi %st(1), %st470; FAST-X64-NEXT:    fstp %st(0)471; FAST-X64-NEXT:    setb %al472; FAST-X64-NEXT:    retq473;474; GISEL-X64-LABEL: fcmp_x86_fp80_ugt:475; GISEL-X64:       ## %bb.0:476; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)477; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)478; GISEL-X64-NEXT:    fucompi %st(1), %st479; GISEL-X64-NEXT:    fstp %st(0)480; GISEL-X64-NEXT:    setb %al481; GISEL-X64-NEXT:    retq482;483; SDAG-X86-LABEL: fcmp_x86_fp80_ugt:484; SDAG-X86:       ## %bb.0:485; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)486; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)487; SDAG-X86-NEXT:    fucompp488; SDAG-X86-NEXT:    fnstsw %ax489; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax490; SDAG-X86-NEXT:    sahf491; SDAG-X86-NEXT:    setb %al492; SDAG-X86-NEXT:    retl493;494; FAST-X86-LABEL: fcmp_x86_fp80_ugt:495; FAST-X86:       ## %bb.0:496; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)497; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)498; FAST-X86-NEXT:    fxch %st(1)499; FAST-X86-NEXT:    fucompp500; FAST-X86-NEXT:    fnstsw %ax501; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax502; FAST-X86-NEXT:    sahf503; FAST-X86-NEXT:    setb %al504; FAST-X86-NEXT:    retl505;506; GISEL-X86-LABEL: fcmp_x86_fp80_ugt:507; GISEL-X86:       ## %bb.0:508; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)509; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)510; GISEL-X86-NEXT:    fucompi %st(1), %st511; GISEL-X86-NEXT:    fstp %st(0)512; GISEL-X86-NEXT:    setb %al513; GISEL-X86-NEXT:    retl514    %1 = fcmp ugt x86_fp80 %x, %y515    ret i1 %1516  }517 518  define i1 @fcmp_x86_fp80_uge(x86_fp80 %x, x86_fp80 %y) nounwind {519; SDAG-X64-LABEL: fcmp_x86_fp80_uge:520; SDAG-X64:       ## %bb.0:521; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)522; SDAG-X64-NEXT:    fldt {{[0-9]+}}(%rsp)523; SDAG-X64-NEXT:    fucompi %st(1), %st524; SDAG-X64-NEXT:    fstp %st(0)525; SDAG-X64-NEXT:    setbe %al526; SDAG-X64-NEXT:    retq527;528; FAST-X64-LABEL: fcmp_x86_fp80_uge:529; FAST-X64:       ## %bb.0:530; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)531; FAST-X64-NEXT:    fldt {{[0-9]+}}(%rsp)532; FAST-X64-NEXT:    fxch %st(1)533; FAST-X64-NEXT:    fucompi %st(1), %st534; FAST-X64-NEXT:    fstp %st(0)535; FAST-X64-NEXT:    setbe %al536; FAST-X64-NEXT:    retq537;538; GISEL-X64-LABEL: fcmp_x86_fp80_uge:539; GISEL-X64:       ## %bb.0:540; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)541; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)542; GISEL-X64-NEXT:    fucompi %st(1), %st543; GISEL-X64-NEXT:    fstp %st(0)544; GISEL-X64-NEXT:    setbe %al545; GISEL-X64-NEXT:    retq546;547; SDAG-X86-LABEL: fcmp_x86_fp80_uge:548; SDAG-X86:       ## %bb.0:549; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)550; SDAG-X86-NEXT:    fldt {{[0-9]+}}(%esp)551; SDAG-X86-NEXT:    fucompp552; SDAG-X86-NEXT:    fnstsw %ax553; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax554; SDAG-X86-NEXT:    sahf555; SDAG-X86-NEXT:    setbe %al556; SDAG-X86-NEXT:    retl557;558; FAST-X86-LABEL: fcmp_x86_fp80_uge:559; FAST-X86:       ## %bb.0:560; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)561; FAST-X86-NEXT:    fldt {{[0-9]+}}(%esp)562; FAST-X86-NEXT:    fxch %st(1)563; FAST-X86-NEXT:    fucompp564; FAST-X86-NEXT:    fnstsw %ax565; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax566; FAST-X86-NEXT:    sahf567; FAST-X86-NEXT:    setbe %al568; FAST-X86-NEXT:    retl569;570; GISEL-X86-LABEL: fcmp_x86_fp80_uge:571; GISEL-X86:       ## %bb.0:572; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)573; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)574; GISEL-X86-NEXT:    fucompi %st(1), %st575; GISEL-X86-NEXT:    fstp %st(0)576; GISEL-X86-NEXT:    setbe %al577; GISEL-X86-NEXT:    retl578    %1 = fcmp uge x86_fp80 %x, %y579    ret i1 %1580  }581 582  define i1 @fcmp_x86_fp80_ult(x86_fp80 %x, x86_fp80 %y) nounwind {583; X64-LABEL: fcmp_x86_fp80_ult:584; X64:       ## %bb.0:585; X64-NEXT:    fldt {{[0-9]+}}(%rsp)586; X64-NEXT:    fldt {{[0-9]+}}(%rsp)587; X64-NEXT:    fucompi %st(1), %st588; X64-NEXT:    fstp %st(0)589; X64-NEXT:    setb %al590; X64-NEXT:    retq591;592; GISEL-X64-LABEL: fcmp_x86_fp80_ult:593; GISEL-X64:       ## %bb.0:594; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)595; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)596; GISEL-X64-NEXT:    fxch %st(1)597; GISEL-X64-NEXT:    fucompi %st(1), %st598; GISEL-X64-NEXT:    fstp %st(0)599; GISEL-X64-NEXT:    setb %al600; GISEL-X64-NEXT:    retq601;602; X86-LABEL: fcmp_x86_fp80_ult:603; X86:       ## %bb.0:604; X86-NEXT:    fldt {{[0-9]+}}(%esp)605; X86-NEXT:    fldt {{[0-9]+}}(%esp)606; X86-NEXT:    fucompp607; X86-NEXT:    fnstsw %ax608; X86-NEXT:    ## kill: def $ah killed $ah killed $ax609; X86-NEXT:    sahf610; X86-NEXT:    setb %al611; X86-NEXT:    retl612;613; GISEL-X86-LABEL: fcmp_x86_fp80_ult:614; GISEL-X86:       ## %bb.0:615; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)616; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)617; GISEL-X86-NEXT:    fxch %st(1)618; GISEL-X86-NEXT:    fucompi %st(1), %st619; GISEL-X86-NEXT:    fstp %st(0)620; GISEL-X86-NEXT:    setb %al621; GISEL-X86-NEXT:    retl622    %1 = fcmp ult x86_fp80 %x, %y623    ret i1 %1624  }625 626  define i1 @fcmp_x86_fp80_ule(x86_fp80 %x, x86_fp80 %y) nounwind {627; X64-LABEL: fcmp_x86_fp80_ule:628; X64:       ## %bb.0:629; X64-NEXT:    fldt {{[0-9]+}}(%rsp)630; X64-NEXT:    fldt {{[0-9]+}}(%rsp)631; X64-NEXT:    fucompi %st(1), %st632; X64-NEXT:    fstp %st(0)633; X64-NEXT:    setbe %al634; X64-NEXT:    retq635;636; GISEL-X64-LABEL: fcmp_x86_fp80_ule:637; GISEL-X64:       ## %bb.0:638; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)639; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)640; GISEL-X64-NEXT:    fxch %st(1)641; GISEL-X64-NEXT:    fucompi %st(1), %st642; GISEL-X64-NEXT:    fstp %st(0)643; GISEL-X64-NEXT:    setbe %al644; GISEL-X64-NEXT:    retq645;646; X86-LABEL: fcmp_x86_fp80_ule:647; X86:       ## %bb.0:648; X86-NEXT:    fldt {{[0-9]+}}(%esp)649; X86-NEXT:    fldt {{[0-9]+}}(%esp)650; X86-NEXT:    fucompp651; X86-NEXT:    fnstsw %ax652; X86-NEXT:    ## kill: def $ah killed $ah killed $ax653; X86-NEXT:    sahf654; X86-NEXT:    setbe %al655; X86-NEXT:    retl656;657; GISEL-X86-LABEL: fcmp_x86_fp80_ule:658; GISEL-X86:       ## %bb.0:659; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)660; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)661; GISEL-X86-NEXT:    fxch %st(1)662; GISEL-X86-NEXT:    fucompi %st(1), %st663; GISEL-X86-NEXT:    fstp %st(0)664; GISEL-X86-NEXT:    setbe %al665; GISEL-X86-NEXT:    retl666    %1 = fcmp ule x86_fp80 %x, %y667    ret i1 %1668  }669 670  define i1 @fcmp_x86_fp80_une(x86_fp80 %x, x86_fp80 %y) nounwind {671; X64-LABEL: fcmp_x86_fp80_une:672; X64:       ## %bb.0:673; X64-NEXT:    fldt {{[0-9]+}}(%rsp)674; X64-NEXT:    fldt {{[0-9]+}}(%rsp)675; X64-NEXT:    fucompi %st(1), %st676; X64-NEXT:    fstp %st(0)677; X64-NEXT:    setp %cl678; X64-NEXT:    setne %al679; X64-NEXT:    orb %cl, %al680; X64-NEXT:    retq681;682; GISEL-X64-LABEL: fcmp_x86_fp80_une:683; GISEL-X64:       ## %bb.0:684; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)685; GISEL-X64-NEXT:    fldt {{[0-9]+}}(%rsp)686; GISEL-X64-NEXT:    fxch %st(1)687; GISEL-X64-NEXT:    fucompi %st(1), %st688; GISEL-X64-NEXT:    fstp %st(0)689; GISEL-X64-NEXT:    setne %cl690; GISEL-X64-NEXT:    setp %al691; GISEL-X64-NEXT:    orb %cl, %al692; GISEL-X64-NEXT:    retq693;694; X86-LABEL: fcmp_x86_fp80_une:695; X86:       ## %bb.0:696; X86-NEXT:    fldt {{[0-9]+}}(%esp)697; X86-NEXT:    fldt {{[0-9]+}}(%esp)698; X86-NEXT:    fucompp699; X86-NEXT:    fnstsw %ax700; X86-NEXT:    ## kill: def $ah killed $ah killed $ax701; X86-NEXT:    sahf702; X86-NEXT:    setp %cl703; X86-NEXT:    setne %al704; X86-NEXT:    orb %cl, %al705; X86-NEXT:    retl706;707; GISEL-X86-LABEL: fcmp_x86_fp80_une:708; GISEL-X86:       ## %bb.0:709; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)710; GISEL-X86-NEXT:    fldt {{[0-9]+}}(%esp)711; GISEL-X86-NEXT:    fxch %st(1)712; GISEL-X86-NEXT:    fucompi %st(1), %st713; GISEL-X86-NEXT:    fstp %st(0)714; GISEL-X86-NEXT:    setne %cl715; GISEL-X86-NEXT:    setp %al716; GISEL-X86-NEXT:    orb %cl, %al717; GISEL-X86-NEXT:    retl718    %1 = fcmp une x86_fp80 %x, %y719    ret i1 %1720  }721 722  define i1 @fcmp_float_oeq(float %x, float %y) {723; X64-LABEL: fcmp_float_oeq:724; X64:       ## %bb.0:725; X64-NEXT:    flds {{[0-9]+}}(%rsp)726; X64-NEXT:    flds {{[0-9]+}}(%rsp)727; X64-NEXT:    fucompi %st(1), %st728; X64-NEXT:    fstp %st(0)729; X64-NEXT:    setnp %cl730; X64-NEXT:    sete %al731; X64-NEXT:    andb %cl, %al732; X64-NEXT:    retq733;734; GISEL-X64-LABEL: fcmp_float_oeq:735; GISEL-X64:       ## %bb.0:736; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)737; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)738; GISEL-X64-NEXT:    fxch %st(1)739; GISEL-X64-NEXT:    fucompi %st(1), %st740; GISEL-X64-NEXT:    fstp %st(0)741; GISEL-X64-NEXT:    sete %cl742; GISEL-X64-NEXT:    setnp %al743; GISEL-X64-NEXT:    andb %cl, %al744; GISEL-X64-NEXT:    retq745;746; X86-LABEL: fcmp_float_oeq:747; X86:       ## %bb.0:748; X86-NEXT:    flds {{[0-9]+}}(%esp)749; X86-NEXT:    flds {{[0-9]+}}(%esp)750; X86-NEXT:    fucompp751; X86-NEXT:    fnstsw %ax752; X86-NEXT:    ## kill: def $ah killed $ah killed $ax753; X86-NEXT:    sahf754; X86-NEXT:    setnp %cl755; X86-NEXT:    sete %al756; X86-NEXT:    andb %cl, %al757; X86-NEXT:    retl758;759; GISEL-X86-LABEL: fcmp_float_oeq:760; GISEL-X86:       ## %bb.0:761; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)762; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)763; GISEL-X86-NEXT:    fxch %st(1)764; GISEL-X86-NEXT:    fucompi %st(1), %st765; GISEL-X86-NEXT:    fstp %st(0)766; GISEL-X86-NEXT:    sete %cl767; GISEL-X86-NEXT:    setnp %al768; GISEL-X86-NEXT:    andb %cl, %al769; GISEL-X86-NEXT:    retl770    %1 = fcmp oeq float %x, %y771    ret i1 %1772  }773 774  define i1 @fcmp_float_ogt(float %x, float %y) {775; X64-LABEL: fcmp_float_ogt:776; X64:       ## %bb.0:777; X64-NEXT:    flds {{[0-9]+}}(%rsp)778; X64-NEXT:    flds {{[0-9]+}}(%rsp)779; X64-NEXT:    fucompi %st(1), %st780; X64-NEXT:    fstp %st(0)781; X64-NEXT:    seta %al782; X64-NEXT:    retq783;784; GISEL-X64-LABEL: fcmp_float_ogt:785; GISEL-X64:       ## %bb.0:786; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)787; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)788; GISEL-X64-NEXT:    fxch %st(1)789; GISEL-X64-NEXT:    fucompi %st(1), %st790; GISEL-X64-NEXT:    fstp %st(0)791; GISEL-X64-NEXT:    seta %al792; GISEL-X64-NEXT:    retq793;794; X86-LABEL: fcmp_float_ogt:795; X86:       ## %bb.0:796; X86-NEXT:    flds {{[0-9]+}}(%esp)797; X86-NEXT:    flds {{[0-9]+}}(%esp)798; X86-NEXT:    fucompp799; X86-NEXT:    fnstsw %ax800; X86-NEXT:    ## kill: def $ah killed $ah killed $ax801; X86-NEXT:    sahf802; X86-NEXT:    seta %al803; X86-NEXT:    retl804;805; GISEL-X86-LABEL: fcmp_float_ogt:806; GISEL-X86:       ## %bb.0:807; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)808; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)809; GISEL-X86-NEXT:    fxch %st(1)810; GISEL-X86-NEXT:    fucompi %st(1), %st811; GISEL-X86-NEXT:    fstp %st(0)812; GISEL-X86-NEXT:    seta %al813; GISEL-X86-NEXT:    retl814    %1 = fcmp ogt float %x, %y815    ret i1 %1816  }817 818  define i1 @fcmp_float_oge(float %x, float %y) {819; X64-LABEL: fcmp_float_oge:820; X64:       ## %bb.0:821; X64-NEXT:    flds {{[0-9]+}}(%rsp)822; X64-NEXT:    flds {{[0-9]+}}(%rsp)823; X64-NEXT:    fucompi %st(1), %st824; X64-NEXT:    fstp %st(0)825; X64-NEXT:    setae %al826; X64-NEXT:    retq827;828; GISEL-X64-LABEL: fcmp_float_oge:829; GISEL-X64:       ## %bb.0:830; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)831; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)832; GISEL-X64-NEXT:    fxch %st(1)833; GISEL-X64-NEXT:    fucompi %st(1), %st834; GISEL-X64-NEXT:    fstp %st(0)835; GISEL-X64-NEXT:    setae %al836; GISEL-X64-NEXT:    retq837;838; X86-LABEL: fcmp_float_oge:839; X86:       ## %bb.0:840; X86-NEXT:    flds {{[0-9]+}}(%esp)841; X86-NEXT:    flds {{[0-9]+}}(%esp)842; X86-NEXT:    fucompp843; X86-NEXT:    fnstsw %ax844; X86-NEXT:    ## kill: def $ah killed $ah killed $ax845; X86-NEXT:    sahf846; X86-NEXT:    setae %al847; X86-NEXT:    retl848;849; GISEL-X86-LABEL: fcmp_float_oge:850; GISEL-X86:       ## %bb.0:851; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)852; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)853; GISEL-X86-NEXT:    fxch %st(1)854; GISEL-X86-NEXT:    fucompi %st(1), %st855; GISEL-X86-NEXT:    fstp %st(0)856; GISEL-X86-NEXT:    setae %al857; GISEL-X86-NEXT:    retl858    %1 = fcmp oge float %x, %y859    ret i1 %1860  }861 862  define i1 @fcmp_float_olt(float %x, float %y) {863; SDAG-X64-LABEL: fcmp_float_olt:864; SDAG-X64:       ## %bb.0:865; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)866; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)867; SDAG-X64-NEXT:    fucompi %st(1), %st868; SDAG-X64-NEXT:    fstp %st(0)869; SDAG-X64-NEXT:    seta %al870; SDAG-X64-NEXT:    retq871;872; FAST-X64-LABEL: fcmp_float_olt:873; FAST-X64:       ## %bb.0:874; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)875; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)876; FAST-X64-NEXT:    fxch %st(1)877; FAST-X64-NEXT:    fucompi %st(1), %st878; FAST-X64-NEXT:    fstp %st(0)879; FAST-X64-NEXT:    seta %al880; FAST-X64-NEXT:    retq881;882; GISEL-X64-LABEL: fcmp_float_olt:883; GISEL-X64:       ## %bb.0:884; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)885; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)886; GISEL-X64-NEXT:    fucompi %st(1), %st887; GISEL-X64-NEXT:    fstp %st(0)888; GISEL-X64-NEXT:    seta %al889; GISEL-X64-NEXT:    retq890;891; SDAG-X86-LABEL: fcmp_float_olt:892; SDAG-X86:       ## %bb.0:893; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)894; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)895; SDAG-X86-NEXT:    fucompp896; SDAG-X86-NEXT:    fnstsw %ax897; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax898; SDAG-X86-NEXT:    sahf899; SDAG-X86-NEXT:    seta %al900; SDAG-X86-NEXT:    retl901;902; FAST-X86-LABEL: fcmp_float_olt:903; FAST-X86:       ## %bb.0:904; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)905; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)906; FAST-X86-NEXT:    fxch %st(1)907; FAST-X86-NEXT:    fucompp908; FAST-X86-NEXT:    fnstsw %ax909; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax910; FAST-X86-NEXT:    sahf911; FAST-X86-NEXT:    seta %al912; FAST-X86-NEXT:    retl913;914; GISEL-X86-LABEL: fcmp_float_olt:915; GISEL-X86:       ## %bb.0:916; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)917; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)918; GISEL-X86-NEXT:    fucompi %st(1), %st919; GISEL-X86-NEXT:    fstp %st(0)920; GISEL-X86-NEXT:    seta %al921; GISEL-X86-NEXT:    retl922    %1 = fcmp olt float %x, %y923    ret i1 %1924  }925 926  define i1 @fcmp_float_ole(float %x, float %y) {927; SDAG-X64-LABEL: fcmp_float_ole:928; SDAG-X64:       ## %bb.0:929; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)930; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)931; SDAG-X64-NEXT:    fucompi %st(1), %st932; SDAG-X64-NEXT:    fstp %st(0)933; SDAG-X64-NEXT:    setae %al934; SDAG-X64-NEXT:    retq935;936; FAST-X64-LABEL: fcmp_float_ole:937; FAST-X64:       ## %bb.0:938; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)939; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)940; FAST-X64-NEXT:    fxch %st(1)941; FAST-X64-NEXT:    fucompi %st(1), %st942; FAST-X64-NEXT:    fstp %st(0)943; FAST-X64-NEXT:    setae %al944; FAST-X64-NEXT:    retq945;946; GISEL-X64-LABEL: fcmp_float_ole:947; GISEL-X64:       ## %bb.0:948; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)949; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)950; GISEL-X64-NEXT:    fucompi %st(1), %st951; GISEL-X64-NEXT:    fstp %st(0)952; GISEL-X64-NEXT:    setae %al953; GISEL-X64-NEXT:    retq954;955; SDAG-X86-LABEL: fcmp_float_ole:956; SDAG-X86:       ## %bb.0:957; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)958; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)959; SDAG-X86-NEXT:    fucompp960; SDAG-X86-NEXT:    fnstsw %ax961; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax962; SDAG-X86-NEXT:    sahf963; SDAG-X86-NEXT:    setae %al964; SDAG-X86-NEXT:    retl965;966; FAST-X86-LABEL: fcmp_float_ole:967; FAST-X86:       ## %bb.0:968; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)969; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)970; FAST-X86-NEXT:    fxch %st(1)971; FAST-X86-NEXT:    fucompp972; FAST-X86-NEXT:    fnstsw %ax973; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax974; FAST-X86-NEXT:    sahf975; FAST-X86-NEXT:    setae %al976; FAST-X86-NEXT:    retl977;978; GISEL-X86-LABEL: fcmp_float_ole:979; GISEL-X86:       ## %bb.0:980; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)981; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)982; GISEL-X86-NEXT:    fucompi %st(1), %st983; GISEL-X86-NEXT:    fstp %st(0)984; GISEL-X86-NEXT:    setae %al985; GISEL-X86-NEXT:    retl986    %1 = fcmp ole float %x, %y987    ret i1 %1988  }989 990  define i1 @fcmp_float_one(float %x, float %y) {991; X64-LABEL: fcmp_float_one:992; X64:       ## %bb.0:993; X64-NEXT:    flds {{[0-9]+}}(%rsp)994; X64-NEXT:    flds {{[0-9]+}}(%rsp)995; X64-NEXT:    fucompi %st(1), %st996; X64-NEXT:    fstp %st(0)997; X64-NEXT:    setne %al998; X64-NEXT:    retq999;1000; GISEL-X64-LABEL: fcmp_float_one:1001; GISEL-X64:       ## %bb.0:1002; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1003; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1004; GISEL-X64-NEXT:    fxch %st(1)1005; GISEL-X64-NEXT:    fucompi %st(1), %st1006; GISEL-X64-NEXT:    fstp %st(0)1007; GISEL-X64-NEXT:    setne %al1008; GISEL-X64-NEXT:    retq1009;1010; X86-LABEL: fcmp_float_one:1011; X86:       ## %bb.0:1012; X86-NEXT:    flds {{[0-9]+}}(%esp)1013; X86-NEXT:    flds {{[0-9]+}}(%esp)1014; X86-NEXT:    fucompp1015; X86-NEXT:    fnstsw %ax1016; X86-NEXT:    ## kill: def $ah killed $ah killed $ax1017; X86-NEXT:    sahf1018; X86-NEXT:    setne %al1019; X86-NEXT:    retl1020;1021; GISEL-X86-LABEL: fcmp_float_one:1022; GISEL-X86:       ## %bb.0:1023; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1024; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1025; GISEL-X86-NEXT:    fxch %st(1)1026; GISEL-X86-NEXT:    fucompi %st(1), %st1027; GISEL-X86-NEXT:    fstp %st(0)1028; GISEL-X86-NEXT:    setne %al1029; GISEL-X86-NEXT:    retl1030    %1 = fcmp one float %x, %y1031    ret i1 %11032  }1033 1034  define i1 @fcmp_float_ord(float %x, float %y) {1035; X64-LABEL: fcmp_float_ord:1036; X64:       ## %bb.0:1037; X64-NEXT:    flds {{[0-9]+}}(%rsp)1038; X64-NEXT:    flds {{[0-9]+}}(%rsp)1039; X64-NEXT:    fucompi %st(1), %st1040; X64-NEXT:    fstp %st(0)1041; X64-NEXT:    setnp %al1042; X64-NEXT:    retq1043;1044; GISEL-X64-LABEL: fcmp_float_ord:1045; GISEL-X64:       ## %bb.0:1046; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1047; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1048; GISEL-X64-NEXT:    fxch %st(1)1049; GISEL-X64-NEXT:    fucompi %st(1), %st1050; GISEL-X64-NEXT:    fstp %st(0)1051; GISEL-X64-NEXT:    setnp %al1052; GISEL-X64-NEXT:    retq1053;1054; X86-LABEL: fcmp_float_ord:1055; X86:       ## %bb.0:1056; X86-NEXT:    flds {{[0-9]+}}(%esp)1057; X86-NEXT:    flds {{[0-9]+}}(%esp)1058; X86-NEXT:    fucompp1059; X86-NEXT:    fnstsw %ax1060; X86-NEXT:    ## kill: def $ah killed $ah killed $ax1061; X86-NEXT:    sahf1062; X86-NEXT:    setnp %al1063; X86-NEXT:    retl1064;1065; GISEL-X86-LABEL: fcmp_float_ord:1066; GISEL-X86:       ## %bb.0:1067; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1068; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1069; GISEL-X86-NEXT:    fxch %st(1)1070; GISEL-X86-NEXT:    fucompi %st(1), %st1071; GISEL-X86-NEXT:    fstp %st(0)1072; GISEL-X86-NEXT:    setnp %al1073; GISEL-X86-NEXT:    retl1074    %1 = fcmp ord float %x, %y1075    ret i1 %11076  }1077 1078  define i1 @fcmp_float_uno(float %x, float %y) {1079; X64-LABEL: fcmp_float_uno:1080; X64:       ## %bb.0:1081; X64-NEXT:    flds {{[0-9]+}}(%rsp)1082; X64-NEXT:    flds {{[0-9]+}}(%rsp)1083; X64-NEXT:    fucompi %st(1), %st1084; X64-NEXT:    fstp %st(0)1085; X64-NEXT:    setp %al1086; X64-NEXT:    retq1087;1088; GISEL-X64-LABEL: fcmp_float_uno:1089; GISEL-X64:       ## %bb.0:1090; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1091; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1092; GISEL-X64-NEXT:    fxch %st(1)1093; GISEL-X64-NEXT:    fucompi %st(1), %st1094; GISEL-X64-NEXT:    fstp %st(0)1095; GISEL-X64-NEXT:    setp %al1096; GISEL-X64-NEXT:    retq1097;1098; X86-LABEL: fcmp_float_uno:1099; X86:       ## %bb.0:1100; X86-NEXT:    flds {{[0-9]+}}(%esp)1101; X86-NEXT:    flds {{[0-9]+}}(%esp)1102; X86-NEXT:    fucompp1103; X86-NEXT:    fnstsw %ax1104; X86-NEXT:    ## kill: def $ah killed $ah killed $ax1105; X86-NEXT:    sahf1106; X86-NEXT:    setp %al1107; X86-NEXT:    retl1108;1109; GISEL-X86-LABEL: fcmp_float_uno:1110; GISEL-X86:       ## %bb.0:1111; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1112; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1113; GISEL-X86-NEXT:    fxch %st(1)1114; GISEL-X86-NEXT:    fucompi %st(1), %st1115; GISEL-X86-NEXT:    fstp %st(0)1116; GISEL-X86-NEXT:    setp %al1117; GISEL-X86-NEXT:    retl1118    %1 = fcmp uno float %x, %y1119    ret i1 %11120  }1121 1122  define i1 @fcmp_float_ueq(float %x, float %y) {1123; X64-LABEL: fcmp_float_ueq:1124; X64:       ## %bb.0:1125; X64-NEXT:    flds {{[0-9]+}}(%rsp)1126; X64-NEXT:    flds {{[0-9]+}}(%rsp)1127; X64-NEXT:    fucompi %st(1), %st1128; X64-NEXT:    fstp %st(0)1129; X64-NEXT:    sete %al1130; X64-NEXT:    retq1131;1132; GISEL-X64-LABEL: fcmp_float_ueq:1133; GISEL-X64:       ## %bb.0:1134; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1135; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1136; GISEL-X64-NEXT:    fxch %st(1)1137; GISEL-X64-NEXT:    fucompi %st(1), %st1138; GISEL-X64-NEXT:    fstp %st(0)1139; GISEL-X64-NEXT:    sete %al1140; GISEL-X64-NEXT:    retq1141;1142; X86-LABEL: fcmp_float_ueq:1143; X86:       ## %bb.0:1144; X86-NEXT:    flds {{[0-9]+}}(%esp)1145; X86-NEXT:    flds {{[0-9]+}}(%esp)1146; X86-NEXT:    fucompp1147; X86-NEXT:    fnstsw %ax1148; X86-NEXT:    ## kill: def $ah killed $ah killed $ax1149; X86-NEXT:    sahf1150; X86-NEXT:    sete %al1151; X86-NEXT:    retl1152;1153; GISEL-X86-LABEL: fcmp_float_ueq:1154; GISEL-X86:       ## %bb.0:1155; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1156; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1157; GISEL-X86-NEXT:    fxch %st(1)1158; GISEL-X86-NEXT:    fucompi %st(1), %st1159; GISEL-X86-NEXT:    fstp %st(0)1160; GISEL-X86-NEXT:    sete %al1161; GISEL-X86-NEXT:    retl1162    %1 = fcmp ueq float %x, %y1163    ret i1 %11164  }1165 1166  define i1 @fcmp_float_ugt(float %x, float %y) {1167; SDAG-X64-LABEL: fcmp_float_ugt:1168; SDAG-X64:       ## %bb.0:1169; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)1170; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)1171; SDAG-X64-NEXT:    fucompi %st(1), %st1172; SDAG-X64-NEXT:    fstp %st(0)1173; SDAG-X64-NEXT:    setb %al1174; SDAG-X64-NEXT:    retq1175;1176; FAST-X64-LABEL: fcmp_float_ugt:1177; FAST-X64:       ## %bb.0:1178; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)1179; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)1180; FAST-X64-NEXT:    fxch %st(1)1181; FAST-X64-NEXT:    fucompi %st(1), %st1182; FAST-X64-NEXT:    fstp %st(0)1183; FAST-X64-NEXT:    setb %al1184; FAST-X64-NEXT:    retq1185;1186; GISEL-X64-LABEL: fcmp_float_ugt:1187; GISEL-X64:       ## %bb.0:1188; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1189; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1190; GISEL-X64-NEXT:    fucompi %st(1), %st1191; GISEL-X64-NEXT:    fstp %st(0)1192; GISEL-X64-NEXT:    setb %al1193; GISEL-X64-NEXT:    retq1194;1195; SDAG-X86-LABEL: fcmp_float_ugt:1196; SDAG-X86:       ## %bb.0:1197; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)1198; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)1199; SDAG-X86-NEXT:    fucompp1200; SDAG-X86-NEXT:    fnstsw %ax1201; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax1202; SDAG-X86-NEXT:    sahf1203; SDAG-X86-NEXT:    setb %al1204; SDAG-X86-NEXT:    retl1205;1206; FAST-X86-LABEL: fcmp_float_ugt:1207; FAST-X86:       ## %bb.0:1208; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)1209; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)1210; FAST-X86-NEXT:    fxch %st(1)1211; FAST-X86-NEXT:    fucompp1212; FAST-X86-NEXT:    fnstsw %ax1213; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax1214; FAST-X86-NEXT:    sahf1215; FAST-X86-NEXT:    setb %al1216; FAST-X86-NEXT:    retl1217;1218; GISEL-X86-LABEL: fcmp_float_ugt:1219; GISEL-X86:       ## %bb.0:1220; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1221; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1222; GISEL-X86-NEXT:    fucompi %st(1), %st1223; GISEL-X86-NEXT:    fstp %st(0)1224; GISEL-X86-NEXT:    setb %al1225; GISEL-X86-NEXT:    retl1226    %1 = fcmp ugt float %x, %y1227    ret i1 %11228  }1229 1230  define i1 @fcmp_float_uge(float %x, float %y) {1231; SDAG-X64-LABEL: fcmp_float_uge:1232; SDAG-X64:       ## %bb.0:1233; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)1234; SDAG-X64-NEXT:    flds {{[0-9]+}}(%rsp)1235; SDAG-X64-NEXT:    fucompi %st(1), %st1236; SDAG-X64-NEXT:    fstp %st(0)1237; SDAG-X64-NEXT:    setbe %al1238; SDAG-X64-NEXT:    retq1239;1240; FAST-X64-LABEL: fcmp_float_uge:1241; FAST-X64:       ## %bb.0:1242; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)1243; FAST-X64-NEXT:    flds {{[0-9]+}}(%rsp)1244; FAST-X64-NEXT:    fxch %st(1)1245; FAST-X64-NEXT:    fucompi %st(1), %st1246; FAST-X64-NEXT:    fstp %st(0)1247; FAST-X64-NEXT:    setbe %al1248; FAST-X64-NEXT:    retq1249;1250; GISEL-X64-LABEL: fcmp_float_uge:1251; GISEL-X64:       ## %bb.0:1252; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1253; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1254; GISEL-X64-NEXT:    fucompi %st(1), %st1255; GISEL-X64-NEXT:    fstp %st(0)1256; GISEL-X64-NEXT:    setbe %al1257; GISEL-X64-NEXT:    retq1258;1259; SDAG-X86-LABEL: fcmp_float_uge:1260; SDAG-X86:       ## %bb.0:1261; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)1262; SDAG-X86-NEXT:    flds {{[0-9]+}}(%esp)1263; SDAG-X86-NEXT:    fucompp1264; SDAG-X86-NEXT:    fnstsw %ax1265; SDAG-X86-NEXT:    ## kill: def $ah killed $ah killed $ax1266; SDAG-X86-NEXT:    sahf1267; SDAG-X86-NEXT:    setbe %al1268; SDAG-X86-NEXT:    retl1269;1270; FAST-X86-LABEL: fcmp_float_uge:1271; FAST-X86:       ## %bb.0:1272; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)1273; FAST-X86-NEXT:    flds {{[0-9]+}}(%esp)1274; FAST-X86-NEXT:    fxch %st(1)1275; FAST-X86-NEXT:    fucompp1276; FAST-X86-NEXT:    fnstsw %ax1277; FAST-X86-NEXT:    ## kill: def $ah killed $ah killed $ax1278; FAST-X86-NEXT:    sahf1279; FAST-X86-NEXT:    setbe %al1280; FAST-X86-NEXT:    retl1281;1282; GISEL-X86-LABEL: fcmp_float_uge:1283; GISEL-X86:       ## %bb.0:1284; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1285; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1286; GISEL-X86-NEXT:    fucompi %st(1), %st1287; GISEL-X86-NEXT:    fstp %st(0)1288; GISEL-X86-NEXT:    setbe %al1289; GISEL-X86-NEXT:    retl1290    %1 = fcmp uge float %x, %y1291    ret i1 %11292  }1293 1294  define i1 @fcmp_float_ult(float %x, float %y) {1295; X64-LABEL: fcmp_float_ult:1296; X64:       ## %bb.0:1297; X64-NEXT:    flds {{[0-9]+}}(%rsp)1298; X64-NEXT:    flds {{[0-9]+}}(%rsp)1299; X64-NEXT:    fucompi %st(1), %st1300; X64-NEXT:    fstp %st(0)1301; X64-NEXT:    setb %al1302; X64-NEXT:    retq1303;1304; GISEL-X64-LABEL: fcmp_float_ult:1305; GISEL-X64:       ## %bb.0:1306; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1307; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1308; GISEL-X64-NEXT:    fxch %st(1)1309; GISEL-X64-NEXT:    fucompi %st(1), %st1310; GISEL-X64-NEXT:    fstp %st(0)1311; GISEL-X64-NEXT:    setb %al1312; GISEL-X64-NEXT:    retq1313;1314; X86-LABEL: fcmp_float_ult:1315; X86:       ## %bb.0:1316; X86-NEXT:    flds {{[0-9]+}}(%esp)1317; X86-NEXT:    flds {{[0-9]+}}(%esp)1318; X86-NEXT:    fucompp1319; X86-NEXT:    fnstsw %ax1320; X86-NEXT:    ## kill: def $ah killed $ah killed $ax1321; X86-NEXT:    sahf1322; X86-NEXT:    setb %al1323; X86-NEXT:    retl1324;1325; GISEL-X86-LABEL: fcmp_float_ult:1326; GISEL-X86:       ## %bb.0:1327; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1328; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1329; GISEL-X86-NEXT:    fxch %st(1)1330; GISEL-X86-NEXT:    fucompi %st(1), %st1331; GISEL-X86-NEXT:    fstp %st(0)1332; GISEL-X86-NEXT:    setb %al1333; GISEL-X86-NEXT:    retl1334    %1 = fcmp ult float %x, %y1335    ret i1 %11336  }1337 1338  define i1 @fcmp_float_ule(float %x, float %y) {1339; X64-LABEL: fcmp_float_ule:1340; X64:       ## %bb.0:1341; X64-NEXT:    flds {{[0-9]+}}(%rsp)1342; X64-NEXT:    flds {{[0-9]+}}(%rsp)1343; X64-NEXT:    fucompi %st(1), %st1344; X64-NEXT:    fstp %st(0)1345; X64-NEXT:    setbe %al1346; X64-NEXT:    retq1347;1348; GISEL-X64-LABEL: fcmp_float_ule:1349; GISEL-X64:       ## %bb.0:1350; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1351; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1352; GISEL-X64-NEXT:    fxch %st(1)1353; GISEL-X64-NEXT:    fucompi %st(1), %st1354; GISEL-X64-NEXT:    fstp %st(0)1355; GISEL-X64-NEXT:    setbe %al1356; GISEL-X64-NEXT:    retq1357;1358; X86-LABEL: fcmp_float_ule:1359; X86:       ## %bb.0:1360; X86-NEXT:    flds {{[0-9]+}}(%esp)1361; X86-NEXT:    flds {{[0-9]+}}(%esp)1362; X86-NEXT:    fucompp1363; X86-NEXT:    fnstsw %ax1364; X86-NEXT:    ## kill: def $ah killed $ah killed $ax1365; X86-NEXT:    sahf1366; X86-NEXT:    setbe %al1367; X86-NEXT:    retl1368;1369; GISEL-X86-LABEL: fcmp_float_ule:1370; GISEL-X86:       ## %bb.0:1371; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1372; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1373; GISEL-X86-NEXT:    fxch %st(1)1374; GISEL-X86-NEXT:    fucompi %st(1), %st1375; GISEL-X86-NEXT:    fstp %st(0)1376; GISEL-X86-NEXT:    setbe %al1377; GISEL-X86-NEXT:    retl1378    %1 = fcmp ule float %x, %y1379    ret i1 %11380  }1381 1382  define i1 @fcmp_float_une(float %x, float %y) {1383; X64-LABEL: fcmp_float_une:1384; X64:       ## %bb.0:1385; X64-NEXT:    flds {{[0-9]+}}(%rsp)1386; X64-NEXT:    flds {{[0-9]+}}(%rsp)1387; X64-NEXT:    fucompi %st(1), %st1388; X64-NEXT:    fstp %st(0)1389; X64-NEXT:    setp %cl1390; X64-NEXT:    setne %al1391; X64-NEXT:    orb %cl, %al1392; X64-NEXT:    retq1393;1394; GISEL-X64-LABEL: fcmp_float_une:1395; GISEL-X64:       ## %bb.0:1396; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1397; GISEL-X64-NEXT:    flds {{[0-9]+}}(%rsp)1398; GISEL-X64-NEXT:    fxch %st(1)1399; GISEL-X64-NEXT:    fucompi %st(1), %st1400; GISEL-X64-NEXT:    fstp %st(0)1401; GISEL-X64-NEXT:    setne %cl1402; GISEL-X64-NEXT:    setp %al1403; GISEL-X64-NEXT:    orb %cl, %al1404; GISEL-X64-NEXT:    retq1405;1406; X86-LABEL: fcmp_float_une:1407; X86:       ## %bb.0:1408; X86-NEXT:    flds {{[0-9]+}}(%esp)1409; X86-NEXT:    flds {{[0-9]+}}(%esp)1410; X86-NEXT:    fucompp1411; X86-NEXT:    fnstsw %ax1412; X86-NEXT:    ## kill: def $ah killed $ah killed $ax1413; X86-NEXT:    sahf1414; X86-NEXT:    setp %cl1415; X86-NEXT:    setne %al1416; X86-NEXT:    orb %cl, %al1417; X86-NEXT:    retl1418;1419; GISEL-X86-LABEL: fcmp_float_une:1420; GISEL-X86:       ## %bb.0:1421; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1422; GISEL-X86-NEXT:    flds {{[0-9]+}}(%esp)1423; GISEL-X86-NEXT:    fxch %st(1)1424; GISEL-X86-NEXT:    fucompi %st(1), %st1425; GISEL-X86-NEXT:    fstp %st(0)1426; GISEL-X86-NEXT:    setne %cl1427; GISEL-X86-NEXT:    setp %al1428; GISEL-X86-NEXT:    orb %cl, %al1429; GISEL-X86-NEXT:    retl1430    %1 = fcmp une float %x, %y1431    ret i1 %11432  }1433