brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.2 KiB · 14f8ab6 Raw
501 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-apple-darwin10                                              | FileCheck %s --check-prefixes=ISEL,SSE3; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -fast-isel -fast-isel-abort=1                  | FileCheck %s --check-prefixes=FASTISEL,SSE4; RUN: llc < %s -mtriple=x86_64-apple-darwin10                             -mcpu=corei7-avx | FileCheck %s --check-prefixes=ISEL,AVX5; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -fast-isel -fast-isel-abort=1 -mcpu=corei7-avx | FileCheck %s --check-prefixes=FASTISEL,AVX6; RUN: llc < %s -mtriple=x86_64-apple-darwin10                             -mcpu=skylake-avx512 -verify-machineinstrs | FileCheck %s --check-prefixes=ISEL,AVX512,AVX512-ISEL7; RUN: llc < %s -mtriple=x86_64-apple-darwin10 -fast-isel -fast-isel-abort=1 -mcpu=skylake-avx512 -verify-machineinstrs | FileCheck %s --check-prefixes=FASTISEL,AVX512,AVX512-FASTISEL8 9 10define float @select_fcmp_one_f32(float %a, float %b, float %c, float %d) {11; SSE-LABEL: select_fcmp_one_f32:12; SSE:       ## %bb.0:13; SSE-NEXT:    ucomiss %xmm1, %xmm014; SSE-NEXT:    jne LBB0_215; SSE-NEXT:  ## %bb.1:16; SSE-NEXT:    movaps %xmm3, %xmm217; SSE-NEXT:  LBB0_2:18; SSE-NEXT:    movaps %xmm2, %xmm019; SSE-NEXT:    retq20;21; AVX-LABEL: select_fcmp_one_f32:22; AVX:       ## %bb.0:23; AVX-NEXT:    vcmpneq_oqss %xmm1, %xmm0, %xmm024; AVX-NEXT:    vblendvps %xmm0, %xmm2, %xmm3, %xmm025; AVX-NEXT:    retq26;27; AVX512-LABEL: select_fcmp_one_f32:28; AVX512:       ## %bb.0:29; AVX512-NEXT:    vcmpneq_oqss %xmm1, %xmm0, %k130; AVX512-NEXT:    vmovss %xmm2, %xmm3, %xmm3 {%k1}31; AVX512-NEXT:    vmovaps %xmm3, %xmm032; AVX512-NEXT:    retq33  %1 = fcmp one float %a, %b34  %2 = select i1 %1, float %c, float %d35  ret float %236}37 38define double @select_fcmp_one_f64(double %a, double %b, double %c, double %d) {39; SSE-LABEL: select_fcmp_one_f64:40; SSE:       ## %bb.0:41; SSE-NEXT:    ucomisd %xmm1, %xmm042; SSE-NEXT:    jne LBB1_243; SSE-NEXT:  ## %bb.1:44; SSE-NEXT:    movaps %xmm3, %xmm245; SSE-NEXT:  LBB1_2:46; SSE-NEXT:    movaps %xmm2, %xmm047; SSE-NEXT:    retq48;49; AVX-LABEL: select_fcmp_one_f64:50; AVX:       ## %bb.0:51; AVX-NEXT:    vcmpneq_oqsd %xmm1, %xmm0, %xmm052; AVX-NEXT:    vblendvpd %xmm0, %xmm2, %xmm3, %xmm053; AVX-NEXT:    retq54;55; AVX512-LABEL: select_fcmp_one_f64:56; AVX512:       ## %bb.0:57; AVX512-NEXT:    vcmpneq_oqsd %xmm1, %xmm0, %k158; AVX512-NEXT:    vmovsd %xmm2, %xmm3, %xmm3 {%k1}59; AVX512-NEXT:    vmovapd %xmm3, %xmm060; AVX512-NEXT:    retq61  %1 = fcmp one double %a, %b62  %2 = select i1 %1, double %c, double %d63  ret double %264}65 66define float @select_icmp_eq_f32(i64 %a, i64 %b, float %c, float %d) {67; SSE-LABEL: select_icmp_eq_f32:68; SSE:       ## %bb.0:69; SSE-NEXT:    cmpq %rsi, %rdi70; SSE-NEXT:    je LBB2_271; SSE-NEXT:  ## %bb.1:72; SSE-NEXT:    movaps %xmm1, %xmm073; SSE-NEXT:  LBB2_2:74; SSE-NEXT:    retq75;76; AVX-LABEL: select_icmp_eq_f32:77; AVX:       ## %bb.0:78; AVX-NEXT:    cmpq %rsi, %rdi79; AVX-NEXT:    je LBB2_280; AVX-NEXT:  ## %bb.1:81; AVX-NEXT:    vmovaps %xmm1, %xmm082; AVX-NEXT:  LBB2_2:83; AVX-NEXT:    retq84;85; AVX512-ISEL-LABEL: select_icmp_eq_f32:86; AVX512-ISEL:       ## %bb.0:87; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi88; AVX512-ISEL-NEXT:    sete %al89; AVX512-ISEL-NEXT:    kmovd %eax, %k190; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}91; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm092; AVX512-ISEL-NEXT:    retq93;94; AVX512-FASTISEL-LABEL: select_icmp_eq_f32:95; AVX512-FASTISEL:       ## %bb.0:96; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi97; AVX512-FASTISEL-NEXT:    je LBB2_298; AVX512-FASTISEL-NEXT:  ## %bb.1:99; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0100; AVX512-FASTISEL-NEXT:  LBB2_2:101; AVX512-FASTISEL-NEXT:    retq102  %1 = icmp eq i64 %a, %b103  %2 = select i1 %1, float %c, float %d104  ret float %2105}106 107define float @select_icmp_ne_f32(i64 %a, i64 %b, float %c, float %d) {108; SSE-LABEL: select_icmp_ne_f32:109; SSE:       ## %bb.0:110; SSE-NEXT:    cmpq %rsi, %rdi111; SSE-NEXT:    jne LBB3_2112; SSE-NEXT:  ## %bb.1:113; SSE-NEXT:    movaps %xmm1, %xmm0114; SSE-NEXT:  LBB3_2:115; SSE-NEXT:    retq116;117; AVX-LABEL: select_icmp_ne_f32:118; AVX:       ## %bb.0:119; AVX-NEXT:    cmpq %rsi, %rdi120; AVX-NEXT:    jne LBB3_2121; AVX-NEXT:  ## %bb.1:122; AVX-NEXT:    vmovaps %xmm1, %xmm0123; AVX-NEXT:  LBB3_2:124; AVX-NEXT:    retq125;126; AVX512-ISEL-LABEL: select_icmp_ne_f32:127; AVX512-ISEL:       ## %bb.0:128; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi129; AVX512-ISEL-NEXT:    setne %al130; AVX512-ISEL-NEXT:    kmovd %eax, %k1131; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}132; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0133; AVX512-ISEL-NEXT:    retq134;135; AVX512-FASTISEL-LABEL: select_icmp_ne_f32:136; AVX512-FASTISEL:       ## %bb.0:137; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi138; AVX512-FASTISEL-NEXT:    jne LBB3_2139; AVX512-FASTISEL-NEXT:  ## %bb.1:140; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0141; AVX512-FASTISEL-NEXT:  LBB3_2:142; AVX512-FASTISEL-NEXT:    retq143  %1 = icmp ne i64 %a, %b144  %2 = select i1 %1, float %c, float %d145  ret float %2146}147 148define float @select_icmp_ugt_f32(i64 %a, i64 %b, float %c, float %d) {149; SSE-LABEL: select_icmp_ugt_f32:150; SSE:       ## %bb.0:151; SSE-NEXT:    cmpq %rsi, %rdi152; SSE-NEXT:    ja LBB4_2153; SSE-NEXT:  ## %bb.1:154; SSE-NEXT:    movaps %xmm1, %xmm0155; SSE-NEXT:  LBB4_2:156; SSE-NEXT:    retq157;158; AVX-LABEL: select_icmp_ugt_f32:159; AVX:       ## %bb.0:160; AVX-NEXT:    cmpq %rsi, %rdi161; AVX-NEXT:    ja LBB4_2162; AVX-NEXT:  ## %bb.1:163; AVX-NEXT:    vmovaps %xmm1, %xmm0164; AVX-NEXT:  LBB4_2:165; AVX-NEXT:    retq166;167; AVX512-ISEL-LABEL: select_icmp_ugt_f32:168; AVX512-ISEL:       ## %bb.0:169; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi170; AVX512-ISEL-NEXT:    seta %al171; AVX512-ISEL-NEXT:    kmovd %eax, %k1172; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}173; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0174; AVX512-ISEL-NEXT:    retq175;176; AVX512-FASTISEL-LABEL: select_icmp_ugt_f32:177; AVX512-FASTISEL:       ## %bb.0:178; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi179; AVX512-FASTISEL-NEXT:    ja LBB4_2180; AVX512-FASTISEL-NEXT:  ## %bb.1:181; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0182; AVX512-FASTISEL-NEXT:  LBB4_2:183; AVX512-FASTISEL-NEXT:    retq184  %1 = icmp ugt i64 %a, %b185  %2 = select i1 %1, float %c, float %d186  ret float %2187}188 189define float @select_icmp_uge_f32(i64 %a, i64 %b, float %c, float %d) {190; SSE-LABEL: select_icmp_uge_f32:191; SSE:       ## %bb.0:192; SSE-NEXT:    cmpq %rsi, %rdi193; SSE-NEXT:    jae LBB5_2194; SSE-NEXT:  ## %bb.1:195; SSE-NEXT:    movaps %xmm1, %xmm0196; SSE-NEXT:  LBB5_2:197; SSE-NEXT:    retq198;199; AVX-LABEL: select_icmp_uge_f32:200; AVX:       ## %bb.0:201; AVX-NEXT:    cmpq %rsi, %rdi202; AVX-NEXT:    jae LBB5_2203; AVX-NEXT:  ## %bb.1:204; AVX-NEXT:    vmovaps %xmm1, %xmm0205; AVX-NEXT:  LBB5_2:206; AVX-NEXT:    retq207;208; AVX512-ISEL-LABEL: select_icmp_uge_f32:209; AVX512-ISEL:       ## %bb.0:210; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi211; AVX512-ISEL-NEXT:    setae %al212; AVX512-ISEL-NEXT:    kmovd %eax, %k1213; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}214; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0215; AVX512-ISEL-NEXT:    retq216;217; AVX512-FASTISEL-LABEL: select_icmp_uge_f32:218; AVX512-FASTISEL:       ## %bb.0:219; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi220; AVX512-FASTISEL-NEXT:    jae LBB5_2221; AVX512-FASTISEL-NEXT:  ## %bb.1:222; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0223; AVX512-FASTISEL-NEXT:  LBB5_2:224; AVX512-FASTISEL-NEXT:    retq225  %1 = icmp uge i64 %a, %b226  %2 = select i1 %1, float %c, float %d227  ret float %2228}229 230define float @select_icmp_ult_f32(i64 %a, i64 %b, float %c, float %d) {231; SSE-LABEL: select_icmp_ult_f32:232; SSE:       ## %bb.0:233; SSE-NEXT:    cmpq %rsi, %rdi234; SSE-NEXT:    jb LBB6_2235; SSE-NEXT:  ## %bb.1:236; SSE-NEXT:    movaps %xmm1, %xmm0237; SSE-NEXT:  LBB6_2:238; SSE-NEXT:    retq239;240; AVX-LABEL: select_icmp_ult_f32:241; AVX:       ## %bb.0:242; AVX-NEXT:    cmpq %rsi, %rdi243; AVX-NEXT:    jb LBB6_2244; AVX-NEXT:  ## %bb.1:245; AVX-NEXT:    vmovaps %xmm1, %xmm0246; AVX-NEXT:  LBB6_2:247; AVX-NEXT:    retq248;249; AVX512-ISEL-LABEL: select_icmp_ult_f32:250; AVX512-ISEL:       ## %bb.0:251; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi252; AVX512-ISEL-NEXT:    setb %al253; AVX512-ISEL-NEXT:    kmovd %eax, %k1254; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}255; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0256; AVX512-ISEL-NEXT:    retq257;258; AVX512-FASTISEL-LABEL: select_icmp_ult_f32:259; AVX512-FASTISEL:       ## %bb.0:260; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi261; AVX512-FASTISEL-NEXT:    jb LBB6_2262; AVX512-FASTISEL-NEXT:  ## %bb.1:263; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0264; AVX512-FASTISEL-NEXT:  LBB6_2:265; AVX512-FASTISEL-NEXT:    retq266  %1 = icmp ult i64 %a, %b267  %2 = select i1 %1, float %c, float %d268  ret float %2269}270 271define float @select_icmp_ule_f32(i64 %a, i64 %b, float %c, float %d) {272; SSE-LABEL: select_icmp_ule_f32:273; SSE:       ## %bb.0:274; SSE-NEXT:    cmpq %rsi, %rdi275; SSE-NEXT:    jbe LBB7_2276; SSE-NEXT:  ## %bb.1:277; SSE-NEXT:    movaps %xmm1, %xmm0278; SSE-NEXT:  LBB7_2:279; SSE-NEXT:    retq280;281; AVX-LABEL: select_icmp_ule_f32:282; AVX:       ## %bb.0:283; AVX-NEXT:    cmpq %rsi, %rdi284; AVX-NEXT:    jbe LBB7_2285; AVX-NEXT:  ## %bb.1:286; AVX-NEXT:    vmovaps %xmm1, %xmm0287; AVX-NEXT:  LBB7_2:288; AVX-NEXT:    retq289;290; AVX512-ISEL-LABEL: select_icmp_ule_f32:291; AVX512-ISEL:       ## %bb.0:292; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi293; AVX512-ISEL-NEXT:    setbe %al294; AVX512-ISEL-NEXT:    kmovd %eax, %k1295; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}296; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0297; AVX512-ISEL-NEXT:    retq298;299; AVX512-FASTISEL-LABEL: select_icmp_ule_f32:300; AVX512-FASTISEL:       ## %bb.0:301; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi302; AVX512-FASTISEL-NEXT:    jbe LBB7_2303; AVX512-FASTISEL-NEXT:  ## %bb.1:304; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0305; AVX512-FASTISEL-NEXT:  LBB7_2:306; AVX512-FASTISEL-NEXT:    retq307  %1 = icmp ule i64 %a, %b308  %2 = select i1 %1, float %c, float %d309  ret float %2310}311 312define float @select_icmp_sgt_f32(i64 %a, i64 %b, float %c, float %d) {313; SSE-LABEL: select_icmp_sgt_f32:314; SSE:       ## %bb.0:315; SSE-NEXT:    cmpq %rsi, %rdi316; SSE-NEXT:    jg LBB8_2317; SSE-NEXT:  ## %bb.1:318; SSE-NEXT:    movaps %xmm1, %xmm0319; SSE-NEXT:  LBB8_2:320; SSE-NEXT:    retq321;322; AVX-LABEL: select_icmp_sgt_f32:323; AVX:       ## %bb.0:324; AVX-NEXT:    cmpq %rsi, %rdi325; AVX-NEXT:    jg LBB8_2326; AVX-NEXT:  ## %bb.1:327; AVX-NEXT:    vmovaps %xmm1, %xmm0328; AVX-NEXT:  LBB8_2:329; AVX-NEXT:    retq330;331; AVX512-ISEL-LABEL: select_icmp_sgt_f32:332; AVX512-ISEL:       ## %bb.0:333; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi334; AVX512-ISEL-NEXT:    setg %al335; AVX512-ISEL-NEXT:    kmovd %eax, %k1336; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}337; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0338; AVX512-ISEL-NEXT:    retq339;340; AVX512-FASTISEL-LABEL: select_icmp_sgt_f32:341; AVX512-FASTISEL:       ## %bb.0:342; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi343; AVX512-FASTISEL-NEXT:    jg LBB8_2344; AVX512-FASTISEL-NEXT:  ## %bb.1:345; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0346; AVX512-FASTISEL-NEXT:  LBB8_2:347; AVX512-FASTISEL-NEXT:    retq348  %1 = icmp sgt i64 %a, %b349  %2 = select i1 %1, float %c, float %d350  ret float %2351}352 353define float @select_icmp_sge_f32(i64 %a, i64 %b, float %c, float %d) {354; SSE-LABEL: select_icmp_sge_f32:355; SSE:       ## %bb.0:356; SSE-NEXT:    cmpq %rsi, %rdi357; SSE-NEXT:    jge LBB9_2358; SSE-NEXT:  ## %bb.1:359; SSE-NEXT:    movaps %xmm1, %xmm0360; SSE-NEXT:  LBB9_2:361; SSE-NEXT:    retq362;363; AVX-LABEL: select_icmp_sge_f32:364; AVX:       ## %bb.0:365; AVX-NEXT:    cmpq %rsi, %rdi366; AVX-NEXT:    jge LBB9_2367; AVX-NEXT:  ## %bb.1:368; AVX-NEXT:    vmovaps %xmm1, %xmm0369; AVX-NEXT:  LBB9_2:370; AVX-NEXT:    retq371;372; AVX512-ISEL-LABEL: select_icmp_sge_f32:373; AVX512-ISEL:       ## %bb.0:374; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi375; AVX512-ISEL-NEXT:    setge %al376; AVX512-ISEL-NEXT:    kmovd %eax, %k1377; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}378; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0379; AVX512-ISEL-NEXT:    retq380;381; AVX512-FASTISEL-LABEL: select_icmp_sge_f32:382; AVX512-FASTISEL:       ## %bb.0:383; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi384; AVX512-FASTISEL-NEXT:    jge LBB9_2385; AVX512-FASTISEL-NEXT:  ## %bb.1:386; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0387; AVX512-FASTISEL-NEXT:  LBB9_2:388; AVX512-FASTISEL-NEXT:    retq389  %1 = icmp sge i64 %a, %b390  %2 = select i1 %1, float %c, float %d391  ret float %2392}393 394define float @select_icmp_slt_f32(i64 %a, i64 %b, float %c, float %d) {395; SSE-LABEL: select_icmp_slt_f32:396; SSE:       ## %bb.0:397; SSE-NEXT:    cmpq %rsi, %rdi398; SSE-NEXT:    jl LBB10_2399; SSE-NEXT:  ## %bb.1:400; SSE-NEXT:    movaps %xmm1, %xmm0401; SSE-NEXT:  LBB10_2:402; SSE-NEXT:    retq403;404; AVX-LABEL: select_icmp_slt_f32:405; AVX:       ## %bb.0:406; AVX-NEXT:    cmpq %rsi, %rdi407; AVX-NEXT:    jl LBB10_2408; AVX-NEXT:  ## %bb.1:409; AVX-NEXT:    vmovaps %xmm1, %xmm0410; AVX-NEXT:  LBB10_2:411; AVX-NEXT:    retq412;413; AVX512-ISEL-LABEL: select_icmp_slt_f32:414; AVX512-ISEL:       ## %bb.0:415; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi416; AVX512-ISEL-NEXT:    setl %al417; AVX512-ISEL-NEXT:    kmovd %eax, %k1418; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}419; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0420; AVX512-ISEL-NEXT:    retq421;422; AVX512-FASTISEL-LABEL: select_icmp_slt_f32:423; AVX512-FASTISEL:       ## %bb.0:424; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi425; AVX512-FASTISEL-NEXT:    jl LBB10_2426; AVX512-FASTISEL-NEXT:  ## %bb.1:427; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0428; AVX512-FASTISEL-NEXT:  LBB10_2:429; AVX512-FASTISEL-NEXT:    retq430  %1 = icmp slt i64 %a, %b431  %2 = select i1 %1, float %c, float %d432  ret float %2433}434 435define float @select_icmp_sle_f32(i64 %a, i64 %b, float %c, float %d) {436; SSE-LABEL: select_icmp_sle_f32:437; SSE:       ## %bb.0:438; SSE-NEXT:    cmpq %rsi, %rdi439; SSE-NEXT:    jle LBB11_2440; SSE-NEXT:  ## %bb.1:441; SSE-NEXT:    movaps %xmm1, %xmm0442; SSE-NEXT:  LBB11_2:443; SSE-NEXT:    retq444;445; AVX-LABEL: select_icmp_sle_f32:446; AVX:       ## %bb.0:447; AVX-NEXT:    cmpq %rsi, %rdi448; AVX-NEXT:    jle LBB11_2449; AVX-NEXT:  ## %bb.1:450; AVX-NEXT:    vmovaps %xmm1, %xmm0451; AVX-NEXT:  LBB11_2:452; AVX-NEXT:    retq453;454; AVX512-ISEL-LABEL: select_icmp_sle_f32:455; AVX512-ISEL:       ## %bb.0:456; AVX512-ISEL-NEXT:    cmpq %rsi, %rdi457; AVX512-ISEL-NEXT:    setle %al458; AVX512-ISEL-NEXT:    kmovd %eax, %k1459; AVX512-ISEL-NEXT:    vmovss %xmm0, %xmm1, %xmm1 {%k1}460; AVX512-ISEL-NEXT:    vmovaps %xmm1, %xmm0461; AVX512-ISEL-NEXT:    retq462;463; AVX512-FASTISEL-LABEL: select_icmp_sle_f32:464; AVX512-FASTISEL:       ## %bb.0:465; AVX512-FASTISEL-NEXT:    cmpq %rsi, %rdi466; AVX512-FASTISEL-NEXT:    jle LBB11_2467; AVX512-FASTISEL-NEXT:  ## %bb.1:468; AVX512-FASTISEL-NEXT:    vmovaps %xmm1, %xmm0469; AVX512-FASTISEL-NEXT:  LBB11_2:470; AVX512-FASTISEL-NEXT:    retq471  %1 = icmp sle i64 %a, %b472  %2 = select i1 %1, float %c, float %d473  ret float %2474}475 476define i8 @select_icmp_sle_i8(i64 %a, i64 %b, i8 %c, i8 %d) {477; ISEL-LABEL: select_icmp_sle_i8:478; ISEL:       ## %bb.0:479; ISEL-NEXT:    movl %edx, %eax480; ISEL-NEXT:    cmpq %rsi, %rdi481; ISEL-NEXT:    cmovgl %ecx, %eax482; ISEL-NEXT:    ## kill: def $al killed $al killed $eax483; ISEL-NEXT:    retq484;485; FASTISEL-LABEL: select_icmp_sle_i8:486; FASTISEL:       ## %bb.0:487; FASTISEL-NEXT:    cmpq %rsi, %rdi488; FASTISEL-NEXT:    jle LBB12_1489; FASTISEL-NEXT:  ## %bb.2:490; FASTISEL-NEXT:    movl %ecx, %eax491; FASTISEL-NEXT:    ## kill: def $al killed $al killed $eax492; FASTISEL-NEXT:    retq493; FASTISEL-NEXT:  LBB12_1:494; FASTISEL-NEXT:    movl %edx, %eax495; FASTISEL-NEXT:    ## kill: def $al killed $al killed $eax496; FASTISEL-NEXT:    retq497  %1 = icmp sle i64 %a, %b498  %2 = select i1 %1, i8 %c, i8 %d499  ret i8 %2500}501