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