brintos

brintos / llvm-project-archived public Read only

0
0
Text · 52.9 KiB · 80835b7 Raw
1411 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=i686-unknown-unknown -mattr=+avx512f -O3 | FileCheck %s --check-prefixes=X863; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f -O3 | FileCheck %s --check-prefixes=X644 5define <16 x i32> @test_v16f32_oeq_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {6; X86-LABEL: test_v16f32_oeq_q:7; X86:       # %bb.0:8; X86-NEXT:    pushl %ebp9; X86-NEXT:    movl %esp, %ebp10; X86-NEXT:    andl $-64, %esp11; X86-NEXT:    subl $64, %esp12; X86-NEXT:    vcmpeqps 8(%ebp), %zmm2, %k113; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}14; X86-NEXT:    movl %ebp, %esp15; X86-NEXT:    popl %ebp16; X86-NEXT:    retl17;18; X64-LABEL: test_v16f32_oeq_q:19; X64:       # %bb.0:20; X64-NEXT:    vcmpeqps %zmm3, %zmm2, %k121; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}22; X64-NEXT:    retq23  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(24                                               <16 x float> %f1, <16 x float> %f2, metadata !"oeq",25                                               metadata !"fpexcept.strict") #026  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b27  ret <16 x i32> %res28}29 30define <16 x i32> @test_v16f32_ogt_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {31; X86-LABEL: test_v16f32_ogt_q:32; X86:       # %bb.0:33; X86-NEXT:    pushl %ebp34; X86-NEXT:    movl %esp, %ebp35; X86-NEXT:    andl $-64, %esp36; X86-NEXT:    subl $64, %esp37; X86-NEXT:    vcmpgt_oqps 8(%ebp), %zmm2, %k138; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}39; X86-NEXT:    movl %ebp, %esp40; X86-NEXT:    popl %ebp41; X86-NEXT:    retl42;43; X64-LABEL: test_v16f32_ogt_q:44; X64:       # %bb.0:45; X64-NEXT:    vcmplt_oqps %zmm2, %zmm3, %k146; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}47; X64-NEXT:    retq48  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(49                                               <16 x float> %f1, <16 x float> %f2, metadata !"ogt",50                                               metadata !"fpexcept.strict") #051  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b52  ret <16 x i32> %res53}54 55define <16 x i32> @test_v16f32_oge_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {56; X86-LABEL: test_v16f32_oge_q:57; X86:       # %bb.0:58; X86-NEXT:    pushl %ebp59; X86-NEXT:    movl %esp, %ebp60; X86-NEXT:    andl $-64, %esp61; X86-NEXT:    subl $64, %esp62; X86-NEXT:    vcmpge_oqps 8(%ebp), %zmm2, %k163; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}64; X86-NEXT:    movl %ebp, %esp65; X86-NEXT:    popl %ebp66; X86-NEXT:    retl67;68; X64-LABEL: test_v16f32_oge_q:69; X64:       # %bb.0:70; X64-NEXT:    vcmple_oqps %zmm2, %zmm3, %k171; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}72; X64-NEXT:    retq73  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(74                                               <16 x float> %f1, <16 x float> %f2, metadata !"oge",75                                               metadata !"fpexcept.strict") #076  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b77  ret <16 x i32> %res78}79 80define <16 x i32> @test_v16f32_olt_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {81; X86-LABEL: test_v16f32_olt_q:82; X86:       # %bb.0:83; X86-NEXT:    pushl %ebp84; X86-NEXT:    movl %esp, %ebp85; X86-NEXT:    andl $-64, %esp86; X86-NEXT:    subl $64, %esp87; X86-NEXT:    vcmplt_oqps 8(%ebp), %zmm2, %k188; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}89; X86-NEXT:    movl %ebp, %esp90; X86-NEXT:    popl %ebp91; X86-NEXT:    retl92;93; X64-LABEL: test_v16f32_olt_q:94; X64:       # %bb.0:95; X64-NEXT:    vcmplt_oqps %zmm3, %zmm2, %k196; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}97; X64-NEXT:    retq98  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(99                                               <16 x float> %f1, <16 x float> %f2, metadata !"olt",100                                               metadata !"fpexcept.strict") #0101  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b102  ret <16 x i32> %res103}104 105define <16 x i32> @test_v16f32_ole_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {106; X86-LABEL: test_v16f32_ole_q:107; X86:       # %bb.0:108; X86-NEXT:    pushl %ebp109; X86-NEXT:    movl %esp, %ebp110; X86-NEXT:    andl $-64, %esp111; X86-NEXT:    subl $64, %esp112; X86-NEXT:    vcmple_oqps 8(%ebp), %zmm2, %k1113; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}114; X86-NEXT:    movl %ebp, %esp115; X86-NEXT:    popl %ebp116; X86-NEXT:    retl117;118; X64-LABEL: test_v16f32_ole_q:119; X64:       # %bb.0:120; X64-NEXT:    vcmple_oqps %zmm3, %zmm2, %k1121; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}122; X64-NEXT:    retq123  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(124                                               <16 x float> %f1, <16 x float> %f2, metadata !"ole",125                                               metadata !"fpexcept.strict") #0126  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b127  ret <16 x i32> %res128}129 130define <16 x i32> @test_v16f32_one_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {131; X86-LABEL: test_v16f32_one_q:132; X86:       # %bb.0:133; X86-NEXT:    pushl %ebp134; X86-NEXT:    movl %esp, %ebp135; X86-NEXT:    andl $-64, %esp136; X86-NEXT:    subl $64, %esp137; X86-NEXT:    vcmpneq_oqps 8(%ebp), %zmm2, %k1138; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}139; X86-NEXT:    movl %ebp, %esp140; X86-NEXT:    popl %ebp141; X86-NEXT:    retl142;143; X64-LABEL: test_v16f32_one_q:144; X64:       # %bb.0:145; X64-NEXT:    vcmpneq_oqps %zmm3, %zmm2, %k1146; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}147; X64-NEXT:    retq148  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(149                                               <16 x float> %f1, <16 x float> %f2, metadata !"one",150                                               metadata !"fpexcept.strict") #0151  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b152  ret <16 x i32> %res153}154 155define <16 x i32> @test_v16f32_ord_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {156; X86-LABEL: test_v16f32_ord_q:157; X86:       # %bb.0:158; X86-NEXT:    pushl %ebp159; X86-NEXT:    movl %esp, %ebp160; X86-NEXT:    andl $-64, %esp161; X86-NEXT:    subl $64, %esp162; X86-NEXT:    vcmpordps 8(%ebp), %zmm2, %k1163; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}164; X86-NEXT:    movl %ebp, %esp165; X86-NEXT:    popl %ebp166; X86-NEXT:    retl167;168; X64-LABEL: test_v16f32_ord_q:169; X64:       # %bb.0:170; X64-NEXT:    vcmpordps %zmm3, %zmm2, %k1171; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}172; X64-NEXT:    retq173  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(174                                               <16 x float> %f1, <16 x float> %f2, metadata !"ord",175                                               metadata !"fpexcept.strict") #0176  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b177  ret <16 x i32> %res178}179 180define <16 x i32> @test_v16f32_ueq_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {181; X86-LABEL: test_v16f32_ueq_q:182; X86:       # %bb.0:183; X86-NEXT:    pushl %ebp184; X86-NEXT:    movl %esp, %ebp185; X86-NEXT:    andl $-64, %esp186; X86-NEXT:    subl $64, %esp187; X86-NEXT:    vcmpeq_uqps 8(%ebp), %zmm2, %k1188; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}189; X86-NEXT:    movl %ebp, %esp190; X86-NEXT:    popl %ebp191; X86-NEXT:    retl192;193; X64-LABEL: test_v16f32_ueq_q:194; X64:       # %bb.0:195; X64-NEXT:    vcmpeq_uqps %zmm3, %zmm2, %k1196; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}197; X64-NEXT:    retq198  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(199                                               <16 x float> %f1, <16 x float> %f2, metadata !"ueq",200                                               metadata !"fpexcept.strict") #0201  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b202  ret <16 x i32> %res203}204 205define <16 x i32> @test_v16f32_ugt_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {206; X86-LABEL: test_v16f32_ugt_q:207; X86:       # %bb.0:208; X86-NEXT:    pushl %ebp209; X86-NEXT:    movl %esp, %ebp210; X86-NEXT:    andl $-64, %esp211; X86-NEXT:    subl $64, %esp212; X86-NEXT:    vcmpnle_uqps 8(%ebp), %zmm2, %k1213; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}214; X86-NEXT:    movl %ebp, %esp215; X86-NEXT:    popl %ebp216; X86-NEXT:    retl217;218; X64-LABEL: test_v16f32_ugt_q:219; X64:       # %bb.0:220; X64-NEXT:    vcmpnle_uqps %zmm3, %zmm2, %k1221; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}222; X64-NEXT:    retq223  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(224                                               <16 x float> %f1, <16 x float> %f2, metadata !"ugt",225                                               metadata !"fpexcept.strict") #0226  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b227  ret <16 x i32> %res228}229 230define <16 x i32> @test_v16f32_uge_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {231; X86-LABEL: test_v16f32_uge_q:232; X86:       # %bb.0:233; X86-NEXT:    pushl %ebp234; X86-NEXT:    movl %esp, %ebp235; X86-NEXT:    andl $-64, %esp236; X86-NEXT:    subl $64, %esp237; X86-NEXT:    vcmpnlt_uqps 8(%ebp), %zmm2, %k1238; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}239; X86-NEXT:    movl %ebp, %esp240; X86-NEXT:    popl %ebp241; X86-NEXT:    retl242;243; X64-LABEL: test_v16f32_uge_q:244; X64:       # %bb.0:245; X64-NEXT:    vcmpnlt_uqps %zmm3, %zmm2, %k1246; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}247; X64-NEXT:    retq248  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(249                                               <16 x float> %f1, <16 x float> %f2, metadata !"uge",250                                               metadata !"fpexcept.strict") #0251  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b252  ret <16 x i32> %res253}254 255define <16 x i32> @test_v16f32_ult_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {256; X86-LABEL: test_v16f32_ult_q:257; X86:       # %bb.0:258; X86-NEXT:    pushl %ebp259; X86-NEXT:    movl %esp, %ebp260; X86-NEXT:    andl $-64, %esp261; X86-NEXT:    subl $64, %esp262; X86-NEXT:    vcmpnge_uqps 8(%ebp), %zmm2, %k1263; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}264; X86-NEXT:    movl %ebp, %esp265; X86-NEXT:    popl %ebp266; X86-NEXT:    retl267;268; X64-LABEL: test_v16f32_ult_q:269; X64:       # %bb.0:270; X64-NEXT:    vcmpnle_uqps %zmm2, %zmm3, %k1271; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}272; X64-NEXT:    retq273  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(274                                               <16 x float> %f1, <16 x float> %f2, metadata !"ult",275                                               metadata !"fpexcept.strict") #0276  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b277  ret <16 x i32> %res278}279 280define <16 x i32> @test_v16f32_ule_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {281; X86-LABEL: test_v16f32_ule_q:282; X86:       # %bb.0:283; X86-NEXT:    pushl %ebp284; X86-NEXT:    movl %esp, %ebp285; X86-NEXT:    andl $-64, %esp286; X86-NEXT:    subl $64, %esp287; X86-NEXT:    vcmpngt_uqps 8(%ebp), %zmm2, %k1288; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}289; X86-NEXT:    movl %ebp, %esp290; X86-NEXT:    popl %ebp291; X86-NEXT:    retl292;293; X64-LABEL: test_v16f32_ule_q:294; X64:       # %bb.0:295; X64-NEXT:    vcmpnlt_uqps %zmm2, %zmm3, %k1296; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}297; X64-NEXT:    retq298  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(299                                               <16 x float> %f1, <16 x float> %f2, metadata !"ule",300                                               metadata !"fpexcept.strict") #0301  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b302  ret <16 x i32> %res303}304 305define <16 x i32> @test_v16f32_une_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {306; X86-LABEL: test_v16f32_une_q:307; X86:       # %bb.0:308; X86-NEXT:    pushl %ebp309; X86-NEXT:    movl %esp, %ebp310; X86-NEXT:    andl $-64, %esp311; X86-NEXT:    subl $64, %esp312; X86-NEXT:    vcmpneqps 8(%ebp), %zmm2, %k1313; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}314; X86-NEXT:    movl %ebp, %esp315; X86-NEXT:    popl %ebp316; X86-NEXT:    retl317;318; X64-LABEL: test_v16f32_une_q:319; X64:       # %bb.0:320; X64-NEXT:    vcmpneqps %zmm3, %zmm2, %k1321; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}322; X64-NEXT:    retq323  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(324                                               <16 x float> %f1, <16 x float> %f2, metadata !"une",325                                               metadata !"fpexcept.strict") #0326  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b327  ret <16 x i32> %res328}329 330define <16 x i32> @test_v16f32_uno_q(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {331; X86-LABEL: test_v16f32_uno_q:332; X86:       # %bb.0:333; X86-NEXT:    pushl %ebp334; X86-NEXT:    movl %esp, %ebp335; X86-NEXT:    andl $-64, %esp336; X86-NEXT:    subl $64, %esp337; X86-NEXT:    vcmpunordps 8(%ebp), %zmm2, %k1338; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}339; X86-NEXT:    movl %ebp, %esp340; X86-NEXT:    popl %ebp341; X86-NEXT:    retl342;343; X64-LABEL: test_v16f32_uno_q:344; X64:       # %bb.0:345; X64-NEXT:    vcmpunordps %zmm3, %zmm2, %k1346; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}347; X64-NEXT:    retq348  %cond = call <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(349                                               <16 x float> %f1, <16 x float> %f2, metadata !"uno",350                                               metadata !"fpexcept.strict") #0351  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b352  ret <16 x i32> %res353}354 355define <8 x i64> @test_v8f64_oeq_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {356; X86-LABEL: test_v8f64_oeq_q:357; X86:       # %bb.0:358; X86-NEXT:    pushl %ebp359; X86-NEXT:    movl %esp, %ebp360; X86-NEXT:    andl $-64, %esp361; X86-NEXT:    subl $64, %esp362; X86-NEXT:    vcmpeqpd 8(%ebp), %zmm2, %k1363; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}364; X86-NEXT:    movl %ebp, %esp365; X86-NEXT:    popl %ebp366; X86-NEXT:    retl367;368; X64-LABEL: test_v8f64_oeq_q:369; X64:       # %bb.0:370; X64-NEXT:    vcmpeqpd %zmm3, %zmm2, %k1371; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}372; X64-NEXT:    retq373  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(374                                               <8 x double> %f1, <8 x double> %f2, metadata !"oeq",375                                               metadata !"fpexcept.strict") #0376  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b377  ret <8 x i64> %res378}379 380define <8 x i64> @test_v8f64_ogt_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {381; X86-LABEL: test_v8f64_ogt_q:382; X86:       # %bb.0:383; X86-NEXT:    pushl %ebp384; X86-NEXT:    movl %esp, %ebp385; X86-NEXT:    andl $-64, %esp386; X86-NEXT:    subl $64, %esp387; X86-NEXT:    vcmpgt_oqpd 8(%ebp), %zmm2, %k1388; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}389; X86-NEXT:    movl %ebp, %esp390; X86-NEXT:    popl %ebp391; X86-NEXT:    retl392;393; X64-LABEL: test_v8f64_ogt_q:394; X64:       # %bb.0:395; X64-NEXT:    vcmplt_oqpd %zmm2, %zmm3, %k1396; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}397; X64-NEXT:    retq398  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(399                                               <8 x double> %f1, <8 x double> %f2, metadata !"ogt",400                                               metadata !"fpexcept.strict") #0401  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b402  ret <8 x i64> %res403}404 405define <8 x i64> @test_v8f64_oge_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {406; X86-LABEL: test_v8f64_oge_q:407; X86:       # %bb.0:408; X86-NEXT:    pushl %ebp409; X86-NEXT:    movl %esp, %ebp410; X86-NEXT:    andl $-64, %esp411; X86-NEXT:    subl $64, %esp412; X86-NEXT:    vcmpge_oqpd 8(%ebp), %zmm2, %k1413; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}414; X86-NEXT:    movl %ebp, %esp415; X86-NEXT:    popl %ebp416; X86-NEXT:    retl417;418; X64-LABEL: test_v8f64_oge_q:419; X64:       # %bb.0:420; X64-NEXT:    vcmple_oqpd %zmm2, %zmm3, %k1421; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}422; X64-NEXT:    retq423  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(424                                               <8 x double> %f1, <8 x double> %f2, metadata !"oge",425                                               metadata !"fpexcept.strict") #0426  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b427  ret <8 x i64> %res428}429 430define <8 x i64> @test_v8f64_olt_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {431; X86-LABEL: test_v8f64_olt_q:432; X86:       # %bb.0:433; X86-NEXT:    pushl %ebp434; X86-NEXT:    movl %esp, %ebp435; X86-NEXT:    andl $-64, %esp436; X86-NEXT:    subl $64, %esp437; X86-NEXT:    vcmplt_oqpd 8(%ebp), %zmm2, %k1438; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}439; X86-NEXT:    movl %ebp, %esp440; X86-NEXT:    popl %ebp441; X86-NEXT:    retl442;443; X64-LABEL: test_v8f64_olt_q:444; X64:       # %bb.0:445; X64-NEXT:    vcmplt_oqpd %zmm3, %zmm2, %k1446; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}447; X64-NEXT:    retq448  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(449                                               <8 x double> %f1, <8 x double> %f2, metadata !"olt",450                                               metadata !"fpexcept.strict") #0451  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b452  ret <8 x i64> %res453}454 455define <8 x i64> @test_v8f64_ole_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {456; X86-LABEL: test_v8f64_ole_q:457; X86:       # %bb.0:458; X86-NEXT:    pushl %ebp459; X86-NEXT:    movl %esp, %ebp460; X86-NEXT:    andl $-64, %esp461; X86-NEXT:    subl $64, %esp462; X86-NEXT:    vcmple_oqpd 8(%ebp), %zmm2, %k1463; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}464; X86-NEXT:    movl %ebp, %esp465; X86-NEXT:    popl %ebp466; X86-NEXT:    retl467;468; X64-LABEL: test_v8f64_ole_q:469; X64:       # %bb.0:470; X64-NEXT:    vcmple_oqpd %zmm3, %zmm2, %k1471; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}472; X64-NEXT:    retq473  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(474                                               <8 x double> %f1, <8 x double> %f2, metadata !"ole",475                                               metadata !"fpexcept.strict") #0476  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b477  ret <8 x i64> %res478}479 480define <8 x i64> @test_v8f64_one_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {481; X86-LABEL: test_v8f64_one_q:482; X86:       # %bb.0:483; X86-NEXT:    pushl %ebp484; X86-NEXT:    movl %esp, %ebp485; X86-NEXT:    andl $-64, %esp486; X86-NEXT:    subl $64, %esp487; X86-NEXT:    vcmpneq_oqpd 8(%ebp), %zmm2, %k1488; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}489; X86-NEXT:    movl %ebp, %esp490; X86-NEXT:    popl %ebp491; X86-NEXT:    retl492;493; X64-LABEL: test_v8f64_one_q:494; X64:       # %bb.0:495; X64-NEXT:    vcmpneq_oqpd %zmm3, %zmm2, %k1496; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}497; X64-NEXT:    retq498  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(499                                               <8 x double> %f1, <8 x double> %f2, metadata !"one",500                                               metadata !"fpexcept.strict") #0501  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b502  ret <8 x i64> %res503}504 505define <8 x i64> @test_v8f64_ord_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {506; X86-LABEL: test_v8f64_ord_q:507; X86:       # %bb.0:508; X86-NEXT:    pushl %ebp509; X86-NEXT:    movl %esp, %ebp510; X86-NEXT:    andl $-64, %esp511; X86-NEXT:    subl $64, %esp512; X86-NEXT:    vcmpordpd 8(%ebp), %zmm2, %k1513; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}514; X86-NEXT:    movl %ebp, %esp515; X86-NEXT:    popl %ebp516; X86-NEXT:    retl517;518; X64-LABEL: test_v8f64_ord_q:519; X64:       # %bb.0:520; X64-NEXT:    vcmpordpd %zmm3, %zmm2, %k1521; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}522; X64-NEXT:    retq523  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(524                                               <8 x double> %f1, <8 x double> %f2, metadata !"ord",525                                               metadata !"fpexcept.strict") #0526  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b527  ret <8 x i64> %res528}529 530define <8 x i64> @test_v8f64_ueq_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {531; X86-LABEL: test_v8f64_ueq_q:532; X86:       # %bb.0:533; X86-NEXT:    pushl %ebp534; X86-NEXT:    movl %esp, %ebp535; X86-NEXT:    andl $-64, %esp536; X86-NEXT:    subl $64, %esp537; X86-NEXT:    vcmpeq_uqpd 8(%ebp), %zmm2, %k1538; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}539; X86-NEXT:    movl %ebp, %esp540; X86-NEXT:    popl %ebp541; X86-NEXT:    retl542;543; X64-LABEL: test_v8f64_ueq_q:544; X64:       # %bb.0:545; X64-NEXT:    vcmpeq_uqpd %zmm3, %zmm2, %k1546; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}547; X64-NEXT:    retq548  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(549                                               <8 x double> %f1, <8 x double> %f2, metadata !"ueq",550                                               metadata !"fpexcept.strict") #0551  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b552  ret <8 x i64> %res553}554 555define <8 x i64> @test_v8f64_ugt_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {556; X86-LABEL: test_v8f64_ugt_q:557; X86:       # %bb.0:558; X86-NEXT:    pushl %ebp559; X86-NEXT:    movl %esp, %ebp560; X86-NEXT:    andl $-64, %esp561; X86-NEXT:    subl $64, %esp562; X86-NEXT:    vcmpnle_uqpd 8(%ebp), %zmm2, %k1563; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}564; X86-NEXT:    movl %ebp, %esp565; X86-NEXT:    popl %ebp566; X86-NEXT:    retl567;568; X64-LABEL: test_v8f64_ugt_q:569; X64:       # %bb.0:570; X64-NEXT:    vcmpnle_uqpd %zmm3, %zmm2, %k1571; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}572; X64-NEXT:    retq573  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(574                                               <8 x double> %f1, <8 x double> %f2, metadata !"ugt",575                                               metadata !"fpexcept.strict") #0576  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b577  ret <8 x i64> %res578}579 580define <8 x i64> @test_v8f64_uge_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {581; X86-LABEL: test_v8f64_uge_q:582; X86:       # %bb.0:583; X86-NEXT:    pushl %ebp584; X86-NEXT:    movl %esp, %ebp585; X86-NEXT:    andl $-64, %esp586; X86-NEXT:    subl $64, %esp587; X86-NEXT:    vcmpnlt_uqpd 8(%ebp), %zmm2, %k1588; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}589; X86-NEXT:    movl %ebp, %esp590; X86-NEXT:    popl %ebp591; X86-NEXT:    retl592;593; X64-LABEL: test_v8f64_uge_q:594; X64:       # %bb.0:595; X64-NEXT:    vcmpnlt_uqpd %zmm3, %zmm2, %k1596; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}597; X64-NEXT:    retq598  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(599                                               <8 x double> %f1, <8 x double> %f2, metadata !"uge",600                                               metadata !"fpexcept.strict") #0601  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b602  ret <8 x i64> %res603}604 605define <8 x i64> @test_v8f64_ult_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {606; X86-LABEL: test_v8f64_ult_q:607; X86:       # %bb.0:608; X86-NEXT:    pushl %ebp609; X86-NEXT:    movl %esp, %ebp610; X86-NEXT:    andl $-64, %esp611; X86-NEXT:    subl $64, %esp612; X86-NEXT:    vcmpnge_uqpd 8(%ebp), %zmm2, %k1613; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}614; X86-NEXT:    movl %ebp, %esp615; X86-NEXT:    popl %ebp616; X86-NEXT:    retl617;618; X64-LABEL: test_v8f64_ult_q:619; X64:       # %bb.0:620; X64-NEXT:    vcmpnle_uqpd %zmm2, %zmm3, %k1621; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}622; X64-NEXT:    retq623  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(624                                               <8 x double> %f1, <8 x double> %f2, metadata !"ult",625                                               metadata !"fpexcept.strict") #0626  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b627  ret <8 x i64> %res628}629 630define <8 x i64> @test_v8f64_ule_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {631; X86-LABEL: test_v8f64_ule_q:632; X86:       # %bb.0:633; X86-NEXT:    pushl %ebp634; X86-NEXT:    movl %esp, %ebp635; X86-NEXT:    andl $-64, %esp636; X86-NEXT:    subl $64, %esp637; X86-NEXT:    vcmpngt_uqpd 8(%ebp), %zmm2, %k1638; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}639; X86-NEXT:    movl %ebp, %esp640; X86-NEXT:    popl %ebp641; X86-NEXT:    retl642;643; X64-LABEL: test_v8f64_ule_q:644; X64:       # %bb.0:645; X64-NEXT:    vcmpnlt_uqpd %zmm2, %zmm3, %k1646; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}647; X64-NEXT:    retq648  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(649                                               <8 x double> %f1, <8 x double> %f2, metadata !"ule",650                                               metadata !"fpexcept.strict") #0651  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b652  ret <8 x i64> %res653}654 655define <8 x i64> @test_v8f64_une_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {656; X86-LABEL: test_v8f64_une_q:657; X86:       # %bb.0:658; X86-NEXT:    pushl %ebp659; X86-NEXT:    movl %esp, %ebp660; X86-NEXT:    andl $-64, %esp661; X86-NEXT:    subl $64, %esp662; X86-NEXT:    vcmpneqpd 8(%ebp), %zmm2, %k1663; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}664; X86-NEXT:    movl %ebp, %esp665; X86-NEXT:    popl %ebp666; X86-NEXT:    retl667;668; X64-LABEL: test_v8f64_une_q:669; X64:       # %bb.0:670; X64-NEXT:    vcmpneqpd %zmm3, %zmm2, %k1671; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}672; X64-NEXT:    retq673  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(674                                               <8 x double> %f1, <8 x double> %f2, metadata !"une",675                                               metadata !"fpexcept.strict") #0676  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b677  ret <8 x i64> %res678}679 680define <8 x i64> @test_v8f64_uno_q(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {681; X86-LABEL: test_v8f64_uno_q:682; X86:       # %bb.0:683; X86-NEXT:    pushl %ebp684; X86-NEXT:    movl %esp, %ebp685; X86-NEXT:    andl $-64, %esp686; X86-NEXT:    subl $64, %esp687; X86-NEXT:    vcmpunordpd 8(%ebp), %zmm2, %k1688; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}689; X86-NEXT:    movl %ebp, %esp690; X86-NEXT:    popl %ebp691; X86-NEXT:    retl692;693; X64-LABEL: test_v8f64_uno_q:694; X64:       # %bb.0:695; X64-NEXT:    vcmpunordpd %zmm3, %zmm2, %k1696; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}697; X64-NEXT:    retq698  %cond = call <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(699                                               <8 x double> %f1, <8 x double> %f2, metadata !"uno",700                                               metadata !"fpexcept.strict") #0701  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b702  ret <8 x i64> %res703}704 705define <16 x i32> @test_v16f32_oeq_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {706; X86-LABEL: test_v16f32_oeq_s:707; X86:       # %bb.0:708; X86-NEXT:    pushl %ebp709; X86-NEXT:    movl %esp, %ebp710; X86-NEXT:    andl $-64, %esp711; X86-NEXT:    subl $64, %esp712; X86-NEXT:    vcmpeq_osps 8(%ebp), %zmm2, %k1713; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}714; X86-NEXT:    movl %ebp, %esp715; X86-NEXT:    popl %ebp716; X86-NEXT:    retl717;718; X64-LABEL: test_v16f32_oeq_s:719; X64:       # %bb.0:720; X64-NEXT:    vcmpeq_osps %zmm3, %zmm2, %k1721; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}722; X64-NEXT:    retq723  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(724                                               <16 x float> %f1, <16 x float> %f2, metadata !"oeq",725                                               metadata !"fpexcept.strict") #0726  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b727  ret <16 x i32> %res728}729 730define <16 x i32> @test_v16f32_ogt_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {731; X86-LABEL: test_v16f32_ogt_s:732; X86:       # %bb.0:733; X86-NEXT:    pushl %ebp734; X86-NEXT:    movl %esp, %ebp735; X86-NEXT:    andl $-64, %esp736; X86-NEXT:    subl $64, %esp737; X86-NEXT:    vcmpgtps 8(%ebp), %zmm2, %k1738; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}739; X86-NEXT:    movl %ebp, %esp740; X86-NEXT:    popl %ebp741; X86-NEXT:    retl742;743; X64-LABEL: test_v16f32_ogt_s:744; X64:       # %bb.0:745; X64-NEXT:    vcmpltps %zmm2, %zmm3, %k1746; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}747; X64-NEXT:    retq748  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(749                                               <16 x float> %f1, <16 x float> %f2, metadata !"ogt",750                                               metadata !"fpexcept.strict") #0751  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b752  ret <16 x i32> %res753}754 755define <16 x i32> @test_v16f32_oge_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {756; X86-LABEL: test_v16f32_oge_s:757; X86:       # %bb.0:758; X86-NEXT:    pushl %ebp759; X86-NEXT:    movl %esp, %ebp760; X86-NEXT:    andl $-64, %esp761; X86-NEXT:    subl $64, %esp762; X86-NEXT:    vcmpgeps 8(%ebp), %zmm2, %k1763; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}764; X86-NEXT:    movl %ebp, %esp765; X86-NEXT:    popl %ebp766; X86-NEXT:    retl767;768; X64-LABEL: test_v16f32_oge_s:769; X64:       # %bb.0:770; X64-NEXT:    vcmpleps %zmm2, %zmm3, %k1771; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}772; X64-NEXT:    retq773  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(774                                               <16 x float> %f1, <16 x float> %f2, metadata !"oge",775                                               metadata !"fpexcept.strict") #0776  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b777  ret <16 x i32> %res778}779 780define <16 x i32> @test_v16f32_olt_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {781; X86-LABEL: test_v16f32_olt_s:782; X86:       # %bb.0:783; X86-NEXT:    pushl %ebp784; X86-NEXT:    movl %esp, %ebp785; X86-NEXT:    andl $-64, %esp786; X86-NEXT:    subl $64, %esp787; X86-NEXT:    vcmpltps 8(%ebp), %zmm2, %k1788; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}789; X86-NEXT:    movl %ebp, %esp790; X86-NEXT:    popl %ebp791; X86-NEXT:    retl792;793; X64-LABEL: test_v16f32_olt_s:794; X64:       # %bb.0:795; X64-NEXT:    vcmpltps %zmm3, %zmm2, %k1796; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}797; X64-NEXT:    retq798  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(799                                               <16 x float> %f1, <16 x float> %f2, metadata !"olt",800                                               metadata !"fpexcept.strict") #0801  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b802  ret <16 x i32> %res803}804 805define <16 x i32> @test_v16f32_ole_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {806; X86-LABEL: test_v16f32_ole_s:807; X86:       # %bb.0:808; X86-NEXT:    pushl %ebp809; X86-NEXT:    movl %esp, %ebp810; X86-NEXT:    andl $-64, %esp811; X86-NEXT:    subl $64, %esp812; X86-NEXT:    vcmpleps 8(%ebp), %zmm2, %k1813; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}814; X86-NEXT:    movl %ebp, %esp815; X86-NEXT:    popl %ebp816; X86-NEXT:    retl817;818; X64-LABEL: test_v16f32_ole_s:819; X64:       # %bb.0:820; X64-NEXT:    vcmpleps %zmm3, %zmm2, %k1821; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}822; X64-NEXT:    retq823  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(824                                               <16 x float> %f1, <16 x float> %f2, metadata !"ole",825                                               metadata !"fpexcept.strict") #0826  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b827  ret <16 x i32> %res828}829 830define <16 x i32> @test_v16f32_one_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {831; X86-LABEL: test_v16f32_one_s:832; X86:       # %bb.0:833; X86-NEXT:    pushl %ebp834; X86-NEXT:    movl %esp, %ebp835; X86-NEXT:    andl $-64, %esp836; X86-NEXT:    subl $64, %esp837; X86-NEXT:    vcmpneq_osps 8(%ebp), %zmm2, %k1838; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}839; X86-NEXT:    movl %ebp, %esp840; X86-NEXT:    popl %ebp841; X86-NEXT:    retl842;843; X64-LABEL: test_v16f32_one_s:844; X64:       # %bb.0:845; X64-NEXT:    vcmpneq_osps %zmm3, %zmm2, %k1846; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}847; X64-NEXT:    retq848  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(849                                               <16 x float> %f1, <16 x float> %f2, metadata !"one",850                                               metadata !"fpexcept.strict") #0851  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b852  ret <16 x i32> %res853}854 855define <16 x i32> @test_v16f32_ord_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {856; X86-LABEL: test_v16f32_ord_s:857; X86:       # %bb.0:858; X86-NEXT:    pushl %ebp859; X86-NEXT:    movl %esp, %ebp860; X86-NEXT:    andl $-64, %esp861; X86-NEXT:    subl $64, %esp862; X86-NEXT:    vcmpord_sps 8(%ebp), %zmm2, %k1863; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}864; X86-NEXT:    movl %ebp, %esp865; X86-NEXT:    popl %ebp866; X86-NEXT:    retl867;868; X64-LABEL: test_v16f32_ord_s:869; X64:       # %bb.0:870; X64-NEXT:    vcmpord_sps %zmm3, %zmm2, %k1871; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}872; X64-NEXT:    retq873  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(874                                               <16 x float> %f1, <16 x float> %f2, metadata !"ord",875                                               metadata !"fpexcept.strict") #0876  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b877  ret <16 x i32> %res878}879 880define <16 x i32> @test_v16f32_ueq_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {881; X86-LABEL: test_v16f32_ueq_s:882; X86:       # %bb.0:883; X86-NEXT:    pushl %ebp884; X86-NEXT:    movl %esp, %ebp885; X86-NEXT:    andl $-64, %esp886; X86-NEXT:    subl $64, %esp887; X86-NEXT:    vcmpeq_usps 8(%ebp), %zmm2, %k1888; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}889; X86-NEXT:    movl %ebp, %esp890; X86-NEXT:    popl %ebp891; X86-NEXT:    retl892;893; X64-LABEL: test_v16f32_ueq_s:894; X64:       # %bb.0:895; X64-NEXT:    vcmpeq_usps %zmm3, %zmm2, %k1896; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}897; X64-NEXT:    retq898  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(899                                               <16 x float> %f1, <16 x float> %f2, metadata !"ueq",900                                               metadata !"fpexcept.strict") #0901  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b902  ret <16 x i32> %res903}904 905define <16 x i32> @test_v16f32_ugt_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {906; X86-LABEL: test_v16f32_ugt_s:907; X86:       # %bb.0:908; X86-NEXT:    pushl %ebp909; X86-NEXT:    movl %esp, %ebp910; X86-NEXT:    andl $-64, %esp911; X86-NEXT:    subl $64, %esp912; X86-NEXT:    vcmpnleps 8(%ebp), %zmm2, %k1913; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}914; X86-NEXT:    movl %ebp, %esp915; X86-NEXT:    popl %ebp916; X86-NEXT:    retl917;918; X64-LABEL: test_v16f32_ugt_s:919; X64:       # %bb.0:920; X64-NEXT:    vcmpnleps %zmm3, %zmm2, %k1921; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}922; X64-NEXT:    retq923  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(924                                               <16 x float> %f1, <16 x float> %f2, metadata !"ugt",925                                               metadata !"fpexcept.strict") #0926  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b927  ret <16 x i32> %res928}929 930define <16 x i32> @test_v16f32_uge_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {931; X86-LABEL: test_v16f32_uge_s:932; X86:       # %bb.0:933; X86-NEXT:    pushl %ebp934; X86-NEXT:    movl %esp, %ebp935; X86-NEXT:    andl $-64, %esp936; X86-NEXT:    subl $64, %esp937; X86-NEXT:    vcmpnltps 8(%ebp), %zmm2, %k1938; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}939; X86-NEXT:    movl %ebp, %esp940; X86-NEXT:    popl %ebp941; X86-NEXT:    retl942;943; X64-LABEL: test_v16f32_uge_s:944; X64:       # %bb.0:945; X64-NEXT:    vcmpnltps %zmm3, %zmm2, %k1946; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}947; X64-NEXT:    retq948  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(949                                               <16 x float> %f1, <16 x float> %f2, metadata !"uge",950                                               metadata !"fpexcept.strict") #0951  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b952  ret <16 x i32> %res953}954 955define <16 x i32> @test_v16f32_ult_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {956; X86-LABEL: test_v16f32_ult_s:957; X86:       # %bb.0:958; X86-NEXT:    pushl %ebp959; X86-NEXT:    movl %esp, %ebp960; X86-NEXT:    andl $-64, %esp961; X86-NEXT:    subl $64, %esp962; X86-NEXT:    vcmpngeps 8(%ebp), %zmm2, %k1963; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}964; X86-NEXT:    movl %ebp, %esp965; X86-NEXT:    popl %ebp966; X86-NEXT:    retl967;968; X64-LABEL: test_v16f32_ult_s:969; X64:       # %bb.0:970; X64-NEXT:    vcmpnleps %zmm2, %zmm3, %k1971; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}972; X64-NEXT:    retq973  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(974                                               <16 x float> %f1, <16 x float> %f2, metadata !"ult",975                                               metadata !"fpexcept.strict") #0976  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b977  ret <16 x i32> %res978}979 980define <16 x i32> @test_v16f32_ule_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {981; X86-LABEL: test_v16f32_ule_s:982; X86:       # %bb.0:983; X86-NEXT:    pushl %ebp984; X86-NEXT:    movl %esp, %ebp985; X86-NEXT:    andl $-64, %esp986; X86-NEXT:    subl $64, %esp987; X86-NEXT:    vcmpngtps 8(%ebp), %zmm2, %k1988; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}989; X86-NEXT:    movl %ebp, %esp990; X86-NEXT:    popl %ebp991; X86-NEXT:    retl992;993; X64-LABEL: test_v16f32_ule_s:994; X64:       # %bb.0:995; X64-NEXT:    vcmpnltps %zmm2, %zmm3, %k1996; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}997; X64-NEXT:    retq998  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(999                                               <16 x float> %f1, <16 x float> %f2, metadata !"ule",1000                                               metadata !"fpexcept.strict") #01001  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b1002  ret <16 x i32> %res1003}1004 1005define <16 x i32> @test_v16f32_une_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {1006; X86-LABEL: test_v16f32_une_s:1007; X86:       # %bb.0:1008; X86-NEXT:    pushl %ebp1009; X86-NEXT:    movl %esp, %ebp1010; X86-NEXT:    andl $-64, %esp1011; X86-NEXT:    subl $64, %esp1012; X86-NEXT:    vcmpneq_usps 8(%ebp), %zmm2, %k11013; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}1014; X86-NEXT:    movl %ebp, %esp1015; X86-NEXT:    popl %ebp1016; X86-NEXT:    retl1017;1018; X64-LABEL: test_v16f32_une_s:1019; X64:       # %bb.0:1020; X64-NEXT:    vcmpneq_usps %zmm3, %zmm2, %k11021; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}1022; X64-NEXT:    retq1023  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(1024                                               <16 x float> %f1, <16 x float> %f2, metadata !"une",1025                                               metadata !"fpexcept.strict") #01026  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b1027  ret <16 x i32> %res1028}1029 1030define <16 x i32> @test_v16f32_uno_s(<16 x i32> %a, <16 x i32> %b, <16 x float> %f1, <16 x float> %f2) #0 {1031; X86-LABEL: test_v16f32_uno_s:1032; X86:       # %bb.0:1033; X86-NEXT:    pushl %ebp1034; X86-NEXT:    movl %esp, %ebp1035; X86-NEXT:    andl $-64, %esp1036; X86-NEXT:    subl $64, %esp1037; X86-NEXT:    vcmpunord_sps 8(%ebp), %zmm2, %k11038; X86-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}1039; X86-NEXT:    movl %ebp, %esp1040; X86-NEXT:    popl %ebp1041; X86-NEXT:    retl1042;1043; X64-LABEL: test_v16f32_uno_s:1044; X64:       # %bb.0:1045; X64-NEXT:    vcmpunord_sps %zmm3, %zmm2, %k11046; X64-NEXT:    vpblendmd %zmm0, %zmm1, %zmm0 {%k1}1047; X64-NEXT:    retq1048  %cond = call <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(1049                                               <16 x float> %f1, <16 x float> %f2, metadata !"uno",1050                                               metadata !"fpexcept.strict") #01051  %res = select <16 x i1> %cond, <16 x i32> %a, <16 x i32> %b1052  ret <16 x i32> %res1053}1054 1055define <8 x i64> @test_v8f64_oeq_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1056; X86-LABEL: test_v8f64_oeq_s:1057; X86:       # %bb.0:1058; X86-NEXT:    pushl %ebp1059; X86-NEXT:    movl %esp, %ebp1060; X86-NEXT:    andl $-64, %esp1061; X86-NEXT:    subl $64, %esp1062; X86-NEXT:    vcmpeq_ospd 8(%ebp), %zmm2, %k11063; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1064; X86-NEXT:    movl %ebp, %esp1065; X86-NEXT:    popl %ebp1066; X86-NEXT:    retl1067;1068; X64-LABEL: test_v8f64_oeq_s:1069; X64:       # %bb.0:1070; X64-NEXT:    vcmpeq_ospd %zmm3, %zmm2, %k11071; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1072; X64-NEXT:    retq1073  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1074                                               <8 x double> %f1, <8 x double> %f2, metadata !"oeq",1075                                               metadata !"fpexcept.strict") #01076  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1077  ret <8 x i64> %res1078}1079 1080define <8 x i64> @test_v8f64_ogt_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1081; X86-LABEL: test_v8f64_ogt_s:1082; X86:       # %bb.0:1083; X86-NEXT:    pushl %ebp1084; X86-NEXT:    movl %esp, %ebp1085; X86-NEXT:    andl $-64, %esp1086; X86-NEXT:    subl $64, %esp1087; X86-NEXT:    vcmpgtpd 8(%ebp), %zmm2, %k11088; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1089; X86-NEXT:    movl %ebp, %esp1090; X86-NEXT:    popl %ebp1091; X86-NEXT:    retl1092;1093; X64-LABEL: test_v8f64_ogt_s:1094; X64:       # %bb.0:1095; X64-NEXT:    vcmpltpd %zmm2, %zmm3, %k11096; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1097; X64-NEXT:    retq1098  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1099                                               <8 x double> %f1, <8 x double> %f2, metadata !"ogt",1100                                               metadata !"fpexcept.strict") #01101  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1102  ret <8 x i64> %res1103}1104 1105define <8 x i64> @test_v8f64_oge_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1106; X86-LABEL: test_v8f64_oge_s:1107; X86:       # %bb.0:1108; X86-NEXT:    pushl %ebp1109; X86-NEXT:    movl %esp, %ebp1110; X86-NEXT:    andl $-64, %esp1111; X86-NEXT:    subl $64, %esp1112; X86-NEXT:    vcmpgepd 8(%ebp), %zmm2, %k11113; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1114; X86-NEXT:    movl %ebp, %esp1115; X86-NEXT:    popl %ebp1116; X86-NEXT:    retl1117;1118; X64-LABEL: test_v8f64_oge_s:1119; X64:       # %bb.0:1120; X64-NEXT:    vcmplepd %zmm2, %zmm3, %k11121; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1122; X64-NEXT:    retq1123  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1124                                               <8 x double> %f1, <8 x double> %f2, metadata !"oge",1125                                               metadata !"fpexcept.strict") #01126  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1127  ret <8 x i64> %res1128}1129 1130define <8 x i64> @test_v8f64_olt_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1131; X86-LABEL: test_v8f64_olt_s:1132; X86:       # %bb.0:1133; X86-NEXT:    pushl %ebp1134; X86-NEXT:    movl %esp, %ebp1135; X86-NEXT:    andl $-64, %esp1136; X86-NEXT:    subl $64, %esp1137; X86-NEXT:    vcmpltpd 8(%ebp), %zmm2, %k11138; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1139; X86-NEXT:    movl %ebp, %esp1140; X86-NEXT:    popl %ebp1141; X86-NEXT:    retl1142;1143; X64-LABEL: test_v8f64_olt_s:1144; X64:       # %bb.0:1145; X64-NEXT:    vcmpltpd %zmm3, %zmm2, %k11146; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1147; X64-NEXT:    retq1148  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1149                                               <8 x double> %f1, <8 x double> %f2, metadata !"olt",1150                                               metadata !"fpexcept.strict") #01151  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1152  ret <8 x i64> %res1153}1154 1155define <8 x i64> @test_v8f64_ole_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1156; X86-LABEL: test_v8f64_ole_s:1157; X86:       # %bb.0:1158; X86-NEXT:    pushl %ebp1159; X86-NEXT:    movl %esp, %ebp1160; X86-NEXT:    andl $-64, %esp1161; X86-NEXT:    subl $64, %esp1162; X86-NEXT:    vcmplepd 8(%ebp), %zmm2, %k11163; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1164; X86-NEXT:    movl %ebp, %esp1165; X86-NEXT:    popl %ebp1166; X86-NEXT:    retl1167;1168; X64-LABEL: test_v8f64_ole_s:1169; X64:       # %bb.0:1170; X64-NEXT:    vcmplepd %zmm3, %zmm2, %k11171; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1172; X64-NEXT:    retq1173  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1174                                               <8 x double> %f1, <8 x double> %f2, metadata !"ole",1175                                               metadata !"fpexcept.strict") #01176  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1177  ret <8 x i64> %res1178}1179 1180define <8 x i64> @test_v8f64_one_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1181; X86-LABEL: test_v8f64_one_s:1182; X86:       # %bb.0:1183; X86-NEXT:    pushl %ebp1184; X86-NEXT:    movl %esp, %ebp1185; X86-NEXT:    andl $-64, %esp1186; X86-NEXT:    subl $64, %esp1187; X86-NEXT:    vcmpneq_ospd 8(%ebp), %zmm2, %k11188; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1189; X86-NEXT:    movl %ebp, %esp1190; X86-NEXT:    popl %ebp1191; X86-NEXT:    retl1192;1193; X64-LABEL: test_v8f64_one_s:1194; X64:       # %bb.0:1195; X64-NEXT:    vcmpneq_ospd %zmm3, %zmm2, %k11196; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1197; X64-NEXT:    retq1198  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1199                                               <8 x double> %f1, <8 x double> %f2, metadata !"one",1200                                               metadata !"fpexcept.strict") #01201  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1202  ret <8 x i64> %res1203}1204 1205define <8 x i64> @test_v8f64_ord_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1206; X86-LABEL: test_v8f64_ord_s:1207; X86:       # %bb.0:1208; X86-NEXT:    pushl %ebp1209; X86-NEXT:    movl %esp, %ebp1210; X86-NEXT:    andl $-64, %esp1211; X86-NEXT:    subl $64, %esp1212; X86-NEXT:    vcmpord_spd 8(%ebp), %zmm2, %k11213; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1214; X86-NEXT:    movl %ebp, %esp1215; X86-NEXT:    popl %ebp1216; X86-NEXT:    retl1217;1218; X64-LABEL: test_v8f64_ord_s:1219; X64:       # %bb.0:1220; X64-NEXT:    vcmpord_spd %zmm3, %zmm2, %k11221; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1222; X64-NEXT:    retq1223  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1224                                               <8 x double> %f1, <8 x double> %f2, metadata !"ord",1225                                               metadata !"fpexcept.strict") #01226  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1227  ret <8 x i64> %res1228}1229 1230define <8 x i64> @test_v8f64_ueq_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1231; X86-LABEL: test_v8f64_ueq_s:1232; X86:       # %bb.0:1233; X86-NEXT:    pushl %ebp1234; X86-NEXT:    movl %esp, %ebp1235; X86-NEXT:    andl $-64, %esp1236; X86-NEXT:    subl $64, %esp1237; X86-NEXT:    vcmpeq_uspd 8(%ebp), %zmm2, %k11238; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1239; X86-NEXT:    movl %ebp, %esp1240; X86-NEXT:    popl %ebp1241; X86-NEXT:    retl1242;1243; X64-LABEL: test_v8f64_ueq_s:1244; X64:       # %bb.0:1245; X64-NEXT:    vcmpeq_uspd %zmm3, %zmm2, %k11246; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1247; X64-NEXT:    retq1248  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1249                                               <8 x double> %f1, <8 x double> %f2, metadata !"ueq",1250                                               metadata !"fpexcept.strict") #01251  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1252  ret <8 x i64> %res1253}1254 1255define <8 x i64> @test_v8f64_ugt_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1256; X86-LABEL: test_v8f64_ugt_s:1257; X86:       # %bb.0:1258; X86-NEXT:    pushl %ebp1259; X86-NEXT:    movl %esp, %ebp1260; X86-NEXT:    andl $-64, %esp1261; X86-NEXT:    subl $64, %esp1262; X86-NEXT:    vcmpnlepd 8(%ebp), %zmm2, %k11263; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1264; X86-NEXT:    movl %ebp, %esp1265; X86-NEXT:    popl %ebp1266; X86-NEXT:    retl1267;1268; X64-LABEL: test_v8f64_ugt_s:1269; X64:       # %bb.0:1270; X64-NEXT:    vcmpnlepd %zmm3, %zmm2, %k11271; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1272; X64-NEXT:    retq1273  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1274                                               <8 x double> %f1, <8 x double> %f2, metadata !"ugt",1275                                               metadata !"fpexcept.strict") #01276  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1277  ret <8 x i64> %res1278}1279 1280define <8 x i64> @test_v8f64_uge_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1281; X86-LABEL: test_v8f64_uge_s:1282; X86:       # %bb.0:1283; X86-NEXT:    pushl %ebp1284; X86-NEXT:    movl %esp, %ebp1285; X86-NEXT:    andl $-64, %esp1286; X86-NEXT:    subl $64, %esp1287; X86-NEXT:    vcmpnltpd 8(%ebp), %zmm2, %k11288; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1289; X86-NEXT:    movl %ebp, %esp1290; X86-NEXT:    popl %ebp1291; X86-NEXT:    retl1292;1293; X64-LABEL: test_v8f64_uge_s:1294; X64:       # %bb.0:1295; X64-NEXT:    vcmpnltpd %zmm3, %zmm2, %k11296; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1297; X64-NEXT:    retq1298  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1299                                               <8 x double> %f1, <8 x double> %f2, metadata !"uge",1300                                               metadata !"fpexcept.strict") #01301  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1302  ret <8 x i64> %res1303}1304 1305define <8 x i64> @test_v8f64_ult_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1306; X86-LABEL: test_v8f64_ult_s:1307; X86:       # %bb.0:1308; X86-NEXT:    pushl %ebp1309; X86-NEXT:    movl %esp, %ebp1310; X86-NEXT:    andl $-64, %esp1311; X86-NEXT:    subl $64, %esp1312; X86-NEXT:    vcmpngepd 8(%ebp), %zmm2, %k11313; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1314; X86-NEXT:    movl %ebp, %esp1315; X86-NEXT:    popl %ebp1316; X86-NEXT:    retl1317;1318; X64-LABEL: test_v8f64_ult_s:1319; X64:       # %bb.0:1320; X64-NEXT:    vcmpnlepd %zmm2, %zmm3, %k11321; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1322; X64-NEXT:    retq1323  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1324                                               <8 x double> %f1, <8 x double> %f2, metadata !"ult",1325                                               metadata !"fpexcept.strict") #01326  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1327  ret <8 x i64> %res1328}1329 1330define <8 x i64> @test_v8f64_ule_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1331; X86-LABEL: test_v8f64_ule_s:1332; X86:       # %bb.0:1333; X86-NEXT:    pushl %ebp1334; X86-NEXT:    movl %esp, %ebp1335; X86-NEXT:    andl $-64, %esp1336; X86-NEXT:    subl $64, %esp1337; X86-NEXT:    vcmpngtpd 8(%ebp), %zmm2, %k11338; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1339; X86-NEXT:    movl %ebp, %esp1340; X86-NEXT:    popl %ebp1341; X86-NEXT:    retl1342;1343; X64-LABEL: test_v8f64_ule_s:1344; X64:       # %bb.0:1345; X64-NEXT:    vcmpnltpd %zmm2, %zmm3, %k11346; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1347; X64-NEXT:    retq1348  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1349                                               <8 x double> %f1, <8 x double> %f2, metadata !"ule",1350                                               metadata !"fpexcept.strict") #01351  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1352  ret <8 x i64> %res1353}1354 1355define <8 x i64> @test_v8f64_une_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1356; X86-LABEL: test_v8f64_une_s:1357; X86:       # %bb.0:1358; X86-NEXT:    pushl %ebp1359; X86-NEXT:    movl %esp, %ebp1360; X86-NEXT:    andl $-64, %esp1361; X86-NEXT:    subl $64, %esp1362; X86-NEXT:    vcmpneq_uspd 8(%ebp), %zmm2, %k11363; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1364; X86-NEXT:    movl %ebp, %esp1365; X86-NEXT:    popl %ebp1366; X86-NEXT:    retl1367;1368; X64-LABEL: test_v8f64_une_s:1369; X64:       # %bb.0:1370; X64-NEXT:    vcmpneq_uspd %zmm3, %zmm2, %k11371; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1372; X64-NEXT:    retq1373  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1374                                               <8 x double> %f1, <8 x double> %f2, metadata !"une",1375                                               metadata !"fpexcept.strict") #01376  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1377  ret <8 x i64> %res1378}1379 1380define <8 x i64> @test_v8f64_uno_s(<8 x i64> %a, <8 x i64> %b, <8 x double> %f1, <8 x double> %f2) #0 {1381; X86-LABEL: test_v8f64_uno_s:1382; X86:       # %bb.0:1383; X86-NEXT:    pushl %ebp1384; X86-NEXT:    movl %esp, %ebp1385; X86-NEXT:    andl $-64, %esp1386; X86-NEXT:    subl $64, %esp1387; X86-NEXT:    vcmpunord_spd 8(%ebp), %zmm2, %k11388; X86-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1389; X86-NEXT:    movl %ebp, %esp1390; X86-NEXT:    popl %ebp1391; X86-NEXT:    retl1392;1393; X64-LABEL: test_v8f64_uno_s:1394; X64:       # %bb.0:1395; X64-NEXT:    vcmpunord_spd %zmm3, %zmm2, %k11396; X64-NEXT:    vpblendmq %zmm0, %zmm1, %zmm0 {%k1}1397; X64-NEXT:    retq1398  %cond = call <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(1399                                               <8 x double> %f1, <8 x double> %f2, metadata !"uno",1400                                               metadata !"fpexcept.strict") #01401  %res = select <8 x i1> %cond, <8 x i64> %a, <8 x i64> %b1402  ret <8 x i64> %res1403}1404 1405attributes #0 = { strictfp nounwind }1406 1407declare <16 x i1> @llvm.experimental.constrained.fcmp.v16f32(<16 x float>, <16 x float>, metadata, metadata)1408declare <8 x i1> @llvm.experimental.constrained.fcmp.v8f64(<8 x double>, <8 x double>, metadata, metadata)1409declare <16 x i1> @llvm.experimental.constrained.fcmps.v16f32(<16 x float>, <16 x float>, metadata, metadata)1410declare <8 x i1> @llvm.experimental.constrained.fcmps.v8f64(<8 x double>, <8 x double>, metadata, metadata)1411