• Home
  • Raw
  • Download

Lines Matching refs:Pat

11 // as well as Pat patterns used during instruction selection.
179 // FIXME: These are pseudo ops that should be replaced with Pat<> patterns.
180 // However, Pat<> can't replicate the destination reg into the inputs of the
196 def : Pat<(i16 (anyext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
198 def : Pat<(i32 (anyext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
200 def : Pat<(i64 (anyext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
203 def : Pat<(i16 (sext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
205 def : Pat<(i32 (sext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
207 def : Pat<(i64 (sext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
214 def : Pat<(and (i8 (X86setcc_c X86_COND_B, EFLAGS)), 1),
218 def : Pat<(add (and (i8 (X86setcc_c X86_COND_B, EFLAGS)), 1), GR8:$op),
220 def : Pat<(add (and (i32 (X86setcc_c X86_COND_B, EFLAGS)), 1), GR32:$op),
222 def : Pat<(add (and (i64 (X86setcc_c X86_COND_B, EFLAGS)), 1), GR64:$op),
226 def : Pat<(sub GR8:$op, (and (i8 (X86setcc_c X86_COND_B, EFLAGS)), 1)),
228 def : Pat<(sub GR32:$op, (and (i32 (X86setcc_c X86_COND_B, EFLAGS)), 1)),
230 def : Pat<(sub GR64:$op, (and (i64 (X86setcc_c X86_COND_B, EFLAGS)), 1)),
234 def : Pat<(sub GR8:$op, (i8 (X86setcc_c X86_COND_B, EFLAGS))),
236 def : Pat<(sub GR32:$op, (i32 (X86setcc_c X86_COND_B, EFLAGS))),
238 def : Pat<(sub GR64:$op, (i64 (X86setcc_c X86_COND_B, EFLAGS))),
770 def : Pat<(i32 (X86Wrapper tconstpool :$dst)), (MOV32ri tconstpool :$dst)>;
771 def : Pat<(i32 (X86Wrapper tjumptable :$dst)), (MOV32ri tjumptable :$dst)>;
772 def : Pat<(i32 (X86Wrapper tglobaltlsaddr:$dst)),(MOV32ri tglobaltlsaddr:$dst)>;
773 def : Pat<(i32 (X86Wrapper tglobaladdr :$dst)), (MOV32ri tglobaladdr :$dst)>;
774 def : Pat<(i32 (X86Wrapper texternalsym:$dst)), (MOV32ri texternalsym:$dst)>;
775 def : Pat<(i32 (X86Wrapper tblockaddress:$dst)), (MOV32ri tblockaddress:$dst)>;
777 def : Pat<(add GR32:$src1, (X86Wrapper tconstpool:$src2)),
779 def : Pat<(add GR32:$src1, (X86Wrapper tjumptable:$src2)),
781 def : Pat<(add GR32:$src1, (X86Wrapper tglobaladdr :$src2)),
783 def : Pat<(add GR32:$src1, (X86Wrapper texternalsym:$src2)),
785 def : Pat<(add GR32:$src1, (X86Wrapper tblockaddress:$src2)),
788 def : Pat<(store (i32 (X86Wrapper tglobaladdr:$src)), addr:$dst),
790 def : Pat<(store (i32 (X86Wrapper texternalsym:$src)), addr:$dst),
792 def : Pat<(store (i32 (X86Wrapper tblockaddress:$src)), addr:$dst),
800 def : Pat<(i64 (X86Wrapper tconstpool :$dst)),
802 def : Pat<(i64 (X86Wrapper tjumptable :$dst)),
804 def : Pat<(i64 (X86Wrapper tglobaladdr :$dst)),
806 def : Pat<(i64 (X86Wrapper texternalsym:$dst)),
808 def : Pat<(i64 (X86Wrapper tblockaddress:$dst)),
814 def : Pat<(i64 (X86Wrapper tconstpool :$dst)),
816 def : Pat<(i64 (X86Wrapper tjumptable :$dst)),
818 def : Pat<(i64 (X86Wrapper tglobaladdr :$dst)),
820 def : Pat<(i64 (X86Wrapper texternalsym:$dst)),
822 def : Pat<(i64 (X86Wrapper tblockaddress:$dst)),
828 def : Pat<(i64 (X86Wrapper tconstpool :$dst)),
830 def : Pat<(i64 (X86Wrapper tjumptable :$dst)),
832 def : Pat<(i64 (X86Wrapper tglobaladdr :$dst)),
834 def : Pat<(i64 (X86Wrapper texternalsym:$dst)),
836 def : Pat<(i64 (X86Wrapper tblockaddress:$dst)),
842 def : Pat<(store (i64 (X86Wrapper tconstpool:$src)), addr:$dst),
845 def : Pat<(store (i64 (X86Wrapper tjumptable:$src)), addr:$dst),
848 def : Pat<(store (i64 (X86Wrapper tglobaladdr:$src)), addr:$dst),
851 def : Pat<(store (i64 (X86Wrapper texternalsym:$src)), addr:$dst),
854 def : Pat<(store (i64 (X86Wrapper tblockaddress:$src)), addr:$dst),
864 def : Pat<(i64 (X86Wrapper tglobaltlsaddr :$dst)),
867 def : Pat<(add GR64:$src1, (X86Wrapper tglobaltlsaddr :$dst)),
870 def : Pat<(load (i64 (X86Wrapper tglobaltlsaddr :$dst))),
876 def : Pat<(X86call (i64 tglobaladdr:$dst)),
878 def : Pat<(X86call (i64 texternalsym:$dst)),
881 def : Pat<(X86call (i64 tglobaladdr:$dst)),
883 def : Pat<(X86call (i64 texternalsym:$dst)),
887 def : Pat<(X86tcret GR32_TC:$dst, imm:$off),
894 def : Pat<(X86tcret (load addr:$dst), imm:$off),
898 def : Pat<(X86tcret (i32 tglobaladdr:$dst), imm:$off),
902 def : Pat<(X86tcret (i32 texternalsym:$dst), imm:$off),
906 def : Pat<(X86tcret ptr_rc_tailcall:$dst, imm:$off),
910 def : Pat<(X86tcret (load addr:$dst), imm:$off),
914 def : Pat<(X86tcret (i64 tglobaladdr:$dst), imm:$off),
918 def : Pat<(X86tcret (i64 texternalsym:$dst), imm:$off),
923 def : Pat<(X86call (i32 tglobaladdr:$dst)),
925 def : Pat<(X86call (i32 texternalsym:$dst)),
927 def : Pat<(X86call (i32 imm:$dst)),
933 def : Pat<(X86cmp GR8:$src1, 0),
935 def : Pat<(X86cmp GR16:$src1, 0),
937 def : Pat<(X86cmp GR32:$src1, 0),
939 def : Pat<(X86cmp GR64:$src1, 0),
946 def : Pat<(X86cmov (loadi16 addr:$src1), GR16:$src2, InvertedCond, EFLAGS),
948 def : Pat<(X86cmov (loadi32 addr:$src1), GR32:$src2, InvertedCond, EFLAGS),
950 def : Pat<(X86cmov (loadi64 addr:$src1), GR64:$src2, InvertedCond, EFLAGS),
972 def : Pat<(zextloadi8i1 addr:$src), (MOV8rm addr:$src)>;
973 def : Pat<(zextloadi16i1 addr:$src), (MOVZX16rm8 addr:$src)>;
974 def : Pat<(zextloadi32i1 addr:$src), (MOVZX32rm8 addr:$src)>;
975 def : Pat<(zextloadi64i1 addr:$src), (MOVZX64rm8 addr:$src)>;
982 def : Pat<(extloadi8i1 addr:$src), (MOV8rm addr:$src)>;
983 def : Pat<(extloadi16i1 addr:$src), (MOVZX16rm8 addr:$src)>;
984 def : Pat<(extloadi32i1 addr:$src), (MOVZX32rm8 addr:$src)>;
985 def : Pat<(extloadi16i8 addr:$src), (MOVZX16rm8 addr:$src)>;
986 def : Pat<(extloadi32i8 addr:$src), (MOVZX32rm8 addr:$src)>;
987 def : Pat<(extloadi32i16 addr:$src), (MOVZX32rm16 addr:$src)>;
989 def : Pat<(extloadi64i1 addr:$src), (MOVZX64rm8 addr:$src)>;
990 def : Pat<(extloadi64i8 addr:$src), (MOVZX64rm8 addr:$src)>;
991 def : Pat<(extloadi64i16 addr:$src), (MOVZX64rm16 addr:$src)>;
994 def : Pat<(extloadi64i32 addr:$src),
1000 def : Pat<(i16 (anyext GR8 :$src)), (EXTRACT_SUBREG
1002 def : Pat<(i32 (anyext GR8 :$src)), (MOVZX32rr8 GR8 :$src)>;
1005 def : Pat<(i32 (anyext GR16:$src)),
1008 def : Pat<(i64 (anyext GR8 :$src)), (MOVZX64rr8 GR8 :$src)>;
1009 def : Pat<(i64 (anyext GR16:$src)), (MOVZX64rr16 GR16 :$src)>;
1010 def : Pat<(i64 (anyext GR32:$src)),
1028 def : Pat<(i64 (zext def32:$src)),
1113 def : Pat<(add GR16:$src1, 128),
1115 def : Pat<(store (add (loadi16 addr:$dst), 128), addr:$dst),
1118 def : Pat<(add GR32:$src1, 128),
1120 def : Pat<(store (add (loadi32 addr:$dst), 128), addr:$dst),
1123 def : Pat<(add GR64:$src1, 128),
1125 def : Pat<(store (add (loadi64 addr:$dst), 128), addr:$dst),
1130 def : Pat<(add GR64:$src1, 0x0000000080000000),
1132 def : Pat<(store (add (loadi64 addr:$dst), 0x00000000800000000), addr:$dst),
1140 def : Pat<(and GR64:$src, i64immZExt32SExt8:$imm),
1148 def : Pat<(and GR64:$src, i64immZExt32:$imm),
1158 def : Pat<(and GR32:$src1, 0xffff),
1161 def : Pat<(and GR32:$src1, 0xff),
1167 def : Pat<(and GR16:$src1, 0xff),
1174 def : Pat<(and GR64:$src, 0x00000000FFFFFFFF),
1177 def : Pat<(and GR64:$src, 0xffff),
1180 def : Pat<(and GR64:$src, 0xff),
1183 def : Pat<(and GR32:$src1, 0xff),
1187 def : Pat<(and GR16:$src1, 0xff),
1194 def : Pat<(sext_inreg GR32:$src, i16),
1196 def : Pat<(sext_inreg GR32:$src, i8),
1202 def : Pat<(sext_inreg GR16:$src, i8),
1208 def : Pat<(sext_inreg GR64:$src, i32),
1210 def : Pat<(sext_inreg GR64:$src, i16),
1212 def : Pat<(sext_inreg GR64:$src, i8),
1214 def : Pat<(sext_inreg GR32:$src, i8),
1217 def : Pat<(sext_inreg GR16:$src, i8),
1223 def: Pat<(i16 (sext GR8:$src)),
1225 def: Pat<(sextloadi16i8 addr:$src),
1227 def: Pat<(i16 (zext GR8:$src)),
1229 def: Pat<(zextloadi16i8 addr:$src),
1233 def : Pat<(i16 (trunc GR32:$src)),
1235 def : Pat<(i8 (trunc GR32:$src)),
1239 def : Pat<(i8 (trunc GR16:$src)),
1243 def : Pat<(i32 (trunc GR64:$src)),
1245 def : Pat<(i16 (trunc GR64:$src)),
1247 def : Pat<(i8 (trunc GR64:$src)),
1249 def : Pat<(i8 (trunc GR32:$src)),
1252 def : Pat<(i8 (trunc GR16:$src)),
1257 def : Pat<(i8 (trunc (srl_su GR16:$src, (i8 8)))),
1261 def : Pat<(i8 (trunc (srl_su GR32:$src, (i8 8)))),
1265 def : Pat<(srl GR16:$src, (i8 8)),
1272 def : Pat<(i32 (zext (srl_su GR16:$src, (i8 8)))),
1277 def : Pat<(i32 (anyext (srl_su GR16:$src, (i8 8)))),
1282 def : Pat<(and (srl_su GR32:$src, (i8 8)), (i32 255)),
1287 def : Pat<(srl (and_su GR32:$src, 0xff00), (i8 8)),
1301 def : Pat<(and (srl_su GR64:$src, (i8 8)), (i64 255)),
1308 def : Pat<(and (srl_su GR32:$src, (i8 8)), (i32 255)),
1313 def : Pat<(srl (and_su GR32:$src, 0xff00), (i8 8)),
1318 def : Pat<(srl GR16:$src, (i8 8)),
1325 def : Pat<(i32 (zext (srl_su GR16:$src, (i8 8)))),
1330 def : Pat<(i32 (anyext (srl_su GR16:$src, (i8 8)))),
1335 def : Pat<(i64 (zext (srl_su GR16:$src, (i8 8)))),
1342 def : Pat<(i64 (anyext (srl_su GR16:$src, (i8 8)))),
1351 def : Pat<(store (i8 (trunc_su (srl_su GR64:$src, (i8 8)))), addr:$dst),
1356 def : Pat<(store (i8 (trunc_su (srl_su GR32:$src, (i8 8)))), addr:$dst),
1362 def : Pat<(store (i8 (trunc_su (srl_su GR16:$src, (i8 8)))), addr:$dst),
1376 def : Pat<(shl GR8 :$src1, (i8 1)), (ADD8rr GR8 :$src1, GR8 :$src1)>;
1377 def : Pat<(shl GR16:$src1, (i8 1)), (ADD16rr GR16:$src1, GR16:$src1)>;
1378 def : Pat<(shl GR32:$src1, (i8 1)), (ADD32rr GR32:$src1, GR32:$src1)>;
1379 def : Pat<(shl GR64:$src1, (i8 1)), (ADD64rr GR64:$src1, GR64:$src1)>;
1382 def : Pat<(shl GR8:$src1, (and CL, 31)),
1384 def : Pat<(shl GR16:$src1, (and CL, 31)),
1386 def : Pat<(shl GR32:$src1, (and CL, 31)),
1388 def : Pat<(store (shl (loadi8 addr:$dst), (and CL, 31)), addr:$dst),
1390 def : Pat<(store (shl (loadi16 addr:$dst), (and CL, 31)), addr:$dst),
1392 def : Pat<(store (shl (loadi32 addr:$dst), (and CL, 31)), addr:$dst),
1395 def : Pat<(srl GR8:$src1, (and CL, 31)),
1397 def : Pat<(srl GR16:$src1, (and CL, 31)),
1399 def : Pat<(srl GR32:$src1, (and CL, 31)),
1401 def : Pat<(store (srl (loadi8 addr:$dst), (and CL, 31)), addr:$dst),
1403 def : Pat<(store (srl (loadi16 addr:$dst), (and CL, 31)), addr:$dst),
1405 def : Pat<(store (srl (loadi32 addr:$dst), (and CL, 31)), addr:$dst),
1408 def : Pat<(sra GR8:$src1, (and CL, 31)),
1410 def : Pat<(sra GR16:$src1, (and CL, 31)),
1412 def : Pat<(sra GR32:$src1, (and CL, 31)),
1414 def : Pat<(store (sra (loadi8 addr:$dst), (and CL, 31)), addr:$dst),
1416 def : Pat<(store (sra (loadi16 addr:$dst), (and CL, 31)), addr:$dst),
1418 def : Pat<(store (sra (loadi32 addr:$dst), (and CL, 31)), addr:$dst),
1422 def : Pat<(shl GR64:$src1, (and CL, 63)),
1424 def : Pat<(store (shl (loadi64 addr:$dst), (and CL, 63)), addr:$dst),
1427 def : Pat<(srl GR64:$src1, (and CL, 63)),
1429 def : Pat<(store (srl (loadi64 addr:$dst), (and CL, 63)), addr:$dst),
1432 def : Pat<(sra GR64:$src1, (and CL, 63)),
1434 def : Pat<(store (sra (loadi64 addr:$dst), (and CL, 63)), addr:$dst),
1439 def : Pat<(i16 (anyext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
1441 def : Pat<(i32 (anyext (i8 (X86setcc_c X86_COND_B, EFLAGS)))),
1443 def : Pat<(i32 (anyext (i16 (X86setcc_c X86_COND_B, EFLAGS)))),
1454 def : Pat<(add GR8 :$src1, GR8 :$src2), (ADD8rr GR8 :$src1, GR8 :$src2)>;
1455 def : Pat<(add GR16:$src1, GR16:$src2), (ADD16rr GR16:$src1, GR16:$src2)>;
1456 def : Pat<(add GR32:$src1, GR32:$src2), (ADD32rr GR32:$src1, GR32:$src2)>;
1459 def : Pat<(add GR8:$src1, (loadi8 addr:$src2)),
1461 def : Pat<(add GR16:$src1, (loadi16 addr:$src2)),
1463 def : Pat<(add GR32:$src1, (loadi32 addr:$src2)),
1467 def : Pat<(add GR8 :$src1, imm:$src2), (ADD8ri GR8:$src1 , imm:$src2)>;
1468 def : Pat<(add GR16:$src1, imm:$src2), (ADD16ri GR16:$src1, imm:$src2)>;
1469 def : Pat<(add GR32:$src1, imm:$src2), (ADD32ri GR32:$src1, imm:$src2)>;
1470 def : Pat<(add GR16:$src1, i16immSExt8:$src2),
1472 def : Pat<(add GR32:$src1, i32immSExt8:$src2),
1476 def : Pat<(sub GR8 :$src1, GR8 :$src2), (SUB8rr GR8 :$src1, GR8 :$src2)>;
1477 def : Pat<(sub GR16:$src1, GR16:$src2), (SUB16rr GR16:$src1, GR16:$src2)>;
1478 def : Pat<(sub GR32:$src1, GR32:$src2), (SUB32rr GR32:$src1, GR32:$src2)>;
1481 def : Pat<(sub GR8:$src1, (loadi8 addr:$src2)),
1483 def : Pat<(sub GR16:$src1, (loadi16 addr:$src2)),
1485 def : Pat<(sub GR32:$src1, (loadi32 addr:$src2)),
1489 def : Pat<(sub GR8:$src1, imm:$src2),
1491 def : Pat<(sub GR16:$src1, imm:$src2),
1493 def : Pat<(sub GR32:$src1, imm:$src2),
1495 def : Pat<(sub GR16:$src1, i16immSExt8:$src2),
1497 def : Pat<(sub GR32:$src1, i32immSExt8:$src2),
1501 def : Pat<(mul GR16:$src1, GR16:$src2),
1503 def : Pat<(mul GR32:$src1, GR32:$src2),
1507 def : Pat<(mul GR16:$src1, (loadi16 addr:$src2)),
1509 def : Pat<(mul GR32:$src1, (loadi32 addr:$src2)),
1513 def : Pat<(mul GR16:$src1, imm:$src2),
1515 def : Pat<(mul GR32:$src1, imm:$src2),
1517 def : Pat<(mul GR16:$src1, i16immSExt8:$src2),
1519 def : Pat<(mul GR32:$src1, i32immSExt8:$src2),
1523 def : Pat<(mul (loadi16 addr:$src1), imm:$src2),
1525 def : Pat<(mul (loadi32 addr:$src1), imm:$src2),
1527 def : Pat<(mul (loadi16 addr:$src1), i16immSExt8:$src2),
1529 def : Pat<(mul (loadi32 addr:$src1), i32immSExt8:$src2),
1535 def : Pat<(add GR64:$src1, GR64:$src2),
1537 def : Pat<(add GR64:$src1, i64immSExt8:$src2),
1539 def : Pat<(add GR64:$src1, i64immSExt32:$src2),
1541 def : Pat<(add GR64:$src1, (loadi64 addr:$src2)),
1545 def : Pat<(sub GR64:$src1, GR64:$src2),
1547 def : Pat<(sub GR64:$src1, (loadi64 addr:$src2)),
1549 def : Pat<(sub GR64:$src1, i64immSExt8:$src2),
1551 def : Pat<(sub GR64:$src1, i64immSExt32:$src2),
1555 def : Pat<(mul GR64:$src1, GR64:$src2),
1557 def : Pat<(mul GR64:$src1, (loadi64 addr:$src2)),
1559 def : Pat<(mul GR64:$src1, i64immSExt8:$src2),
1561 def : Pat<(mul GR64:$src1, i64immSExt32:$src2),
1563 def : Pat<(mul (loadi64 addr:$src1), i64immSExt8:$src2),
1565 def : Pat<(mul (loadi64 addr:$src1), i64immSExt32:$src2),
1569 def : Pat<(add GR8 :$src, 1), (INC8r GR8 :$src)>;
1570 def : Pat<(add GR16:$src, 1), (INC16r GR16:$src)>, Requires<[In32BitMode]>;
1571 def : Pat<(add GR16:$src, 1), (INC64_16r GR16:$src)>, Requires<[In64BitMode]>;
1572 def : Pat<(add GR32:$src, 1), (INC32r GR32:$src)>, Requires<[In32BitMode]>;
1573 def : Pat<(add GR32:$src, 1), (INC64_32r GR32:$src)>, Requires<[In64BitMode]>;
1574 def : Pat<(add GR64:$src, 1), (INC64r GR64:$src)>;
1577 def : Pat<(add GR8 :$src, -1), (DEC8r GR8 :$src)>;
1578 def : Pat<(add GR16:$src, -1), (DEC16r GR16:$src)>, Requires<[In32BitMode]>;
1579 def : Pat<(add GR16:$src, -1), (DEC64_16r GR16:$src)>, Requires<[In64BitMode]>;
1580 def : Pat<(add GR32:$src, -1), (DEC32r GR32:$src)>, Requires<[In32BitMode]>;
1581 def : Pat<(add GR32:$src, -1), (DEC64_32r GR32:$src)>, Requires<[In64BitMode]>;
1582 def : Pat<(add GR64:$src, -1), (DEC64r GR64:$src)>;
1585 def : Pat<(or GR8 :$src1, GR8 :$src2), (OR8rr GR8 :$src1, GR8 :$src2)>;
1586 def : Pat<(or GR16:$src1, GR16:$src2), (OR16rr GR16:$src1, GR16:$src2)>;
1587 def : Pat<(or GR32:$src1, GR32:$src2), (OR32rr GR32:$src1, GR32:$src2)>;
1588 def : Pat<(or GR64:$src1, GR64:$src2), (OR64rr GR64:$src1, GR64:$src2)>;
1591 def : Pat<(or GR8:$src1, (loadi8 addr:$src2)),
1593 def : Pat<(or GR16:$src1, (loadi16 addr:$src2)),
1595 def : Pat<(or GR32:$src1, (loadi32 addr:$src2)),
1597 def : Pat<(or GR64:$src1, (loadi64 addr:$src2)),
1601 def : Pat<(or GR8:$src1 , imm:$src2), (OR8ri GR8 :$src1, imm:$src2)>;
1602 def : Pat<(or GR16:$src1, imm:$src2), (OR16ri GR16:$src1, imm:$src2)>;
1603 def : Pat<(or GR32:$src1, imm:$src2), (OR32ri GR32:$src1, imm:$src2)>;
1604 def : Pat<(or GR16:$src1, i16immSExt8:$src2),
1606 def : Pat<(or GR32:$src1, i32immSExt8:$src2),
1608 def : Pat<(or GR64:$src1, i64immSExt8:$src2),
1610 def : Pat<(or GR64:$src1, i64immSExt32:$src2),
1614 def : Pat<(xor GR8 :$src1, GR8 :$src2), (XOR8rr GR8 :$src1, GR8 :$src2)>;
1615 def : Pat<(xor GR16:$src1, GR16:$src2), (XOR16rr GR16:$src1, GR16:$src2)>;
1616 def : Pat<(xor GR32:$src1, GR32:$src2), (XOR32rr GR32:$src1, GR32:$src2)>;
1617 def : Pat<(xor GR64:$src1, GR64:$src2), (XOR64rr GR64:$src1, GR64:$src2)>;
1620 def : Pat<(xor GR8:$src1, (loadi8 addr:$src2)),
1622 def : Pat<(xor GR16:$src1, (loadi16 addr:$src2)),
1624 def : Pat<(xor GR32:$src1, (loadi32 addr:$src2)),
1626 def : Pat<(xor GR64:$src1, (loadi64 addr:$src2)),
1630 def : Pat<(xor GR8:$src1, imm:$src2),
1632 def : Pat<(xor GR16:$src1, imm:$src2),
1634 def : Pat<(xor GR32:$src1, imm:$src2),
1636 def : Pat<(xor GR16:$src1, i16immSExt8:$src2),
1638 def : Pat<(xor GR32:$src1, i32immSExt8:$src2),
1640 def : Pat<(xor GR64:$src1, i64immSExt8:$src2),
1642 def : Pat<(xor GR64:$src1, i64immSExt32:$src2),
1646 def : Pat<(and GR8 :$src1, GR8 :$src2), (AND8rr GR8 :$src1, GR8 :$src2)>;
1647 def : Pat<(and GR16:$src1, GR16:$src2), (AND16rr GR16:$src1, GR16:$src2)>;
1648 def : Pat<(and GR32:$src1, GR32:$src2), (AND32rr GR32:$src1, GR32:$src2)>;
1649 def : Pat<(and GR64:$src1, GR64:$src2), (AND64rr GR64:$src1, GR64:$src2)>;
1652 def : Pat<(and GR8:$src1, (loadi8 addr:$src2)),
1654 def : Pat<(and GR16:$src1, (loadi16 addr:$src2)),
1656 def : Pat<(and GR32:$src1, (loadi32 addr:$src2)),
1658 def : Pat<(and GR64:$src1, (loadi64 addr:$src2)),
1662 def : Pat<(and GR8:$src1, imm:$src2),
1664 def : Pat<(and GR16:$src1, imm:$src2),
1666 def : Pat<(and GR32:$src1, imm:$src2),
1668 def : Pat<(and GR16:$src1, i16immSExt8:$src2),
1670 def : Pat<(and GR32:$src1, i32immSExt8:$src2),
1672 def : Pat<(and GR64:$src1, i64immSExt8:$src2),
1674 def : Pat<(and GR64:$src1, i64immSExt32:$src2),