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