brintos

brintos / llvm-project-archived public Read only

0
0
Text · 15.3 KiB · 67d62ec Raw
601 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 -mattr=+d < %s | FileCheck %s --check-prefix=LA323; RUN: llc --mtriple=loongarch64 -mattr=+d < %s | FileCheck %s --check-prefix=LA644 5define i1 @andn_icmp_eq_i8(i8 signext %a, i8 signext %b) nounwind {6; LA32-LABEL: andn_icmp_eq_i8:7; LA32:       # %bb.0:8; LA32-NEXT:    andn $a0, $a1, $a09; LA32-NEXT:    sltui $a0, $a0, 110; LA32-NEXT:    ret11;12; LA64-LABEL: andn_icmp_eq_i8:13; LA64:       # %bb.0:14; LA64-NEXT:    andn $a0, $a1, $a015; LA64-NEXT:    sltui $a0, $a0, 116; LA64-NEXT:    ret17  %and = and i8 %a, %b18  %cmpeq = icmp eq i8 %and, %b19  ret i1 %cmpeq20}21 22define i1 @andn_icmp_eq_i16(i16 signext %a, i16 signext %b) nounwind {23; LA32-LABEL: andn_icmp_eq_i16:24; LA32:       # %bb.0:25; LA32-NEXT:    andn $a0, $a1, $a026; LA32-NEXT:    sltui $a0, $a0, 127; LA32-NEXT:    ret28;29; LA64-LABEL: andn_icmp_eq_i16:30; LA64:       # %bb.0:31; LA64-NEXT:    andn $a0, $a1, $a032; LA64-NEXT:    sltui $a0, $a0, 133; LA64-NEXT:    ret34  %and = and i16 %a, %b35  %cmpeq = icmp eq i16 %and, %b36  ret i1 %cmpeq37}38 39define i1 @andn_icmp_eq_i32(i32 signext %a, i32 signext %b) nounwind {40; LA32-LABEL: andn_icmp_eq_i32:41; LA32:       # %bb.0:42; LA32-NEXT:    andn $a0, $a1, $a043; LA32-NEXT:    sltui $a0, $a0, 144; LA32-NEXT:    ret45;46; LA64-LABEL: andn_icmp_eq_i32:47; LA64:       # %bb.0:48; LA64-NEXT:    andn $a0, $a1, $a049; LA64-NEXT:    sltui $a0, $a0, 150; LA64-NEXT:    ret51  %and = and i32 %a, %b52  %cmpeq = icmp eq i32 %and, %b53  ret i1 %cmpeq54}55 56define i1 @andn_icmp_eq_i64(i64 %a, i64 %b) nounwind {57; LA32-LABEL: andn_icmp_eq_i64:58; LA32:       # %bb.0:59; LA32-NEXT:    andn $a1, $a3, $a160; LA32-NEXT:    andn $a0, $a2, $a061; LA32-NEXT:    or $a0, $a0, $a162; LA32-NEXT:    sltui $a0, $a0, 163; LA32-NEXT:    ret64;65; LA64-LABEL: andn_icmp_eq_i64:66; LA64:       # %bb.0:67; LA64-NEXT:    andn $a0, $a1, $a068; LA64-NEXT:    sltui $a0, $a0, 169; LA64-NEXT:    ret70  %and = and i64 %a, %b71  %cmpeq = icmp eq i64 %and, %b72  ret i1 %cmpeq73}74 75define i1 @andn_icmp_ne_i8(i8 signext %a, i8 signext %b) nounwind {76; LA32-LABEL: andn_icmp_ne_i8:77; LA32:       # %bb.0:78; LA32-NEXT:    andn $a0, $a1, $a079; LA32-NEXT:    sltu $a0, $zero, $a080; LA32-NEXT:    ret81;82; LA64-LABEL: andn_icmp_ne_i8:83; LA64:       # %bb.0:84; LA64-NEXT:    andn $a0, $a1, $a085; LA64-NEXT:    sltu $a0, $zero, $a086; LA64-NEXT:    ret87  %and = and i8 %a, %b88  %cmpne = icmp ne i8 %and, %b89  ret i1 %cmpne90}91 92define i1 @andn_icmp_ne_i16(i16 signext %a, i16 signext %b) nounwind {93; LA32-LABEL: andn_icmp_ne_i16:94; LA32:       # %bb.0:95; LA32-NEXT:    andn $a0, $a1, $a096; LA32-NEXT:    sltu $a0, $zero, $a097; LA32-NEXT:    ret98;99; LA64-LABEL: andn_icmp_ne_i16:100; LA64:       # %bb.0:101; LA64-NEXT:    andn $a0, $a1, $a0102; LA64-NEXT:    sltu $a0, $zero, $a0103; LA64-NEXT:    ret104  %and = and i16 %a, %b105  %cmpne = icmp ne i16 %and, %b106  ret i1 %cmpne107}108 109define i1 @andn_icmp_ne_i32(i32 signext %a, i32 signext %b) nounwind {110; LA32-LABEL: andn_icmp_ne_i32:111; LA32:       # %bb.0:112; LA32-NEXT:    andn $a0, $a1, $a0113; LA32-NEXT:    sltu $a0, $zero, $a0114; LA32-NEXT:    ret115;116; LA64-LABEL: andn_icmp_ne_i32:117; LA64:       # %bb.0:118; LA64-NEXT:    andn $a0, $a1, $a0119; LA64-NEXT:    sltu $a0, $zero, $a0120; LA64-NEXT:    ret121  %and = and i32 %a, %b122  %cmpne = icmp ne i32 %and, %b123  ret i1 %cmpne124}125 126define i1 @andn_icmp_ne_i64(i64 %a, i64 %b) nounwind {127; LA32-LABEL: andn_icmp_ne_i64:128; LA32:       # %bb.0:129; LA32-NEXT:    andn $a1, $a3, $a1130; LA32-NEXT:    andn $a0, $a2, $a0131; LA32-NEXT:    or $a0, $a0, $a1132; LA32-NEXT:    sltu $a0, $zero, $a0133; LA32-NEXT:    ret134;135; LA64-LABEL: andn_icmp_ne_i64:136; LA64:       # %bb.0:137; LA64-NEXT:    andn $a0, $a1, $a0138; LA64-NEXT:    sltu $a0, $zero, $a0139; LA64-NEXT:    ret140  %and = and i64 %a, %b141  %cmpne = icmp ne i64 %and, %b142  ret i1 %cmpne143}144 145define i1 @andn_icmp_ult_i8(i8 signext %a, i8 signext %b) nounwind {146; LA32-LABEL: andn_icmp_ult_i8:147; LA32:       # %bb.0:148; LA32-NEXT:    and $a0, $a0, $a1149; LA32-NEXT:    sltu $a0, $a0, $a1150; LA32-NEXT:    ret151;152; LA64-LABEL: andn_icmp_ult_i8:153; LA64:       # %bb.0:154; LA64-NEXT:    and $a0, $a0, $a1155; LA64-NEXT:    sltu $a0, $a0, $a1156; LA64-NEXT:    ret157  %and = and i8 %a, %b158  %cmp = icmp ult i8 %and, %b159  ret i1 %cmp160}161 162define i1 @andn_icmp_ult_i16(i16 signext %a, i16 signext %b) nounwind {163; LA32-LABEL: andn_icmp_ult_i16:164; LA32:       # %bb.0:165; LA32-NEXT:    and $a0, $a0, $a1166; LA32-NEXT:    sltu $a0, $a0, $a1167; LA32-NEXT:    ret168;169; LA64-LABEL: andn_icmp_ult_i16:170; LA64:       # %bb.0:171; LA64-NEXT:    and $a0, $a0, $a1172; LA64-NEXT:    sltu $a0, $a0, $a1173; LA64-NEXT:    ret174  %and = and i16 %a, %b175  %cmp = icmp ult i16 %and, %b176  ret i1 %cmp177}178 179define i1 @andn_icmp_uge_i8(i8 signext %a, i8 signext %b) nounwind {180; LA32-LABEL: andn_icmp_uge_i8:181; LA32:       # %bb.0:182; LA32-NEXT:    and $a0, $a0, $a1183; LA32-NEXT:    sltu $a0, $a0, $a1184; LA32-NEXT:    xori $a0, $a0, 1185; LA32-NEXT:    ret186;187; LA64-LABEL: andn_icmp_uge_i8:188; LA64:       # %bb.0:189; LA64-NEXT:    and $a0, $a0, $a1190; LA64-NEXT:    sltu $a0, $a0, $a1191; LA64-NEXT:    xori $a0, $a0, 1192; LA64-NEXT:    ret193  %and = and i8 %a, %b194  %cmp = icmp uge i8 %and, %b195  ret i1 %cmp196}197 198define i1 @andn_icmp_uge_i16(i16 signext %a, i16 signext %b) nounwind {199; LA32-LABEL: andn_icmp_uge_i16:200; LA32:       # %bb.0:201; LA32-NEXT:    and $a0, $a0, $a1202; LA32-NEXT:    sltu $a0, $a0, $a1203; LA32-NEXT:    xori $a0, $a0, 1204; LA32-NEXT:    ret205;206; LA64-LABEL: andn_icmp_uge_i16:207; LA64:       # %bb.0:208; LA64-NEXT:    and $a0, $a0, $a1209; LA64-NEXT:    sltu $a0, $a0, $a1210; LA64-NEXT:    xori $a0, $a0, 1211; LA64-NEXT:    ret212  %and = and i16 %a, %b213  %cmp = icmp uge i16 %and, %b214  ret i1 %cmp215}216 217define i1 @andn_icmp_ugt_i8(i8 signext %a, i8 signext %b) nounwind {218; LA32-LABEL: andn_icmp_ugt_i8:219; LA32:       # %bb.0:220; LA32-NEXT:    and $a0, $a0, $a1221; LA32-NEXT:    sltu $a0, $a1, $a0222; LA32-NEXT:    ret223;224; LA64-LABEL: andn_icmp_ugt_i8:225; LA64:       # %bb.0:226; LA64-NEXT:    and $a0, $a0, $a1227; LA64-NEXT:    sltu $a0, $a1, $a0228; LA64-NEXT:    ret229  %and = and i8 %a, %b230  %cmp = icmp ugt i8 %and, %b231  ret i1 %cmp232}233 234define i1 @andn_icmp_ugt_i16(i16 signext %a, i16 signext %b) nounwind {235; LA32-LABEL: andn_icmp_ugt_i16:236; LA32:       # %bb.0:237; LA32-NEXT:    and $a0, $a0, $a1238; LA32-NEXT:    sltu $a0, $a1, $a0239; LA32-NEXT:    ret240;241; LA64-LABEL: andn_icmp_ugt_i16:242; LA64:       # %bb.0:243; LA64-NEXT:    and $a0, $a0, $a1244; LA64-NEXT:    sltu $a0, $a1, $a0245; LA64-NEXT:    ret246  %and = and i16 %a, %b247  %cmp = icmp ugt i16 %and, %b248  ret i1 %cmp249}250 251define i1 @andn_icmp_ule_i8(i8 signext %a, i8 signext %b) nounwind {252; LA32-LABEL: andn_icmp_ule_i8:253; LA32:       # %bb.0:254; LA32-NEXT:    and $a0, $a0, $a1255; LA32-NEXT:    sltu $a0, $a1, $a0256; LA32-NEXT:    xori $a0, $a0, 1257; LA32-NEXT:    ret258;259; LA64-LABEL: andn_icmp_ule_i8:260; LA64:       # %bb.0:261; LA64-NEXT:    and $a0, $a0, $a1262; LA64-NEXT:    sltu $a0, $a1, $a0263; LA64-NEXT:    xori $a0, $a0, 1264; LA64-NEXT:    ret265  %and = and i8 %a, %b266  %cmp = icmp ule i8 %and, %b267  ret i1 %cmp268}269 270define i1 @andn_icmp_ule_i16(i16 signext %a, i16 signext %b) nounwind {271; LA32-LABEL: andn_icmp_ule_i16:272; LA32:       # %bb.0:273; LA32-NEXT:    and $a0, $a0, $a1274; LA32-NEXT:    sltu $a0, $a1, $a0275; LA32-NEXT:    xori $a0, $a0, 1276; LA32-NEXT:    ret277;278; LA64-LABEL: andn_icmp_ule_i16:279; LA64:       # %bb.0:280; LA64-NEXT:    and $a0, $a0, $a1281; LA64-NEXT:    sltu $a0, $a1, $a0282; LA64-NEXT:    xori $a0, $a0, 1283; LA64-NEXT:    ret284  %and = and i16 %a, %b285  %cmp = icmp ule i16 %and, %b286  ret i1 %cmp287}288 289define i1 @andn_icmp_eq_i8_sz(i8 signext %a, i8 zeroext %b) nounwind {290; LA32-LABEL: andn_icmp_eq_i8_sz:291; LA32:       # %bb.0:292; LA32-NEXT:    andn $a0, $a1, $a0293; LA32-NEXT:    sltui $a0, $a0, 1294; LA32-NEXT:    ret295;296; LA64-LABEL: andn_icmp_eq_i8_sz:297; LA64:       # %bb.0:298; LA64-NEXT:    andn $a0, $a1, $a0299; LA64-NEXT:    sltui $a0, $a0, 1300; LA64-NEXT:    ret301  %and = and i8 %a, %b302  %cmp = icmp eq i8 %and, %b303  ret i1 %cmp304}305 306define i1 @andn_icmp_eq_i8_zs(i8 zeroext %a, i8 signext %b) nounwind {307; LA32-LABEL: andn_icmp_eq_i8_zs:308; LA32:       # %bb.0:309; LA32-NEXT:    andn $a0, $a1, $a0310; LA32-NEXT:    andi $a0, $a0, 255311; LA32-NEXT:    sltui $a0, $a0, 1312; LA32-NEXT:    ret313;314; LA64-LABEL: andn_icmp_eq_i8_zs:315; LA64:       # %bb.0:316; LA64-NEXT:    andn $a0, $a1, $a0317; LA64-NEXT:    andi $a0, $a0, 255318; LA64-NEXT:    sltui $a0, $a0, 1319; LA64-NEXT:    ret320  %and = and i8 %a, %b321  %cmp = icmp eq i8 %and, %b322  ret i1 %cmp323}324 325define i1 @andn_icmp_eq_i8_zz(i8 zeroext %a, i8 zeroext %b) nounwind {326; LA32-LABEL: andn_icmp_eq_i8_zz:327; LA32:       # %bb.0:328; LA32-NEXT:    andn $a0, $a1, $a0329; LA32-NEXT:    sltui $a0, $a0, 1330; LA32-NEXT:    ret331;332; LA64-LABEL: andn_icmp_eq_i8_zz:333; LA64:       # %bb.0:334; LA64-NEXT:    andn $a0, $a1, $a0335; LA64-NEXT:    sltui $a0, $a0, 1336; LA64-NEXT:    ret337  %and = and i8 %a, %b338  %cmp = icmp eq i8 %and, %b339  ret i1 %cmp340}341 342define i1 @andn_icmp_eq_i8_sn(i8 signext %a, i8 %b) nounwind {343; LA32-LABEL: andn_icmp_eq_i8_sn:344; LA32:       # %bb.0:345; LA32-NEXT:    andn $a0, $a1, $a0346; LA32-NEXT:    andi $a0, $a0, 255347; LA32-NEXT:    sltui $a0, $a0, 1348; LA32-NEXT:    ret349;350; LA64-LABEL: andn_icmp_eq_i8_sn:351; LA64:       # %bb.0:352; LA64-NEXT:    andn $a0, $a1, $a0353; LA64-NEXT:    andi $a0, $a0, 255354; LA64-NEXT:    sltui $a0, $a0, 1355; LA64-NEXT:    ret356  %and = and i8 %a, %b357  %cmp = icmp eq i8 %and, %b358  ret i1 %cmp359}360 361define i1 @andn_icmp_eq_i8_zn(i8 zeroext %a, i8 %b) nounwind {362; LA32-LABEL: andn_icmp_eq_i8_zn:363; LA32:       # %bb.0:364; LA32-NEXT:    andn $a0, $a1, $a0365; LA32-NEXT:    andi $a0, $a0, 255366; LA32-NEXT:    sltui $a0, $a0, 1367; LA32-NEXT:    ret368;369; LA64-LABEL: andn_icmp_eq_i8_zn:370; LA64:       # %bb.0:371; LA64-NEXT:    andn $a0, $a1, $a0372; LA64-NEXT:    andi $a0, $a0, 255373; LA64-NEXT:    sltui $a0, $a0, 1374; LA64-NEXT:    ret375  %and = and i8 %a, %b376  %cmp = icmp eq i8 %and, %b377  ret i1 %cmp378}379 380define i1 @andn_icmp_eq_i8_ns(i8 %a, i8 signext %b) nounwind {381; LA32-LABEL: andn_icmp_eq_i8_ns:382; LA32:       # %bb.0:383; LA32-NEXT:    andn $a0, $a1, $a0384; LA32-NEXT:    andi $a0, $a0, 255385; LA32-NEXT:    sltui $a0, $a0, 1386; LA32-NEXT:    ret387;388; LA64-LABEL: andn_icmp_eq_i8_ns:389; LA64:       # %bb.0:390; LA64-NEXT:    andn $a0, $a1, $a0391; LA64-NEXT:    andi $a0, $a0, 255392; LA64-NEXT:    sltui $a0, $a0, 1393; LA64-NEXT:    ret394  %and = and i8 %a, %b395  %cmp = icmp eq i8 %and, %b396  ret i1 %cmp397}398 399define i1 @andn_icmp_eq_i8_nz(i8 %a, i8 zeroext %b) nounwind {400; LA32-LABEL: andn_icmp_eq_i8_nz:401; LA32:       # %bb.0:402; LA32-NEXT:    andn $a0, $a1, $a0403; LA32-NEXT:    sltui $a0, $a0, 1404; LA32-NEXT:    ret405;406; LA64-LABEL: andn_icmp_eq_i8_nz:407; LA64:       # %bb.0:408; LA64-NEXT:    andn $a0, $a1, $a0409; LA64-NEXT:    sltui $a0, $a0, 1410; LA64-NEXT:    ret411  %and = and i8 %a, %b412  %cmp = icmp eq i8 %and, %b413  ret i1 %cmp414}415 416define i1 @andn_icmp_eq_i8_nn(i8 %a, i8 %b) nounwind {417; LA32-LABEL: andn_icmp_eq_i8_nn:418; LA32:       # %bb.0:419; LA32-NEXT:    andn $a0, $a1, $a0420; LA32-NEXT:    andi $a0, $a0, 255421; LA32-NEXT:    sltui $a0, $a0, 1422; LA32-NEXT:    ret423;424; LA64-LABEL: andn_icmp_eq_i8_nn:425; LA64:       # %bb.0:426; LA64-NEXT:    andn $a0, $a1, $a0427; LA64-NEXT:    andi $a0, $a0, 255428; LA64-NEXT:    sltui $a0, $a0, 1429; LA64-NEXT:    ret430  %and = and i8 %a, %b431  %cmp = icmp eq i8 %and, %b432  ret i1 %cmp433}434 435define i1 @andn_icmp_ult_i8_sz(i8 signext %a, i8 zeroext %b) nounwind {436; LA32-LABEL: andn_icmp_ult_i8_sz:437; LA32:       # %bb.0:438; LA32-NEXT:    and $a0, $a0, $a1439; LA32-NEXT:    sltu $a0, $a0, $a1440; LA32-NEXT:    ret441;442; LA64-LABEL: andn_icmp_ult_i8_sz:443; LA64:       # %bb.0:444; LA64-NEXT:    and $a0, $a0, $a1445; LA64-NEXT:    sltu $a0, $a0, $a1446; LA64-NEXT:    ret447  %and = and i8 %a, %b448  %cmp = icmp ult i8 %and, %b449  ret i1 %cmp450}451 452define i1 @andn_icmp_ult_i8_zs(i8 zeroext %a, i8 signext %b) nounwind {453; LA32-LABEL: andn_icmp_ult_i8_zs:454; LA32:       # %bb.0:455; LA32-NEXT:    andi $a1, $a1, 255456; LA32-NEXT:    and $a0, $a0, $a1457; LA32-NEXT:    sltu $a0, $a0, $a1458; LA32-NEXT:    ret459;460; LA64-LABEL: andn_icmp_ult_i8_zs:461; LA64:       # %bb.0:462; LA64-NEXT:    andi $a1, $a1, 255463; LA64-NEXT:    and $a0, $a0, $a1464; LA64-NEXT:    sltu $a0, $a0, $a1465; LA64-NEXT:    ret466  %and = and i8 %a, %b467  %cmp = icmp ult i8 %and, %b468  ret i1 %cmp469}470 471define i1 @andn_icmp_ult_i8_zz(i8 zeroext %a, i8 zeroext %b) nounwind {472; LA32-LABEL: andn_icmp_ult_i8_zz:473; LA32:       # %bb.0:474; LA32-NEXT:    and $a0, $a0, $a1475; LA32-NEXT:    sltu $a0, $a0, $a1476; LA32-NEXT:    ret477;478; LA64-LABEL: andn_icmp_ult_i8_zz:479; LA64:       # %bb.0:480; LA64-NEXT:    and $a0, $a0, $a1481; LA64-NEXT:    sltu $a0, $a0, $a1482; LA64-NEXT:    ret483  %and = and i8 %a, %b484  %cmp = icmp ult i8 %and, %b485  ret i1 %cmp486}487 488define i1 @andn_icmp_ult_i8_sn(i8 signext %a, i8 %b) nounwind {489; LA32-LABEL: andn_icmp_ult_i8_sn:490; LA32:       # %bb.0:491; LA32-NEXT:    andi $a1, $a1, 255492; LA32-NEXT:    and $a0, $a1, $a0493; LA32-NEXT:    sltu $a0, $a0, $a1494; LA32-NEXT:    ret495;496; LA64-LABEL: andn_icmp_ult_i8_sn:497; LA64:       # %bb.0:498; LA64-NEXT:    andi $a1, $a1, 255499; LA64-NEXT:    and $a0, $a1, $a0500; LA64-NEXT:    sltu $a0, $a0, $a1501; LA64-NEXT:    ret502  %and = and i8 %a, %b503  %cmp = icmp ult i8 %and, %b504  ret i1 %cmp505}506 507define i1 @andn_icmp_ult_i8_zn(i8 zeroext %a, i8 %b) nounwind {508; LA32-LABEL: andn_icmp_ult_i8_zn:509; LA32:       # %bb.0:510; LA32-NEXT:    andi $a1, $a1, 255511; LA32-NEXT:    and $a0, $a1, $a0512; LA32-NEXT:    sltu $a0, $a0, $a1513; LA32-NEXT:    ret514;515; LA64-LABEL: andn_icmp_ult_i8_zn:516; LA64:       # %bb.0:517; LA64-NEXT:    andi $a1, $a1, 255518; LA64-NEXT:    and $a0, $a1, $a0519; LA64-NEXT:    sltu $a0, $a0, $a1520; LA64-NEXT:    ret521  %and = and i8 %a, %b522  %cmp = icmp ult i8 %and, %b523  ret i1 %cmp524}525 526define i1 @andn_icmp_ult_i8_ns(i8 %a, i8 signext %b) nounwind {527; LA32-LABEL: andn_icmp_ult_i8_ns:528; LA32:       # %bb.0:529; LA32-NEXT:    andi $a1, $a1, 255530; LA32-NEXT:    and $a0, $a1, $a0531; LA32-NEXT:    sltu $a0, $a0, $a1532; LA32-NEXT:    ret533;534; LA64-LABEL: andn_icmp_ult_i8_ns:535; LA64:       # %bb.0:536; LA64-NEXT:    andi $a1, $a1, 255537; LA64-NEXT:    and $a0, $a1, $a0538; LA64-NEXT:    sltu $a0, $a0, $a1539; LA64-NEXT:    ret540  %and = and i8 %a, %b541  %cmp = icmp ult i8 %and, %b542  ret i1 %cmp543}544 545define i1 @andn_icmp_ult_i8_nz(i8 %a, i8 zeroext %b) nounwind {546; LA32-LABEL: andn_icmp_ult_i8_nz:547; LA32:       # %bb.0:548; LA32-NEXT:    and $a0, $a0, $a1549; LA32-NEXT:    sltu $a0, $a0, $a1550; LA32-NEXT:    ret551;552; LA64-LABEL: andn_icmp_ult_i8_nz:553; LA64:       # %bb.0:554; LA64-NEXT:    and $a0, $a0, $a1555; LA64-NEXT:    sltu $a0, $a0, $a1556; LA64-NEXT:    ret557  %and = and i8 %a, %b558  %cmp = icmp ult i8 %and, %b559  ret i1 %cmp560}561 562define i1 @andn_icmp_ult_i8_nn(i8 %a, i8 %b) nounwind {563; LA32-LABEL: andn_icmp_ult_i8_nn:564; LA32:       # %bb.0:565; LA32-NEXT:    andi $a1, $a1, 255566; LA32-NEXT:    and $a0, $a1, $a0567; LA32-NEXT:    sltu $a0, $a0, $a1568; LA32-NEXT:    ret569;570; LA64-LABEL: andn_icmp_ult_i8_nn:571; LA64:       # %bb.0:572; LA64-NEXT:    andi $a1, $a1, 255573; LA64-NEXT:    and $a0, $a1, $a0574; LA64-NEXT:    sltu $a0, $a0, $a1575; LA64-NEXT:    ret576  %and = and i8 %a, %b577  %cmp = icmp ult i8 %and, %b578  ret i1 %cmp579}580 581define i1 @andn_icmp_eq_i8_i32(i8 signext %a, i8 signext %b) nounwind {582; LA32-LABEL: andn_icmp_eq_i8_i32:583; LA32:       # %bb.0:584; LA32-NEXT:    andn $a0, $a1, $a0585; LA32-NEXT:    sltui $a0, $a0, 1586; LA32-NEXT:    ret587;588; LA64-LABEL: andn_icmp_eq_i8_i32:589; LA64:       # %bb.0:590; LA64-NEXT:    andn $a0, $a1, $a0591; LA64-NEXT:    andi $a0, $a0, 255592; LA64-NEXT:    sltui $a0, $a0, 1593; LA64-NEXT:    ret594  %x = zext i8 %a to i32595  %y = zext i8 %b to i32596  %not = xor i32 %x, -1597  %and = and i32 %not, %y598  %cmp = icmp eq i32 %and, 0599  ret i1 %cmp600}601