brintos

brintos / llvm-project-archived public Read only

0
0
Text · 34.8 KiB · 675ae02 Raw
1230 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -global-isel=0                    -mtriple=x86_64-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=X64,SDAG3; RUN: llc < %s -fast-isel -fast-isel-abort=1     -mtriple=x86_64-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=X64,FASTISEL4; RUN: llc < %s -global-isel -global-isel-abort=1 -mtriple=x86_64-apple-darwin10 -verify-machineinstrs | FileCheck %s --check-prefixes=GISEL-X645; RUN: llc < %s -global-isel=0                    -mtriple=i686-apple-darwin10   -verify-machineinstrs | FileCheck %s --check-prefixes=X86,SDAG,SDAG-X866; RUN: llc < %s -fast-isel -fast-isel-abort=1     -mtriple=i686-apple-darwin10   -verify-machineinstrs | FileCheck %s --check-prefixes=X86,FASTISEL,FASTISEL-X867; RUN: llc < %s -global-isel -global-isel-abort=1 -mtriple=i686-apple-darwin10   -verify-machineinstrs | FileCheck %s --check-prefixes=GISEL-X868 9define i32 @icmp_eq_2(i32 %x, i32 %y) {10; X64-LABEL: icmp_eq_2:11; X64:       ## %bb.0:12; X64-NEXT:    cmpl %esi, %edi13; X64-NEXT:    jne LBB0_114; X64-NEXT:  ## %bb.2: ## %bb115; X64-NEXT:    xorl %eax, %eax16; X64-NEXT:    retq17; X64-NEXT:  LBB0_1: ## %bb218; X64-NEXT:    movl $1, %eax19; X64-NEXT:    retq20;21; GISEL-X64-LABEL: icmp_eq_2:22; GISEL-X64:       ## %bb.0:23; GISEL-X64-NEXT:    cmpl %esi, %edi24; GISEL-X64-NEXT:    sete %al25; GISEL-X64-NEXT:    testb $1, %al26; GISEL-X64-NEXT:    je LBB0_127; GISEL-X64-NEXT:  ## %bb.2: ## %bb128; GISEL-X64-NEXT:    xorl %eax, %eax29; GISEL-X64-NEXT:    retq30; GISEL-X64-NEXT:  LBB0_1: ## %bb231; GISEL-X64-NEXT:    movl $1, %eax32; GISEL-X64-NEXT:    retq33;34; SDAG-X86-LABEL: icmp_eq_2:35; SDAG-X86:       ## %bb.0:36; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax37; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax38; SDAG-X86-NEXT:    jne LBB0_139; SDAG-X86-NEXT:  ## %bb.2: ## %bb140; SDAG-X86-NEXT:    xorl %eax, %eax41; SDAG-X86-NEXT:    retl42; SDAG-X86-NEXT:  LBB0_1: ## %bb243; SDAG-X86-NEXT:    movl $1, %eax44; SDAG-X86-NEXT:    retl45;46; FASTISEL-X86-LABEL: icmp_eq_2:47; FASTISEL-X86:       ## %bb.0:48; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax49; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)50; FASTISEL-X86-NEXT:    jne LBB0_151; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb152; FASTISEL-X86-NEXT:    xorl %eax, %eax53; FASTISEL-X86-NEXT:    retl54; FASTISEL-X86-NEXT:  LBB0_1: ## %bb255; FASTISEL-X86-NEXT:    movl $1, %eax56; FASTISEL-X86-NEXT:    retl57;58; GISEL-X86-LABEL: icmp_eq_2:59; GISEL-X86:       ## %bb.0:60; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax61; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)62; GISEL-X86-NEXT:    sete %al63; GISEL-X86-NEXT:    testb $1, %al64; GISEL-X86-NEXT:    je LBB0_165; GISEL-X86-NEXT:  ## %bb.2: ## %bb166; GISEL-X86-NEXT:    xorl %eax, %eax67; GISEL-X86-NEXT:    retl68; GISEL-X86-NEXT:  LBB0_1: ## %bb269; GISEL-X86-NEXT:    movl $1, %eax70; GISEL-X86-NEXT:    retl71  %1 = icmp eq i32 %x, %y72  br i1 %1, label %bb1, label %bb273bb2:74  ret i32 175bb1:76  ret i32 077}78 79define i32 @icmp_ne_2(i32 %x, i32 %y) {80; X64-LABEL: icmp_ne_2:81; X64:       ## %bb.0:82; X64-NEXT:    cmpl %esi, %edi83; X64-NEXT:    je LBB1_184; X64-NEXT:  ## %bb.2: ## %bb185; X64-NEXT:    xorl %eax, %eax86; X64-NEXT:    retq87; X64-NEXT:  LBB1_1: ## %bb288; X64-NEXT:    movl $1, %eax89; X64-NEXT:    retq90;91; GISEL-X64-LABEL: icmp_ne_2:92; GISEL-X64:       ## %bb.0:93; GISEL-X64-NEXT:    cmpl %esi, %edi94; GISEL-X64-NEXT:    setne %al95; GISEL-X64-NEXT:    testb $1, %al96; GISEL-X64-NEXT:    je LBB1_197; GISEL-X64-NEXT:  ## %bb.2: ## %bb198; GISEL-X64-NEXT:    xorl %eax, %eax99; GISEL-X64-NEXT:    retq100; GISEL-X64-NEXT:  LBB1_1: ## %bb2101; GISEL-X64-NEXT:    movl $1, %eax102; GISEL-X64-NEXT:    retq103;104; SDAG-X86-LABEL: icmp_ne_2:105; SDAG-X86:       ## %bb.0:106; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax107; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax108; SDAG-X86-NEXT:    je LBB1_1109; SDAG-X86-NEXT:  ## %bb.2: ## %bb1110; SDAG-X86-NEXT:    xorl %eax, %eax111; SDAG-X86-NEXT:    retl112; SDAG-X86-NEXT:  LBB1_1: ## %bb2113; SDAG-X86-NEXT:    movl $1, %eax114; SDAG-X86-NEXT:    retl115;116; FASTISEL-X86-LABEL: icmp_ne_2:117; FASTISEL-X86:       ## %bb.0:118; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax119; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)120; FASTISEL-X86-NEXT:    je LBB1_1121; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1122; FASTISEL-X86-NEXT:    xorl %eax, %eax123; FASTISEL-X86-NEXT:    retl124; FASTISEL-X86-NEXT:  LBB1_1: ## %bb2125; FASTISEL-X86-NEXT:    movl $1, %eax126; FASTISEL-X86-NEXT:    retl127;128; GISEL-X86-LABEL: icmp_ne_2:129; GISEL-X86:       ## %bb.0:130; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax131; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)132; GISEL-X86-NEXT:    setne %al133; GISEL-X86-NEXT:    testb $1, %al134; GISEL-X86-NEXT:    je LBB1_1135; GISEL-X86-NEXT:  ## %bb.2: ## %bb1136; GISEL-X86-NEXT:    xorl %eax, %eax137; GISEL-X86-NEXT:    retl138; GISEL-X86-NEXT:  LBB1_1: ## %bb2139; GISEL-X86-NEXT:    movl $1, %eax140; GISEL-X86-NEXT:    retl141  %1 = icmp ne i32 %x, %y142  br i1 %1, label %bb1, label %bb2143bb2:144  ret i32 1145bb1:146  ret i32 0147}148 149define i32 @icmp_ugt_2(i32 %x, i32 %y) {150; X64-LABEL: icmp_ugt_2:151; X64:       ## %bb.0:152; X64-NEXT:    cmpl %esi, %edi153; X64-NEXT:    jbe LBB2_1154; X64-NEXT:  ## %bb.2: ## %bb1155; X64-NEXT:    xorl %eax, %eax156; X64-NEXT:    retq157; X64-NEXT:  LBB2_1: ## %bb2158; X64-NEXT:    movl $1, %eax159; X64-NEXT:    retq160;161; GISEL-X64-LABEL: icmp_ugt_2:162; GISEL-X64:       ## %bb.0:163; GISEL-X64-NEXT:    cmpl %esi, %edi164; GISEL-X64-NEXT:    seta %al165; GISEL-X64-NEXT:    testb $1, %al166; GISEL-X64-NEXT:    je LBB2_1167; GISEL-X64-NEXT:  ## %bb.2: ## %bb1168; GISEL-X64-NEXT:    xorl %eax, %eax169; GISEL-X64-NEXT:    retq170; GISEL-X64-NEXT:  LBB2_1: ## %bb2171; GISEL-X64-NEXT:    movl $1, %eax172; GISEL-X64-NEXT:    retq173;174; SDAG-X86-LABEL: icmp_ugt_2:175; SDAG-X86:       ## %bb.0:176; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax177; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax178; SDAG-X86-NEXT:    jbe LBB2_1179; SDAG-X86-NEXT:  ## %bb.2: ## %bb1180; SDAG-X86-NEXT:    xorl %eax, %eax181; SDAG-X86-NEXT:    retl182; SDAG-X86-NEXT:  LBB2_1: ## %bb2183; SDAG-X86-NEXT:    movl $1, %eax184; SDAG-X86-NEXT:    retl185;186; FASTISEL-X86-LABEL: icmp_ugt_2:187; FASTISEL-X86:       ## %bb.0:188; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax189; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)190; FASTISEL-X86-NEXT:    jbe LBB2_1191; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1192; FASTISEL-X86-NEXT:    xorl %eax, %eax193; FASTISEL-X86-NEXT:    retl194; FASTISEL-X86-NEXT:  LBB2_1: ## %bb2195; FASTISEL-X86-NEXT:    movl $1, %eax196; FASTISEL-X86-NEXT:    retl197;198; GISEL-X86-LABEL: icmp_ugt_2:199; GISEL-X86:       ## %bb.0:200; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax201; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)202; GISEL-X86-NEXT:    seta %al203; GISEL-X86-NEXT:    testb $1, %al204; GISEL-X86-NEXT:    je LBB2_1205; GISEL-X86-NEXT:  ## %bb.2: ## %bb1206; GISEL-X86-NEXT:    xorl %eax, %eax207; GISEL-X86-NEXT:    retl208; GISEL-X86-NEXT:  LBB2_1: ## %bb2209; GISEL-X86-NEXT:    movl $1, %eax210; GISEL-X86-NEXT:    retl211  %1 = icmp ugt i32 %x, %y212  br i1 %1, label %bb1, label %bb2213bb2:214  ret i32 1215bb1:216  ret i32 0217}218 219define i32 @icmp_uge_2(i32 %x, i32 %y) {220; X64-LABEL: icmp_uge_2:221; X64:       ## %bb.0:222; X64-NEXT:    cmpl %esi, %edi223; X64-NEXT:    jb LBB3_1224; X64-NEXT:  ## %bb.2: ## %bb1225; X64-NEXT:    xorl %eax, %eax226; X64-NEXT:    retq227; X64-NEXT:  LBB3_1: ## %bb2228; X64-NEXT:    movl $1, %eax229; X64-NEXT:    retq230;231; GISEL-X64-LABEL: icmp_uge_2:232; GISEL-X64:       ## %bb.0:233; GISEL-X64-NEXT:    cmpl %esi, %edi234; GISEL-X64-NEXT:    setae %al235; GISEL-X64-NEXT:    testb $1, %al236; GISEL-X64-NEXT:    je LBB3_1237; GISEL-X64-NEXT:  ## %bb.2: ## %bb1238; GISEL-X64-NEXT:    xorl %eax, %eax239; GISEL-X64-NEXT:    retq240; GISEL-X64-NEXT:  LBB3_1: ## %bb2241; GISEL-X64-NEXT:    movl $1, %eax242; GISEL-X64-NEXT:    retq243;244; SDAG-X86-LABEL: icmp_uge_2:245; SDAG-X86:       ## %bb.0:246; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax247; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax248; SDAG-X86-NEXT:    jb LBB3_1249; SDAG-X86-NEXT:  ## %bb.2: ## %bb1250; SDAG-X86-NEXT:    xorl %eax, %eax251; SDAG-X86-NEXT:    retl252; SDAG-X86-NEXT:  LBB3_1: ## %bb2253; SDAG-X86-NEXT:    movl $1, %eax254; SDAG-X86-NEXT:    retl255;256; FASTISEL-X86-LABEL: icmp_uge_2:257; FASTISEL-X86:       ## %bb.0:258; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax259; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)260; FASTISEL-X86-NEXT:    jb LBB3_1261; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1262; FASTISEL-X86-NEXT:    xorl %eax, %eax263; FASTISEL-X86-NEXT:    retl264; FASTISEL-X86-NEXT:  LBB3_1: ## %bb2265; FASTISEL-X86-NEXT:    movl $1, %eax266; FASTISEL-X86-NEXT:    retl267;268; GISEL-X86-LABEL: icmp_uge_2:269; GISEL-X86:       ## %bb.0:270; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax271; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)272; GISEL-X86-NEXT:    setae %al273; GISEL-X86-NEXT:    testb $1, %al274; GISEL-X86-NEXT:    je LBB3_1275; GISEL-X86-NEXT:  ## %bb.2: ## %bb1276; GISEL-X86-NEXT:    xorl %eax, %eax277; GISEL-X86-NEXT:    retl278; GISEL-X86-NEXT:  LBB3_1: ## %bb2279; GISEL-X86-NEXT:    movl $1, %eax280; GISEL-X86-NEXT:    retl281  %1 = icmp uge i32 %x, %y282  br i1 %1, label %bb1, label %bb2283bb2:284  ret i32 1285bb1:286  ret i32 0287}288 289define i32 @icmp_ult_2(i32 %x, i32 %y) {290; X64-LABEL: icmp_ult_2:291; X64:       ## %bb.0:292; X64-NEXT:    cmpl %esi, %edi293; X64-NEXT:    jae LBB4_1294; X64-NEXT:  ## %bb.2: ## %bb1295; X64-NEXT:    xorl %eax, %eax296; X64-NEXT:    retq297; X64-NEXT:  LBB4_1: ## %bb2298; X64-NEXT:    movl $1, %eax299; X64-NEXT:    retq300;301; GISEL-X64-LABEL: icmp_ult_2:302; GISEL-X64:       ## %bb.0:303; GISEL-X64-NEXT:    cmpl %esi, %edi304; GISEL-X64-NEXT:    setb %al305; GISEL-X64-NEXT:    testb $1, %al306; GISEL-X64-NEXT:    je LBB4_1307; GISEL-X64-NEXT:  ## %bb.2: ## %bb1308; GISEL-X64-NEXT:    xorl %eax, %eax309; GISEL-X64-NEXT:    retq310; GISEL-X64-NEXT:  LBB4_1: ## %bb2311; GISEL-X64-NEXT:    movl $1, %eax312; GISEL-X64-NEXT:    retq313;314; SDAG-X86-LABEL: icmp_ult_2:315; SDAG-X86:       ## %bb.0:316; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax317; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax318; SDAG-X86-NEXT:    jae LBB4_1319; SDAG-X86-NEXT:  ## %bb.2: ## %bb1320; SDAG-X86-NEXT:    xorl %eax, %eax321; SDAG-X86-NEXT:    retl322; SDAG-X86-NEXT:  LBB4_1: ## %bb2323; SDAG-X86-NEXT:    movl $1, %eax324; SDAG-X86-NEXT:    retl325;326; FASTISEL-X86-LABEL: icmp_ult_2:327; FASTISEL-X86:       ## %bb.0:328; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax329; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)330; FASTISEL-X86-NEXT:    jae LBB4_1331; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1332; FASTISEL-X86-NEXT:    xorl %eax, %eax333; FASTISEL-X86-NEXT:    retl334; FASTISEL-X86-NEXT:  LBB4_1: ## %bb2335; FASTISEL-X86-NEXT:    movl $1, %eax336; FASTISEL-X86-NEXT:    retl337;338; GISEL-X86-LABEL: icmp_ult_2:339; GISEL-X86:       ## %bb.0:340; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax341; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)342; GISEL-X86-NEXT:    setb %al343; GISEL-X86-NEXT:    testb $1, %al344; GISEL-X86-NEXT:    je LBB4_1345; GISEL-X86-NEXT:  ## %bb.2: ## %bb1346; GISEL-X86-NEXT:    xorl %eax, %eax347; GISEL-X86-NEXT:    retl348; GISEL-X86-NEXT:  LBB4_1: ## %bb2349; GISEL-X86-NEXT:    movl $1, %eax350; GISEL-X86-NEXT:    retl351  %1 = icmp ult i32 %x, %y352  br i1 %1, label %bb1, label %bb2353bb2:354  ret i32 1355bb1:356  ret i32 0357}358 359define i32 @icmp_ule_2(i32 %x, i32 %y) {360; X64-LABEL: icmp_ule_2:361; X64:       ## %bb.0:362; X64-NEXT:    cmpl %esi, %edi363; X64-NEXT:    ja LBB5_1364; X64-NEXT:  ## %bb.2: ## %bb1365; X64-NEXT:    xorl %eax, %eax366; X64-NEXT:    retq367; X64-NEXT:  LBB5_1: ## %bb2368; X64-NEXT:    movl $1, %eax369; X64-NEXT:    retq370;371; GISEL-X64-LABEL: icmp_ule_2:372; GISEL-X64:       ## %bb.0:373; GISEL-X64-NEXT:    cmpl %esi, %edi374; GISEL-X64-NEXT:    setbe %al375; GISEL-X64-NEXT:    testb $1, %al376; GISEL-X64-NEXT:    je LBB5_1377; GISEL-X64-NEXT:  ## %bb.2: ## %bb1378; GISEL-X64-NEXT:    xorl %eax, %eax379; GISEL-X64-NEXT:    retq380; GISEL-X64-NEXT:  LBB5_1: ## %bb2381; GISEL-X64-NEXT:    movl $1, %eax382; GISEL-X64-NEXT:    retq383;384; SDAG-X86-LABEL: icmp_ule_2:385; SDAG-X86:       ## %bb.0:386; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax387; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax388; SDAG-X86-NEXT:    ja LBB5_1389; SDAG-X86-NEXT:  ## %bb.2: ## %bb1390; SDAG-X86-NEXT:    xorl %eax, %eax391; SDAG-X86-NEXT:    retl392; SDAG-X86-NEXT:  LBB5_1: ## %bb2393; SDAG-X86-NEXT:    movl $1, %eax394; SDAG-X86-NEXT:    retl395;396; FASTISEL-X86-LABEL: icmp_ule_2:397; FASTISEL-X86:       ## %bb.0:398; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax399; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)400; FASTISEL-X86-NEXT:    ja LBB5_1401; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1402; FASTISEL-X86-NEXT:    xorl %eax, %eax403; FASTISEL-X86-NEXT:    retl404; FASTISEL-X86-NEXT:  LBB5_1: ## %bb2405; FASTISEL-X86-NEXT:    movl $1, %eax406; FASTISEL-X86-NEXT:    retl407;408; GISEL-X86-LABEL: icmp_ule_2:409; GISEL-X86:       ## %bb.0:410; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax411; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)412; GISEL-X86-NEXT:    setbe %al413; GISEL-X86-NEXT:    testb $1, %al414; GISEL-X86-NEXT:    je LBB5_1415; GISEL-X86-NEXT:  ## %bb.2: ## %bb1416; GISEL-X86-NEXT:    xorl %eax, %eax417; GISEL-X86-NEXT:    retl418; GISEL-X86-NEXT:  LBB5_1: ## %bb2419; GISEL-X86-NEXT:    movl $1, %eax420; GISEL-X86-NEXT:    retl421  %1 = icmp ule i32 %x, %y422  br i1 %1, label %bb1, label %bb2423bb2:424  ret i32 1425bb1:426  ret i32 0427}428 429define i32 @icmp_sgt_2(i32 %x, i32 %y) {430; X64-LABEL: icmp_sgt_2:431; X64:       ## %bb.0:432; X64-NEXT:    cmpl %esi, %edi433; X64-NEXT:    jle LBB6_1434; X64-NEXT:  ## %bb.2: ## %bb1435; X64-NEXT:    xorl %eax, %eax436; X64-NEXT:    retq437; X64-NEXT:  LBB6_1: ## %bb2438; X64-NEXT:    movl $1, %eax439; X64-NEXT:    retq440;441; GISEL-X64-LABEL: icmp_sgt_2:442; GISEL-X64:       ## %bb.0:443; GISEL-X64-NEXT:    cmpl %esi, %edi444; GISEL-X64-NEXT:    setg %al445; GISEL-X64-NEXT:    testb $1, %al446; GISEL-X64-NEXT:    je LBB6_1447; GISEL-X64-NEXT:  ## %bb.2: ## %bb1448; GISEL-X64-NEXT:    xorl %eax, %eax449; GISEL-X64-NEXT:    retq450; GISEL-X64-NEXT:  LBB6_1: ## %bb2451; GISEL-X64-NEXT:    movl $1, %eax452; GISEL-X64-NEXT:    retq453;454; SDAG-X86-LABEL: icmp_sgt_2:455; SDAG-X86:       ## %bb.0:456; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax457; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax458; SDAG-X86-NEXT:    jle LBB6_1459; SDAG-X86-NEXT:  ## %bb.2: ## %bb1460; SDAG-X86-NEXT:    xorl %eax, %eax461; SDAG-X86-NEXT:    retl462; SDAG-X86-NEXT:  LBB6_1: ## %bb2463; SDAG-X86-NEXT:    movl $1, %eax464; SDAG-X86-NEXT:    retl465;466; FASTISEL-X86-LABEL: icmp_sgt_2:467; FASTISEL-X86:       ## %bb.0:468; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax469; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)470; FASTISEL-X86-NEXT:    jle LBB6_1471; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1472; FASTISEL-X86-NEXT:    xorl %eax, %eax473; FASTISEL-X86-NEXT:    retl474; FASTISEL-X86-NEXT:  LBB6_1: ## %bb2475; FASTISEL-X86-NEXT:    movl $1, %eax476; FASTISEL-X86-NEXT:    retl477;478; GISEL-X86-LABEL: icmp_sgt_2:479; GISEL-X86:       ## %bb.0:480; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax481; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)482; GISEL-X86-NEXT:    setg %al483; GISEL-X86-NEXT:    testb $1, %al484; GISEL-X86-NEXT:    je LBB6_1485; GISEL-X86-NEXT:  ## %bb.2: ## %bb1486; GISEL-X86-NEXT:    xorl %eax, %eax487; GISEL-X86-NEXT:    retl488; GISEL-X86-NEXT:  LBB6_1: ## %bb2489; GISEL-X86-NEXT:    movl $1, %eax490; GISEL-X86-NEXT:    retl491  %1 = icmp sgt i32 %x, %y492  br i1 %1, label %bb1, label %bb2493bb2:494  ret i32 1495bb1:496  ret i32 0497}498 499define i32 @icmp_sge_2(i32 %x, i32 %y) {500; X64-LABEL: icmp_sge_2:501; X64:       ## %bb.0:502; X64-NEXT:    cmpl %esi, %edi503; X64-NEXT:    jl LBB7_1504; X64-NEXT:  ## %bb.2: ## %bb1505; X64-NEXT:    xorl %eax, %eax506; X64-NEXT:    retq507; X64-NEXT:  LBB7_1: ## %bb2508; X64-NEXT:    movl $1, %eax509; X64-NEXT:    retq510;511; GISEL-X64-LABEL: icmp_sge_2:512; GISEL-X64:       ## %bb.0:513; GISEL-X64-NEXT:    cmpl %esi, %edi514; GISEL-X64-NEXT:    setge %al515; GISEL-X64-NEXT:    testb $1, %al516; GISEL-X64-NEXT:    je LBB7_1517; GISEL-X64-NEXT:  ## %bb.2: ## %bb1518; GISEL-X64-NEXT:    xorl %eax, %eax519; GISEL-X64-NEXT:    retq520; GISEL-X64-NEXT:  LBB7_1: ## %bb2521; GISEL-X64-NEXT:    movl $1, %eax522; GISEL-X64-NEXT:    retq523;524; SDAG-X86-LABEL: icmp_sge_2:525; SDAG-X86:       ## %bb.0:526; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax527; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax528; SDAG-X86-NEXT:    jl LBB7_1529; SDAG-X86-NEXT:  ## %bb.2: ## %bb1530; SDAG-X86-NEXT:    xorl %eax, %eax531; SDAG-X86-NEXT:    retl532; SDAG-X86-NEXT:  LBB7_1: ## %bb2533; SDAG-X86-NEXT:    movl $1, %eax534; SDAG-X86-NEXT:    retl535;536; FASTISEL-X86-LABEL: icmp_sge_2:537; FASTISEL-X86:       ## %bb.0:538; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax539; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)540; FASTISEL-X86-NEXT:    jl LBB7_1541; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1542; FASTISEL-X86-NEXT:    xorl %eax, %eax543; FASTISEL-X86-NEXT:    retl544; FASTISEL-X86-NEXT:  LBB7_1: ## %bb2545; FASTISEL-X86-NEXT:    movl $1, %eax546; FASTISEL-X86-NEXT:    retl547;548; GISEL-X86-LABEL: icmp_sge_2:549; GISEL-X86:       ## %bb.0:550; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax551; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)552; GISEL-X86-NEXT:    setge %al553; GISEL-X86-NEXT:    testb $1, %al554; GISEL-X86-NEXT:    je LBB7_1555; GISEL-X86-NEXT:  ## %bb.2: ## %bb1556; GISEL-X86-NEXT:    xorl %eax, %eax557; GISEL-X86-NEXT:    retl558; GISEL-X86-NEXT:  LBB7_1: ## %bb2559; GISEL-X86-NEXT:    movl $1, %eax560; GISEL-X86-NEXT:    retl561  %1 = icmp sge i32 %x, %y562  br i1 %1, label %bb1, label %bb2563bb2:564  ret i32 1565bb1:566  ret i32 0567}568 569define i32 @icmp_slt_2(i32 %x, i32 %y) {570; X64-LABEL: icmp_slt_2:571; X64:       ## %bb.0:572; X64-NEXT:    cmpl %esi, %edi573; X64-NEXT:    jge LBB8_1574; X64-NEXT:  ## %bb.2: ## %bb1575; X64-NEXT:    xorl %eax, %eax576; X64-NEXT:    retq577; X64-NEXT:  LBB8_1: ## %bb2578; X64-NEXT:    movl $1, %eax579; X64-NEXT:    retq580;581; GISEL-X64-LABEL: icmp_slt_2:582; GISEL-X64:       ## %bb.0:583; GISEL-X64-NEXT:    cmpl %esi, %edi584; GISEL-X64-NEXT:    setl %al585; GISEL-X64-NEXT:    testb $1, %al586; GISEL-X64-NEXT:    je LBB8_1587; GISEL-X64-NEXT:  ## %bb.2: ## %bb1588; GISEL-X64-NEXT:    xorl %eax, %eax589; GISEL-X64-NEXT:    retq590; GISEL-X64-NEXT:  LBB8_1: ## %bb2591; GISEL-X64-NEXT:    movl $1, %eax592; GISEL-X64-NEXT:    retq593;594; SDAG-X86-LABEL: icmp_slt_2:595; SDAG-X86:       ## %bb.0:596; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax597; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax598; SDAG-X86-NEXT:    jge LBB8_1599; SDAG-X86-NEXT:  ## %bb.2: ## %bb1600; SDAG-X86-NEXT:    xorl %eax, %eax601; SDAG-X86-NEXT:    retl602; SDAG-X86-NEXT:  LBB8_1: ## %bb2603; SDAG-X86-NEXT:    movl $1, %eax604; SDAG-X86-NEXT:    retl605;606; FASTISEL-X86-LABEL: icmp_slt_2:607; FASTISEL-X86:       ## %bb.0:608; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax609; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)610; FASTISEL-X86-NEXT:    jge LBB8_1611; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1612; FASTISEL-X86-NEXT:    xorl %eax, %eax613; FASTISEL-X86-NEXT:    retl614; FASTISEL-X86-NEXT:  LBB8_1: ## %bb2615; FASTISEL-X86-NEXT:    movl $1, %eax616; FASTISEL-X86-NEXT:    retl617;618; GISEL-X86-LABEL: icmp_slt_2:619; GISEL-X86:       ## %bb.0:620; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax621; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)622; GISEL-X86-NEXT:    setl %al623; GISEL-X86-NEXT:    testb $1, %al624; GISEL-X86-NEXT:    je LBB8_1625; GISEL-X86-NEXT:  ## %bb.2: ## %bb1626; GISEL-X86-NEXT:    xorl %eax, %eax627; GISEL-X86-NEXT:    retl628; GISEL-X86-NEXT:  LBB8_1: ## %bb2629; GISEL-X86-NEXT:    movl $1, %eax630; GISEL-X86-NEXT:    retl631  %1 = icmp slt i32 %x, %y632  br i1 %1, label %bb1, label %bb2633bb2:634  ret i32 1635bb1:636  ret i32 0637}638 639define i32 @icmp_sle_2(i32 %x, i32 %y) {640; X64-LABEL: icmp_sle_2:641; X64:       ## %bb.0:642; X64-NEXT:    cmpl %esi, %edi643; X64-NEXT:    jg LBB9_1644; X64-NEXT:  ## %bb.2: ## %bb1645; X64-NEXT:    xorl %eax, %eax646; X64-NEXT:    retq647; X64-NEXT:  LBB9_1: ## %bb2648; X64-NEXT:    movl $1, %eax649; X64-NEXT:    retq650;651; GISEL-X64-LABEL: icmp_sle_2:652; GISEL-X64:       ## %bb.0:653; GISEL-X64-NEXT:    cmpl %esi, %edi654; GISEL-X64-NEXT:    setle %al655; GISEL-X64-NEXT:    testb $1, %al656; GISEL-X64-NEXT:    je LBB9_1657; GISEL-X64-NEXT:  ## %bb.2: ## %bb1658; GISEL-X64-NEXT:    xorl %eax, %eax659; GISEL-X64-NEXT:    retq660; GISEL-X64-NEXT:  LBB9_1: ## %bb2661; GISEL-X64-NEXT:    movl $1, %eax662; GISEL-X64-NEXT:    retq663;664; SDAG-X86-LABEL: icmp_sle_2:665; SDAG-X86:       ## %bb.0:666; SDAG-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax667; SDAG-X86-NEXT:    cmpl {{[0-9]+}}(%esp), %eax668; SDAG-X86-NEXT:    jg LBB9_1669; SDAG-X86-NEXT:  ## %bb.2: ## %bb1670; SDAG-X86-NEXT:    xorl %eax, %eax671; SDAG-X86-NEXT:    retl672; SDAG-X86-NEXT:  LBB9_1: ## %bb2673; SDAG-X86-NEXT:    movl $1, %eax674; SDAG-X86-NEXT:    retl675;676; FASTISEL-X86-LABEL: icmp_sle_2:677; FASTISEL-X86:       ## %bb.0:678; FASTISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax679; FASTISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)680; FASTISEL-X86-NEXT:    jg LBB9_1681; FASTISEL-X86-NEXT:  ## %bb.2: ## %bb1682; FASTISEL-X86-NEXT:    xorl %eax, %eax683; FASTISEL-X86-NEXT:    retl684; FASTISEL-X86-NEXT:  LBB9_1: ## %bb2685; FASTISEL-X86-NEXT:    movl $1, %eax686; FASTISEL-X86-NEXT:    retl687;688; GISEL-X86-LABEL: icmp_sle_2:689; GISEL-X86:       ## %bb.0:690; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax691; GISEL-X86-NEXT:    cmpl %eax, {{[0-9]+}}(%esp)692; GISEL-X86-NEXT:    setle %al693; GISEL-X86-NEXT:    testb $1, %al694; GISEL-X86-NEXT:    je LBB9_1695; GISEL-X86-NEXT:  ## %bb.2: ## %bb1696; GISEL-X86-NEXT:    xorl %eax, %eax697; GISEL-X86-NEXT:    retl698; GISEL-X86-NEXT:  LBB9_1: ## %bb2699; GISEL-X86-NEXT:    movl $1, %eax700; GISEL-X86-NEXT:    retl701  %1 = icmp sle i32 %x, %y702  br i1 %1, label %bb1, label %bb2703bb2:704  ret i32 1705bb1:706  ret i32 0707}708 709define i32 @icmp_eq(i32 %x) {710; SDAG-LABEL: icmp_eq:711; SDAG:       ## %bb.0:712; SDAG-NEXT:    movb $1, %al713; SDAG-NEXT:    testb %al, %al714; SDAG-NEXT:    je LBB10_1715; SDAG-NEXT:  ## %bb.2: ## %bb1716; SDAG-NEXT:    xorl %eax, %eax717; SDAG-NEXT:    ret{{[l|q]}}718; SDAG-NEXT:  LBB10_1: ## %bb2719; SDAG-NEXT:    movl $1, %eax720; SDAG-NEXT:    ret{{[l|q]}}721;722; FASTISEL-LABEL: icmp_eq:723; FASTISEL:       ## %bb.0:724; FASTISEL-NEXT:    xorl %eax, %eax725; FASTISEL-NEXT:    ret{{[l|q]}}726;727; GISEL-X64-LABEL: icmp_eq:728; GISEL-X64:       ## %bb.0:729; GISEL-X64-NEXT:    cmpl %edi, %edi730; GISEL-X64-NEXT:    sete %al731; GISEL-X64-NEXT:    testb $1, %al732; GISEL-X64-NEXT:    je LBB10_1733; GISEL-X64-NEXT:  ## %bb.2: ## %bb1734; GISEL-X64-NEXT:    xorl %eax, %eax735; GISEL-X64-NEXT:    retq736; GISEL-X64-NEXT:  LBB10_1: ## %bb2737; GISEL-X64-NEXT:    movl $1, %eax738; GISEL-X64-NEXT:    retq739;740; GISEL-X86-LABEL: icmp_eq:741; GISEL-X86:       ## %bb.0:742; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax743; GISEL-X86-NEXT:    cmpl %eax, %eax744; GISEL-X86-NEXT:    sete %al745; GISEL-X86-NEXT:    testb $1, %al746; GISEL-X86-NEXT:    je LBB10_1747; GISEL-X86-NEXT:  ## %bb.2: ## %bb1748; GISEL-X86-NEXT:    xorl %eax, %eax749; GISEL-X86-NEXT:    retl750; GISEL-X86-NEXT:  LBB10_1: ## %bb2751; GISEL-X86-NEXT:    movl $1, %eax752; GISEL-X86-NEXT:    retl753  %1 = icmp eq i32 %x, %x754  br i1 %1, label %bb1, label %bb2755bb2:756  ret i32 1757bb1:758  ret i32 0759}760 761define i32 @icmp_ne(i32 %x) {762; SDAG-LABEL: icmp_ne:763; SDAG:       ## %bb.0:764; SDAG-NEXT:    xorl %eax, %eax765; SDAG-NEXT:    testb %al, %al766; SDAG-NEXT:    je LBB11_1767; SDAG-NEXT:  ## %bb.2: ## %bb1768; SDAG-NEXT:    xorl %eax, %eax769; SDAG-NEXT:    ret{{[l|q]}}770; SDAG-NEXT:  LBB11_1: ## %bb2771; SDAG-NEXT:    movl $1, %eax772; SDAG-NEXT:    ret{{[l|q]}}773;774; FASTISEL-LABEL: icmp_ne:775; FASTISEL:       ## %bb.0:776; FASTISEL-NEXT:    movl $1, %eax777; FASTISEL-NEXT:    ret{{[l|q]}}778;779; GISEL-X64-LABEL: icmp_ne:780; GISEL-X64:       ## %bb.0:781; GISEL-X64-NEXT:    cmpl %edi, %edi782; GISEL-X64-NEXT:    setne %al783; GISEL-X64-NEXT:    testb $1, %al784; GISEL-X64-NEXT:    je LBB11_1785; GISEL-X64-NEXT:  ## %bb.2: ## %bb1786; GISEL-X64-NEXT:    xorl %eax, %eax787; GISEL-X64-NEXT:    retq788; GISEL-X64-NEXT:  LBB11_1: ## %bb2789; GISEL-X64-NEXT:    movl $1, %eax790; GISEL-X64-NEXT:    retq791;792; GISEL-X86-LABEL: icmp_ne:793; GISEL-X86:       ## %bb.0:794; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax795; GISEL-X86-NEXT:    cmpl %eax, %eax796; GISEL-X86-NEXT:    setne %al797; GISEL-X86-NEXT:    testb $1, %al798; GISEL-X86-NEXT:    je LBB11_1799; GISEL-X86-NEXT:  ## %bb.2: ## %bb1800; GISEL-X86-NEXT:    xorl %eax, %eax801; GISEL-X86-NEXT:    retl802; GISEL-X86-NEXT:  LBB11_1: ## %bb2803; GISEL-X86-NEXT:    movl $1, %eax804; GISEL-X86-NEXT:    retl805  %1 = icmp ne i32 %x, %x806  br i1 %1, label %bb1, label %bb2807bb2:808  ret i32 1809bb1:810  ret i32 0811}812 813define i32 @icmp_ugt(i32 %x) {814; SDAG-LABEL: icmp_ugt:815; SDAG:       ## %bb.0:816; SDAG-NEXT:    xorl %eax, %eax817; SDAG-NEXT:    testb %al, %al818; SDAG-NEXT:    je LBB12_1819; SDAG-NEXT:  ## %bb.2: ## %bb1820; SDAG-NEXT:    xorl %eax, %eax821; SDAG-NEXT:    ret{{[l|q]}}822; SDAG-NEXT:  LBB12_1: ## %bb2823; SDAG-NEXT:    movl $1, %eax824; SDAG-NEXT:    ret{{[l|q]}}825;826; FASTISEL-LABEL: icmp_ugt:827; FASTISEL:       ## %bb.0:828; FASTISEL-NEXT:    movl $1, %eax829; FASTISEL-NEXT:    ret{{[l|q]}}830;831; GISEL-X64-LABEL: icmp_ugt:832; GISEL-X64:       ## %bb.0:833; GISEL-X64-NEXT:    cmpl %edi, %edi834; GISEL-X64-NEXT:    seta %al835; GISEL-X64-NEXT:    testb $1, %al836; GISEL-X64-NEXT:    je LBB12_1837; GISEL-X64-NEXT:  ## %bb.2: ## %bb1838; GISEL-X64-NEXT:    xorl %eax, %eax839; GISEL-X64-NEXT:    retq840; GISEL-X64-NEXT:  LBB12_1: ## %bb2841; GISEL-X64-NEXT:    movl $1, %eax842; GISEL-X64-NEXT:    retq843;844; GISEL-X86-LABEL: icmp_ugt:845; GISEL-X86:       ## %bb.0:846; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax847; GISEL-X86-NEXT:    cmpl %eax, %eax848; GISEL-X86-NEXT:    seta %al849; GISEL-X86-NEXT:    testb $1, %al850; GISEL-X86-NEXT:    je LBB12_1851; GISEL-X86-NEXT:  ## %bb.2: ## %bb1852; GISEL-X86-NEXT:    xorl %eax, %eax853; GISEL-X86-NEXT:    retl854; GISEL-X86-NEXT:  LBB12_1: ## %bb2855; GISEL-X86-NEXT:    movl $1, %eax856; GISEL-X86-NEXT:    retl857  %1 = icmp ugt i32 %x, %x858  br i1 %1, label %bb1, label %bb2859bb2:860  ret i32 1861bb1:862  ret i32 0863}864 865define i32 @icmp_uge(i32 %x) {866; SDAG-LABEL: icmp_uge:867; SDAG:       ## %bb.0:868; SDAG-NEXT:    movb $1, %al869; SDAG-NEXT:    testb %al, %al870; SDAG-NEXT:    je LBB13_1871; SDAG-NEXT:  ## %bb.2: ## %bb1872; SDAG-NEXT:    xorl %eax, %eax873; SDAG-NEXT:    ret{{[l|q]}}874; SDAG-NEXT:  LBB13_1: ## %bb2875; SDAG-NEXT:    movl $1, %eax876; SDAG-NEXT:    ret{{[l|q]}}877;878; FASTISEL-LABEL: icmp_uge:879; FASTISEL:       ## %bb.0:880; FASTISEL-NEXT:    xorl %eax, %eax881; FASTISEL-NEXT:    ret{{[l|q]}}882;883; GISEL-X64-LABEL: icmp_uge:884; GISEL-X64:       ## %bb.0:885; GISEL-X64-NEXT:    cmpl %edi, %edi886; GISEL-X64-NEXT:    setae %al887; GISEL-X64-NEXT:    testb $1, %al888; GISEL-X64-NEXT:    je LBB13_1889; GISEL-X64-NEXT:  ## %bb.2: ## %bb1890; GISEL-X64-NEXT:    xorl %eax, %eax891; GISEL-X64-NEXT:    retq892; GISEL-X64-NEXT:  LBB13_1: ## %bb2893; GISEL-X64-NEXT:    movl $1, %eax894; GISEL-X64-NEXT:    retq895;896; GISEL-X86-LABEL: icmp_uge:897; GISEL-X86:       ## %bb.0:898; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax899; GISEL-X86-NEXT:    cmpl %eax, %eax900; GISEL-X86-NEXT:    setae %al901; GISEL-X86-NEXT:    testb $1, %al902; GISEL-X86-NEXT:    je LBB13_1903; GISEL-X86-NEXT:  ## %bb.2: ## %bb1904; GISEL-X86-NEXT:    xorl %eax, %eax905; GISEL-X86-NEXT:    retl906; GISEL-X86-NEXT:  LBB13_1: ## %bb2907; GISEL-X86-NEXT:    movl $1, %eax908; GISEL-X86-NEXT:    retl909  %1 = icmp uge i32 %x, %x910  br i1 %1, label %bb1, label %bb2911bb2:912  ret i32 1913bb1:914  ret i32 0915}916 917define i32 @icmp_ult(i32 %x) {918; SDAG-LABEL: icmp_ult:919; SDAG:       ## %bb.0:920; SDAG-NEXT:    xorl %eax, %eax921; SDAG-NEXT:    testb %al, %al922; SDAG-NEXT:    je LBB14_1923; SDAG-NEXT:  ## %bb.2: ## %bb1924; SDAG-NEXT:    xorl %eax, %eax925; SDAG-NEXT:    ret{{[l|q]}}926; SDAG-NEXT:  LBB14_1: ## %bb2927; SDAG-NEXT:    movl $1, %eax928; SDAG-NEXT:    ret{{[l|q]}}929;930; FASTISEL-LABEL: icmp_ult:931; FASTISEL:       ## %bb.0:932; FASTISEL-NEXT:    movl $1, %eax933; FASTISEL-NEXT:    ret{{[l|q]}}934;935; GISEL-X64-LABEL: icmp_ult:936; GISEL-X64:       ## %bb.0:937; GISEL-X64-NEXT:    cmpl %edi, %edi938; GISEL-X64-NEXT:    setb %al939; GISEL-X64-NEXT:    testb $1, %al940; GISEL-X64-NEXT:    je LBB14_1941; GISEL-X64-NEXT:  ## %bb.2: ## %bb1942; GISEL-X64-NEXT:    xorl %eax, %eax943; GISEL-X64-NEXT:    retq944; GISEL-X64-NEXT:  LBB14_1: ## %bb2945; GISEL-X64-NEXT:    movl $1, %eax946; GISEL-X64-NEXT:    retq947;948; GISEL-X86-LABEL: icmp_ult:949; GISEL-X86:       ## %bb.0:950; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax951; GISEL-X86-NEXT:    cmpl %eax, %eax952; GISEL-X86-NEXT:    setb %al953; GISEL-X86-NEXT:    testb $1, %al954; GISEL-X86-NEXT:    je LBB14_1955; GISEL-X86-NEXT:  ## %bb.2: ## %bb1956; GISEL-X86-NEXT:    xorl %eax, %eax957; GISEL-X86-NEXT:    retl958; GISEL-X86-NEXT:  LBB14_1: ## %bb2959; GISEL-X86-NEXT:    movl $1, %eax960; GISEL-X86-NEXT:    retl961  %1 = icmp ult i32 %x, %x962  br i1 %1, label %bb1, label %bb2963bb2:964  ret i32 1965bb1:966  ret i32 0967}968 969define i32 @icmp_ule(i32 %x) {970; SDAG-LABEL: icmp_ule:971; SDAG:       ## %bb.0:972; SDAG-NEXT:    movb $1, %al973; SDAG-NEXT:    testb %al, %al974; SDAG-NEXT:    je LBB15_1975; SDAG-NEXT:  ## %bb.2: ## %bb1976; SDAG-NEXT:    xorl %eax, %eax977; SDAG-NEXT:    ret{{[l|q]}}978; SDAG-NEXT:  LBB15_1: ## %bb2979; SDAG-NEXT:    movl $1, %eax980; SDAG-NEXT:    ret{{[l|q]}}981;982; FASTISEL-LABEL: icmp_ule:983; FASTISEL:       ## %bb.0:984; FASTISEL-NEXT:    xorl %eax, %eax985; FASTISEL-NEXT:    ret{{[l|q]}}986;987; GISEL-X64-LABEL: icmp_ule:988; GISEL-X64:       ## %bb.0:989; GISEL-X64-NEXT:    cmpl %edi, %edi990; GISEL-X64-NEXT:    setbe %al991; GISEL-X64-NEXT:    testb $1, %al992; GISEL-X64-NEXT:    je LBB15_1993; GISEL-X64-NEXT:  ## %bb.2: ## %bb1994; GISEL-X64-NEXT:    xorl %eax, %eax995; GISEL-X64-NEXT:    retq996; GISEL-X64-NEXT:  LBB15_1: ## %bb2997; GISEL-X64-NEXT:    movl $1, %eax998; GISEL-X64-NEXT:    retq999;1000; GISEL-X86-LABEL: icmp_ule:1001; GISEL-X86:       ## %bb.0:1002; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax1003; GISEL-X86-NEXT:    cmpl %eax, %eax1004; GISEL-X86-NEXT:    setbe %al1005; GISEL-X86-NEXT:    testb $1, %al1006; GISEL-X86-NEXT:    je LBB15_11007; GISEL-X86-NEXT:  ## %bb.2: ## %bb11008; GISEL-X86-NEXT:    xorl %eax, %eax1009; GISEL-X86-NEXT:    retl1010; GISEL-X86-NEXT:  LBB15_1: ## %bb21011; GISEL-X86-NEXT:    movl $1, %eax1012; GISEL-X86-NEXT:    retl1013  %1 = icmp ule i32 %x, %x1014  br i1 %1, label %bb1, label %bb21015bb2:1016  ret i32 11017bb1:1018  ret i32 01019}1020 1021define i32 @icmp_sgt(i32 %x) {1022; SDAG-LABEL: icmp_sgt:1023; SDAG:       ## %bb.0:1024; SDAG-NEXT:    xorl %eax, %eax1025; SDAG-NEXT:    testb %al, %al1026; SDAG-NEXT:    je LBB16_11027; SDAG-NEXT:  ## %bb.2: ## %bb11028; SDAG-NEXT:    xorl %eax, %eax1029; SDAG-NEXT:    ret{{[l|q]}}1030; SDAG-NEXT:  LBB16_1: ## %bb21031; SDAG-NEXT:    movl $1, %eax1032; SDAG-NEXT:    ret{{[l|q]}}1033;1034; FASTISEL-LABEL: icmp_sgt:1035; FASTISEL:       ## %bb.0:1036; FASTISEL-NEXT:    movl $1, %eax1037; FASTISEL-NEXT:    ret{{[l|q]}}1038;1039; GISEL-X64-LABEL: icmp_sgt:1040; GISEL-X64:       ## %bb.0:1041; GISEL-X64-NEXT:    cmpl %edi, %edi1042; GISEL-X64-NEXT:    setg %al1043; GISEL-X64-NEXT:    testb $1, %al1044; GISEL-X64-NEXT:    je LBB16_11045; GISEL-X64-NEXT:  ## %bb.2: ## %bb11046; GISEL-X64-NEXT:    xorl %eax, %eax1047; GISEL-X64-NEXT:    retq1048; GISEL-X64-NEXT:  LBB16_1: ## %bb21049; GISEL-X64-NEXT:    movl $1, %eax1050; GISEL-X64-NEXT:    retq1051;1052; GISEL-X86-LABEL: icmp_sgt:1053; GISEL-X86:       ## %bb.0:1054; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax1055; GISEL-X86-NEXT:    cmpl %eax, %eax1056; GISEL-X86-NEXT:    setg %al1057; GISEL-X86-NEXT:    testb $1, %al1058; GISEL-X86-NEXT:    je LBB16_11059; GISEL-X86-NEXT:  ## %bb.2: ## %bb11060; GISEL-X86-NEXT:    xorl %eax, %eax1061; GISEL-X86-NEXT:    retl1062; GISEL-X86-NEXT:  LBB16_1: ## %bb21063; GISEL-X86-NEXT:    movl $1, %eax1064; GISEL-X86-NEXT:    retl1065  %1 = icmp sgt i32 %x, %x1066  br i1 %1, label %bb1, label %bb21067bb2:1068  ret i32 11069bb1:1070  ret i32 01071}1072 1073define i32 @icmp_sge(i32 %x) {1074; SDAG-LABEL: icmp_sge:1075; SDAG:       ## %bb.0:1076; SDAG-NEXT:    movb $1, %al1077; SDAG-NEXT:    testb %al, %al1078; SDAG-NEXT:    je LBB17_11079; SDAG-NEXT:  ## %bb.2: ## %bb11080; SDAG-NEXT:    xorl %eax, %eax1081; SDAG-NEXT:    ret{{[l|q]}}1082; SDAG-NEXT:  LBB17_1: ## %bb21083; SDAG-NEXT:    movl $1, %eax1084; SDAG-NEXT:    ret{{[l|q]}}1085;1086; FASTISEL-LABEL: icmp_sge:1087; FASTISEL:       ## %bb.0:1088; FASTISEL-NEXT:    xorl %eax, %eax1089; FASTISEL-NEXT:    ret{{[l|q]}}1090;1091; GISEL-X64-LABEL: icmp_sge:1092; GISEL-X64:       ## %bb.0:1093; GISEL-X64-NEXT:    cmpl %edi, %edi1094; GISEL-X64-NEXT:    setge %al1095; GISEL-X64-NEXT:    testb $1, %al1096; GISEL-X64-NEXT:    je LBB17_11097; GISEL-X64-NEXT:  ## %bb.2: ## %bb11098; GISEL-X64-NEXT:    xorl %eax, %eax1099; GISEL-X64-NEXT:    retq1100; GISEL-X64-NEXT:  LBB17_1: ## %bb21101; GISEL-X64-NEXT:    movl $1, %eax1102; GISEL-X64-NEXT:    retq1103;1104; GISEL-X86-LABEL: icmp_sge:1105; GISEL-X86:       ## %bb.0:1106; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax1107; GISEL-X86-NEXT:    cmpl %eax, %eax1108; GISEL-X86-NEXT:    setge %al1109; GISEL-X86-NEXT:    testb $1, %al1110; GISEL-X86-NEXT:    je LBB17_11111; GISEL-X86-NEXT:  ## %bb.2: ## %bb11112; GISEL-X86-NEXT:    xorl %eax, %eax1113; GISEL-X86-NEXT:    retl1114; GISEL-X86-NEXT:  LBB17_1: ## %bb21115; GISEL-X86-NEXT:    movl $1, %eax1116; GISEL-X86-NEXT:    retl1117  %1 = icmp sge i32 %x, %x1118  br i1 %1, label %bb1, label %bb21119bb2:1120  ret i32 11121bb1:1122  ret i32 01123}1124 1125define i32 @icmp_slt(i32 %x) {1126; SDAG-LABEL: icmp_slt:1127; SDAG:       ## %bb.0:1128; SDAG-NEXT:    xorl %eax, %eax1129; SDAG-NEXT:    testb %al, %al1130; SDAG-NEXT:    je LBB18_11131; SDAG-NEXT:  ## %bb.2: ## %bb11132; SDAG-NEXT:    xorl %eax, %eax1133; SDAG-NEXT:    ret{{[l|q]}}1134; SDAG-NEXT:  LBB18_1: ## %bb21135; SDAG-NEXT:    movl $1, %eax1136; SDAG-NEXT:    ret{{[l|q]}}1137;1138; FASTISEL-LABEL: icmp_slt:1139; FASTISEL:       ## %bb.0:1140; FASTISEL-NEXT:    movl $1, %eax1141; FASTISEL-NEXT:    ret{{[l|q]}}1142;1143; GISEL-X64-LABEL: icmp_slt:1144; GISEL-X64:       ## %bb.0:1145; GISEL-X64-NEXT:    cmpl %edi, %edi1146; GISEL-X64-NEXT:    setl %al1147; GISEL-X64-NEXT:    testb $1, %al1148; GISEL-X64-NEXT:    je LBB18_11149; GISEL-X64-NEXT:  ## %bb.2: ## %bb11150; GISEL-X64-NEXT:    xorl %eax, %eax1151; GISEL-X64-NEXT:    retq1152; GISEL-X64-NEXT:  LBB18_1: ## %bb21153; GISEL-X64-NEXT:    movl $1, %eax1154; GISEL-X64-NEXT:    retq1155;1156; GISEL-X86-LABEL: icmp_slt:1157; GISEL-X86:       ## %bb.0:1158; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax1159; GISEL-X86-NEXT:    cmpl %eax, %eax1160; GISEL-X86-NEXT:    setl %al1161; GISEL-X86-NEXT:    testb $1, %al1162; GISEL-X86-NEXT:    je LBB18_11163; GISEL-X86-NEXT:  ## %bb.2: ## %bb11164; GISEL-X86-NEXT:    xorl %eax, %eax1165; GISEL-X86-NEXT:    retl1166; GISEL-X86-NEXT:  LBB18_1: ## %bb21167; GISEL-X86-NEXT:    movl $1, %eax1168; GISEL-X86-NEXT:    retl1169  %1 = icmp slt i32 %x, %x1170  br i1 %1, label %bb1, label %bb21171bb2:1172  ret i32 11173bb1:1174  ret i32 01175}1176 1177define i32 @icmp_sle(i32 %x) {1178; SDAG-LABEL: icmp_sle:1179; SDAG:       ## %bb.0:1180; SDAG-NEXT:    movb $1, %al1181; SDAG-NEXT:    testb %al, %al1182; SDAG-NEXT:    je LBB19_11183; SDAG-NEXT:  ## %bb.2: ## %bb11184; SDAG-NEXT:    xorl %eax, %eax1185; SDAG-NEXT:    ret{{[l|q]}}1186; SDAG-NEXT:  LBB19_1: ## %bb21187; SDAG-NEXT:    movl $1, %eax1188; SDAG-NEXT:    ret{{[l|q]}}1189;1190; FASTISEL-LABEL: icmp_sle:1191; FASTISEL:       ## %bb.0:1192; FASTISEL-NEXT:    xorl %eax, %eax1193; FASTISEL-NEXT:    ret{{[l|q]}}1194;1195; GISEL-X64-LABEL: icmp_sle:1196; GISEL-X64:       ## %bb.0:1197; GISEL-X64-NEXT:    cmpl %edi, %edi1198; GISEL-X64-NEXT:    setle %al1199; GISEL-X64-NEXT:    testb $1, %al1200; GISEL-X64-NEXT:    je LBB19_11201; GISEL-X64-NEXT:  ## %bb.2: ## %bb11202; GISEL-X64-NEXT:    xorl %eax, %eax1203; GISEL-X64-NEXT:    retq1204; GISEL-X64-NEXT:  LBB19_1: ## %bb21205; GISEL-X64-NEXT:    movl $1, %eax1206; GISEL-X64-NEXT:    retq1207;1208; GISEL-X86-LABEL: icmp_sle:1209; GISEL-X86:       ## %bb.0:1210; GISEL-X86-NEXT:    movl {{[0-9]+}}(%esp), %eax1211; GISEL-X86-NEXT:    cmpl %eax, %eax1212; GISEL-X86-NEXT:    setle %al1213; GISEL-X86-NEXT:    testb $1, %al1214; GISEL-X86-NEXT:    je LBB19_11215; GISEL-X86-NEXT:  ## %bb.2: ## %bb11216; GISEL-X86-NEXT:    xorl %eax, %eax1217; GISEL-X86-NEXT:    retl1218; GISEL-X86-NEXT:  LBB19_1: ## %bb21219; GISEL-X86-NEXT:    movl $1, %eax1220; GISEL-X86-NEXT:    retl1221  %1 = icmp sle i32 %x, %x1222  br i1 %1, label %bb1, label %bb21223bb2:1224  ret i32 11225bb1:1226  ret i32 01227}1228;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:1229; X86: {{.*}}1230