Lines Matching full:aarch64
1 //===- AArch64LoadStoreOptimizer.cpp - AArch64 load/store opt. pass -------===//
56 #define DEBUG_TYPE "aarch64-ldst-opt"
72 static cl::opt<unsigned> LdStLimit("aarch64-load-store-scan-limit",
77 static cl::opt<unsigned> UpdateLimit("aarch64-update-scan-limit", cl::init(100),
81 static cl::opt<bool> EnableRenaming("aarch64-load-store-renaming",
84 #define AARCH64_LOAD_STORE_OPT_NAME "AArch64 load / store optimization pass"
220 INITIALIZE_PASS(AArch64LoadStoreOpt, "aarch64-ldst-opt",
227 case AArch64::STRBBui: in isNarrowStore()
228 case AArch64::STURBBi: in isNarrowStore()
229 case AArch64::STRHHui: in isNarrowStore()
230 case AArch64::STURHHi: in isNarrowStore()
241 case AArch64::STGi: in isTagStore()
242 case AArch64::STZGi: in isTagStore()
243 case AArch64::ST2Gi: in isTagStore()
244 case AArch64::STZ2Gi: in isTagStore()
258 case AArch64::STRDui: in getMatchingNonSExtOpcode()
259 case AArch64::STURDi: in getMatchingNonSExtOpcode()
260 case AArch64::STRDpre: in getMatchingNonSExtOpcode()
261 case AArch64::STRQui: in getMatchingNonSExtOpcode()
262 case AArch64::STURQi: in getMatchingNonSExtOpcode()
263 case AArch64::STRQpre: in getMatchingNonSExtOpcode()
264 case AArch64::STRBBui: in getMatchingNonSExtOpcode()
265 case AArch64::STURBBi: in getMatchingNonSExtOpcode()
266 case AArch64::STRHHui: in getMatchingNonSExtOpcode()
267 case AArch64::STURHHi: in getMatchingNonSExtOpcode()
268 case AArch64::STRWui: in getMatchingNonSExtOpcode()
269 case AArch64::STRWpre: in getMatchingNonSExtOpcode()
270 case AArch64::STURWi: in getMatchingNonSExtOpcode()
271 case AArch64::STRXui: in getMatchingNonSExtOpcode()
272 case AArch64::STRXpre: in getMatchingNonSExtOpcode()
273 case AArch64::STURXi: in getMatchingNonSExtOpcode()
274 case AArch64::LDRDui: in getMatchingNonSExtOpcode()
275 case AArch64::LDURDi: in getMatchingNonSExtOpcode()
276 case AArch64::LDRDpre: in getMatchingNonSExtOpcode()
277 case AArch64::LDRQui: in getMatchingNonSExtOpcode()
278 case AArch64::LDURQi: in getMatchingNonSExtOpcode()
279 case AArch64::LDRQpre: in getMatchingNonSExtOpcode()
280 case AArch64::LDRWui: in getMatchingNonSExtOpcode()
281 case AArch64::LDURWi: in getMatchingNonSExtOpcode()
282 case AArch64::LDRWpre: in getMatchingNonSExtOpcode()
283 case AArch64::LDRXui: in getMatchingNonSExtOpcode()
284 case AArch64::LDURXi: in getMatchingNonSExtOpcode()
285 case AArch64::LDRXpre: in getMatchingNonSExtOpcode()
286 case AArch64::STRSui: in getMatchingNonSExtOpcode()
287 case AArch64::STURSi: in getMatchingNonSExtOpcode()
288 case AArch64::STRSpre: in getMatchingNonSExtOpcode()
289 case AArch64::LDRSui: in getMatchingNonSExtOpcode()
290 case AArch64::LDURSi: in getMatchingNonSExtOpcode()
291 case AArch64::LDRSpre: in getMatchingNonSExtOpcode()
293 case AArch64::LDRSWui: in getMatchingNonSExtOpcode()
294 return AArch64::LDRWui; in getMatchingNonSExtOpcode()
295 case AArch64::LDURSWi: in getMatchingNonSExtOpcode()
296 return AArch64::LDURWi; in getMatchingNonSExtOpcode()
297 case AArch64::LDRSWpre: in getMatchingNonSExtOpcode()
298 return AArch64::LDRWpre; in getMatchingNonSExtOpcode()
306 case AArch64::STRBBui: in getMatchingWideOpcode()
307 return AArch64::STRHHui; in getMatchingWideOpcode()
308 case AArch64::STRHHui: in getMatchingWideOpcode()
309 return AArch64::STRWui; in getMatchingWideOpcode()
310 case AArch64::STURBBi: in getMatchingWideOpcode()
311 return AArch64::STURHHi; in getMatchingWideOpcode()
312 case AArch64::STURHHi: in getMatchingWideOpcode()
313 return AArch64::STURWi; in getMatchingWideOpcode()
314 case AArch64::STURWi: in getMatchingWideOpcode()
315 return AArch64::STURXi; in getMatchingWideOpcode()
316 case AArch64::STRWui: in getMatchingWideOpcode()
317 return AArch64::STRXui; in getMatchingWideOpcode()
325 case AArch64::STRSui: in getMatchingPairOpcode()
326 case AArch64::STURSi: in getMatchingPairOpcode()
327 return AArch64::STPSi; in getMatchingPairOpcode()
328 case AArch64::STRSpre: in getMatchingPairOpcode()
329 return AArch64::STPSpre; in getMatchingPairOpcode()
330 case AArch64::STRDui: in getMatchingPairOpcode()
331 case AArch64::STURDi: in getMatchingPairOpcode()
332 return AArch64::STPDi; in getMatchingPairOpcode()
333 case AArch64::STRDpre: in getMatchingPairOpcode()
334 return AArch64::STPDpre; in getMatchingPairOpcode()
335 case AArch64::STRQui: in getMatchingPairOpcode()
336 case AArch64::STURQi: in getMatchingPairOpcode()
337 return AArch64::STPQi; in getMatchingPairOpcode()
338 case AArch64::STRQpre: in getMatchingPairOpcode()
339 return AArch64::STPQpre; in getMatchingPairOpcode()
340 case AArch64::STRWui: in getMatchingPairOpcode()
341 case AArch64::STURWi: in getMatchingPairOpcode()
342 return AArch64::STPWi; in getMatchingPairOpcode()
343 case AArch64::STRWpre: in getMatchingPairOpcode()
344 return AArch64::STPWpre; in getMatchingPairOpcode()
345 case AArch64::STRXui: in getMatchingPairOpcode()
346 case AArch64::STURXi: in getMatchingPairOpcode()
347 return AArch64::STPXi; in getMatchingPairOpcode()
348 case AArch64::STRXpre: in getMatchingPairOpcode()
349 return AArch64::STPXpre; in getMatchingPairOpcode()
350 case AArch64::LDRSui: in getMatchingPairOpcode()
351 case AArch64::LDURSi: in getMatchingPairOpcode()
352 return AArch64::LDPSi; in getMatchingPairOpcode()
353 case AArch64::LDRSpre: in getMatchingPairOpcode()
354 return AArch64::LDPSpre; in getMatchingPairOpcode()
355 case AArch64::LDRDui: in getMatchingPairOpcode()
356 case AArch64::LDURDi: in getMatchingPairOpcode()
357 return AArch64::LDPDi; in getMatchingPairOpcode()
358 case AArch64::LDRDpre: in getMatchingPairOpcode()
359 return AArch64::LDPDpre; in getMatchingPairOpcode()
360 case AArch64::LDRQui: in getMatchingPairOpcode()
361 case AArch64::LDURQi: in getMatchingPairOpcode()
362 return AArch64::LDPQi; in getMatchingPairOpcode()
363 case AArch64::LDRQpre: in getMatchingPairOpcode()
364 return AArch64::LDPQpre; in getMatchingPairOpcode()
365 case AArch64::LDRWui: in getMatchingPairOpcode()
366 case AArch64::LDURWi: in getMatchingPairOpcode()
367 return AArch64::LDPWi; in getMatchingPairOpcode()
368 case AArch64::LDRWpre: in getMatchingPairOpcode()
369 return AArch64::LDPWpre; in getMatchingPairOpcode()
370 case AArch64::LDRXui: in getMatchingPairOpcode()
371 case AArch64::LDURXi: in getMatchingPairOpcode()
372 return AArch64::LDPXi; in getMatchingPairOpcode()
373 case AArch64::LDRXpre: in getMatchingPairOpcode()
374 return AArch64::LDPXpre; in getMatchingPairOpcode()
375 case AArch64::LDRSWui: in getMatchingPairOpcode()
376 case AArch64::LDURSWi: in getMatchingPairOpcode()
377 return AArch64::LDPSWi; in getMatchingPairOpcode()
378 case AArch64::LDRSWpre: in getMatchingPairOpcode()
379 return AArch64::LDPSWpre; in getMatchingPairOpcode()
390 case AArch64::LDRBBui: in isMatchingStore()
391 return StOpc == AArch64::STRBBui || StOpc == AArch64::STRHHui || in isMatchingStore()
392 StOpc == AArch64::STRWui || StOpc == AArch64::STRXui; in isMatchingStore()
393 case AArch64::LDURBBi: in isMatchingStore()
394 return StOpc == AArch64::STURBBi || StOpc == AArch64::STURHHi || in isMatchingStore()
395 StOpc == AArch64::STURWi || StOpc == AArch64::STURXi; in isMatchingStore()
396 case AArch64::LDRHHui: in isMatchingStore()
397 return StOpc == AArch64::STRHHui || StOpc == AArch64::STRWui || in isMatchingStore()
398 StOpc == AArch64::STRXui; in isMatchingStore()
399 case AArch64::LDURHHi: in isMatchingStore()
400 return StOpc == AArch64::STURHHi || StOpc == AArch64::STURWi || in isMatchingStore()
401 StOpc == AArch64::STURXi; in isMatchingStore()
402 case AArch64::LDRWui: in isMatchingStore()
403 return StOpc == AArch64::STRWui || StOpc == AArch64::STRXui; in isMatchingStore()
404 case AArch64::LDURWi: in isMatchingStore()
405 return StOpc == AArch64::STURWi || StOpc == AArch64::STURXi; in isMatchingStore()
406 case AArch64::LDRXui: in isMatchingStore()
407 return StOpc == AArch64::STRXui; in isMatchingStore()
408 case AArch64::LDURXi: in isMatchingStore()
409 return StOpc == AArch64::STURXi; in isMatchingStore()
421 case AArch64::STRSui: in getPreIndexedOpcode()
422 return AArch64::STRSpre; in getPreIndexedOpcode()
423 case AArch64::STRDui: in getPreIndexedOpcode()
424 return AArch64::STRDpre; in getPreIndexedOpcode()
425 case AArch64::STRQui: in getPreIndexedOpcode()
426 return AArch64::STRQpre; in getPreIndexedOpcode()
427 case AArch64::STRBBui: in getPreIndexedOpcode()
428 return AArch64::STRBBpre; in getPreIndexedOpcode()
429 case AArch64::STRHHui: in getPreIndexedOpcode()
430 return AArch64::STRHHpre; in getPreIndexedOpcode()
431 case AArch64::STRWui: in getPreIndexedOpcode()
432 return AArch64::STRWpre; in getPreIndexedOpcode()
433 case AArch64::STRXui: in getPreIndexedOpcode()
434 return AArch64::STRXpre; in getPreIndexedOpcode()
435 case AArch64::LDRSui: in getPreIndexedOpcode()
436 return AArch64::LDRSpre; in getPreIndexedOpcode()
437 case AArch64::LDRDui: in getPreIndexedOpcode()
438 return AArch64::LDRDpre; in getPreIndexedOpcode()
439 case AArch64::LDRQui: in getPreIndexedOpcode()
440 return AArch64::LDRQpre; in getPreIndexedOpcode()
441 case AArch64::LDRBBui: in getPreIndexedOpcode()
442 return AArch64::LDRBBpre; in getPreIndexedOpcode()
443 case AArch64::LDRHHui: in getPreIndexedOpcode()
444 return AArch64::LDRHHpre; in getPreIndexedOpcode()
445 case AArch64::LDRWui: in getPreIndexedOpcode()
446 return AArch64::LDRWpre; in getPreIndexedOpcode()
447 case AArch64::LDRXui: in getPreIndexedOpcode()
448 return AArch64::LDRXpre; in getPreIndexedOpcode()
449 case AArch64::LDRSWui: in getPreIndexedOpcode()
450 return AArch64::LDRSWpre; in getPreIndexedOpcode()
451 case AArch64::LDPSi: in getPreIndexedOpcode()
452 return AArch64::LDPSpre; in getPreIndexedOpcode()
453 case AArch64::LDPSWi: in getPreIndexedOpcode()
454 return AArch64::LDPSWpre; in getPreIndexedOpcode()
455 case AArch64::LDPDi: in getPreIndexedOpcode()
456 return AArch64::LDPDpre; in getPreIndexedOpcode()
457 case AArch64::LDPQi: in getPreIndexedOpcode()
458 return AArch64::LDPQpre; in getPreIndexedOpcode()
459 case AArch64::LDPWi: in getPreIndexedOpcode()
460 return AArch64::LDPWpre; in getPreIndexedOpcode()
461 case AArch64::LDPXi: in getPreIndexedOpcode()
462 return AArch64::LDPXpre; in getPreIndexedOpcode()
463 case AArch64::STPSi: in getPreIndexedOpcode()
464 return AArch64::STPSpre; in getPreIndexedOpcode()
465 case AArch64::STPDi: in getPreIndexedOpcode()
466 return AArch64::STPDpre; in getPreIndexedOpcode()
467 case AArch64::STPQi: in getPreIndexedOpcode()
468 return AArch64::STPQpre; in getPreIndexedOpcode()
469 case AArch64::STPWi: in getPreIndexedOpcode()
470 return AArch64::STPWpre; in getPreIndexedOpcode()
471 case AArch64::STPXi: in getPreIndexedOpcode()
472 return AArch64::STPXpre; in getPreIndexedOpcode()
473 case AArch64::STGi: in getPreIndexedOpcode()
474 return AArch64::STGPreIndex; in getPreIndexedOpcode()
475 case AArch64::STZGi: in getPreIndexedOpcode()
476 return AArch64::STZGPreIndex; in getPreIndexedOpcode()
477 case AArch64::ST2Gi: in getPreIndexedOpcode()
478 return AArch64::ST2GPreIndex; in getPreIndexedOpcode()
479 case AArch64::STZ2Gi: in getPreIndexedOpcode()
480 return AArch64::STZ2GPreIndex; in getPreIndexedOpcode()
481 case AArch64::STGPi: in getPreIndexedOpcode()
482 return AArch64::STGPpre; in getPreIndexedOpcode()
490 case AArch64::STRSui: in getPostIndexedOpcode()
491 case AArch64::STURSi: in getPostIndexedOpcode()
492 return AArch64::STRSpost; in getPostIndexedOpcode()
493 case AArch64::STRDui: in getPostIndexedOpcode()
494 case AArch64::STURDi: in getPostIndexedOpcode()
495 return AArch64::STRDpost; in getPostIndexedOpcode()
496 case AArch64::STRQui: in getPostIndexedOpcode()
497 case AArch64::STURQi: in getPostIndexedOpcode()
498 return AArch64::STRQpost; in getPostIndexedOpcode()
499 case AArch64::STRBBui: in getPostIndexedOpcode()
500 return AArch64::STRBBpost; in getPostIndexedOpcode()
501 case AArch64::STRHHui: in getPostIndexedOpcode()
502 return AArch64::STRHHpost; in getPostIndexedOpcode()
503 case AArch64::STRWui: in getPostIndexedOpcode()
504 case AArch64::STURWi: in getPostIndexedOpcode()
505 return AArch64::STRWpost; in getPostIndexedOpcode()
506 case AArch64::STRXui: in getPostIndexedOpcode()
507 case AArch64::STURXi: in getPostIndexedOpcode()
508 return AArch64::STRXpost; in getPostIndexedOpcode()
509 case AArch64::LDRSui: in getPostIndexedOpcode()
510 case AArch64::LDURSi: in getPostIndexedOpcode()
511 return AArch64::LDRSpost; in getPostIndexedOpcode()
512 case AArch64::LDRDui: in getPostIndexedOpcode()
513 case AArch64::LDURDi: in getPostIndexedOpcode()
514 return AArch64::LDRDpost; in getPostIndexedOpcode()
515 case AArch64::LDRQui: in getPostIndexedOpcode()
516 case AArch64::LDURQi: in getPostIndexedOpcode()
517 return AArch64::LDRQpost; in getPostIndexedOpcode()
518 case AArch64::LDRBBui: in getPostIndexedOpcode()
519 return AArch64::LDRBBpost; in getPostIndexedOpcode()
520 case AArch64::LDRHHui: in getPostIndexedOpcode()
521 return AArch64::LDRHHpost; in getPostIndexedOpcode()
522 case AArch64::LDRWui: in getPostIndexedOpcode()
523 case AArch64::LDURWi: in getPostIndexedOpcode()
524 return AArch64::LDRWpost; in getPostIndexedOpcode()
525 case AArch64::LDRXui: in getPostIndexedOpcode()
526 case AArch64::LDURXi: in getPostIndexedOpcode()
527 return AArch64::LDRXpost; in getPostIndexedOpcode()
528 case AArch64::LDRSWui: in getPostIndexedOpcode()
529 return AArch64::LDRSWpost; in getPostIndexedOpcode()
530 case AArch64::LDPSi: in getPostIndexedOpcode()
531 return AArch64::LDPSpost; in getPostIndexedOpcode()
532 case AArch64::LDPSWi: in getPostIndexedOpcode()
533 return AArch64::LDPSWpost; in getPostIndexedOpcode()
534 case AArch64::LDPDi: in getPostIndexedOpcode()
535 return AArch64::LDPDpost; in getPostIndexedOpcode()
536 case AArch64::LDPQi: in getPostIndexedOpcode()
537 return AArch64::LDPQpost; in getPostIndexedOpcode()
538 case AArch64::LDPWi: in getPostIndexedOpcode()
539 return AArch64::LDPWpost; in getPostIndexedOpcode()
540 case AArch64::LDPXi: in getPostIndexedOpcode()
541 return AArch64::LDPXpost; in getPostIndexedOpcode()
542 case AArch64::STPSi: in getPostIndexedOpcode()
543 return AArch64::STPSpost; in getPostIndexedOpcode()
544 case AArch64::STPDi: in getPostIndexedOpcode()
545 return AArch64::STPDpost; in getPostIndexedOpcode()
546 case AArch64::STPQi: in getPostIndexedOpcode()
547 return AArch64::STPQpost; in getPostIndexedOpcode()
548 case AArch64::STPWi: in getPostIndexedOpcode()
549 return AArch64::STPWpost; in getPostIndexedOpcode()
550 case AArch64::STPXi: in getPostIndexedOpcode()
551 return AArch64::STPXpost; in getPostIndexedOpcode()
552 case AArch64::STGi: in getPostIndexedOpcode()
553 return AArch64::STGPostIndex; in getPostIndexedOpcode()
554 case AArch64::STZGi: in getPostIndexedOpcode()
555 return AArch64::STZGPostIndex; in getPostIndexedOpcode()
556 case AArch64::ST2Gi: in getPostIndexedOpcode()
557 return AArch64::ST2GPostIndex; in getPostIndexedOpcode()
558 case AArch64::STZ2Gi: in getPostIndexedOpcode()
559 return AArch64::STZ2GPostIndex; in getPostIndexedOpcode()
560 case AArch64::STGPi: in getPostIndexedOpcode()
561 return AArch64::STGPpost; in getPostIndexedOpcode()
573 case AArch64::STRSpre: in isPreLdStPairCandidate()
574 return (OpcB == AArch64::STRSui) || (OpcB == AArch64::STURSi); in isPreLdStPairCandidate()
575 case AArch64::STRDpre: in isPreLdStPairCandidate()
576 return (OpcB == AArch64::STRDui) || (OpcB == AArch64::STURDi); in isPreLdStPairCandidate()
577 case AArch64::STRQpre: in isPreLdStPairCandidate()
578 return (OpcB == AArch64::STRQui) || (OpcB == AArch64::STURQi); in isPreLdStPairCandidate()
579 case AArch64::STRWpre: in isPreLdStPairCandidate()
580 return (OpcB == AArch64::STRWui) || (OpcB == AArch64::STURWi); in isPreLdStPairCandidate()
581 case AArch64::STRXpre: in isPreLdStPairCandidate()
582 return (OpcB == AArch64::STRXui) || (OpcB == AArch64::STURXi); in isPreLdStPairCandidate()
583 case AArch64::LDRSpre: in isPreLdStPairCandidate()
584 return (OpcB == AArch64::LDRSui) || (OpcB == AArch64::LDURSi); in isPreLdStPairCandidate()
585 case AArch64::LDRDpre: in isPreLdStPairCandidate()
586 return (OpcB == AArch64::LDRDui) || (OpcB == AArch64::LDURDi); in isPreLdStPairCandidate()
587 case AArch64::LDRQpre: in isPreLdStPairCandidate()
588 return (OpcB == AArch64::LDRQui) || (OpcB == AArch64::LDURQi); in isPreLdStPairCandidate()
589 case AArch64::LDRWpre: in isPreLdStPairCandidate()
590 return (OpcB == AArch64::LDRWui) || (OpcB == AArch64::LDURWi); in isPreLdStPairCandidate()
591 case AArch64::LDRXpre: in isPreLdStPairCandidate()
592 return (OpcB == AArch64::LDRXui) || (OpcB == AArch64::LDURXi); in isPreLdStPairCandidate()
593 case AArch64::LDRSWpre: in isPreLdStPairCandidate()
594 return (OpcB == AArch64::LDRSWui) || (OpcB == AArch64::LDURSWi); in isPreLdStPairCandidate()
648 return (Opc == AArch64::STRWui || Opc == AArch64::STURWi || in isPromotableZeroStoreInst()
650 getLdStRegOp(MI).getReg() == AArch64::WZR; in isPromotableZeroStoreInst()
658 case AArch64::LDRBBui: in isPromotableLoadFromStore()
659 case AArch64::LDRHHui: in isPromotableLoadFromStore()
660 case AArch64::LDRWui: in isPromotableLoadFromStore()
661 case AArch64::LDRXui: in isPromotableLoadFromStore()
663 case AArch64::LDURBBi: in isPromotableLoadFromStore()
664 case AArch64::LDURHHi: in isPromotableLoadFromStore()
665 case AArch64::LDURWi: in isPromotableLoadFromStore()
666 case AArch64::LDURXi: in isPromotableLoadFromStore()
677 case AArch64::STRSui: in isMergeableLdStUpdate()
678 case AArch64::STRDui: in isMergeableLdStUpdate()
679 case AArch64::STRQui: in isMergeableLdStUpdate()
680 case AArch64::STRXui: in isMergeableLdStUpdate()
681 case AArch64::STRWui: in isMergeableLdStUpdate()
682 case AArch64::STRHHui: in isMergeableLdStUpdate()
683 case AArch64::STRBBui: in isMergeableLdStUpdate()
684 case AArch64::LDRSui: in isMergeableLdStUpdate()
685 case AArch64::LDRDui: in isMergeableLdStUpdate()
686 case AArch64::LDRQui: in isMergeableLdStUpdate()
687 case AArch64::LDRXui: in isMergeableLdStUpdate()
688 case AArch64::LDRWui: in isMergeableLdStUpdate()
689 case AArch64::LDRHHui: in isMergeableLdStUpdate()
690 case AArch64::LDRBBui: in isMergeableLdStUpdate()
691 case AArch64::STGi: in isMergeableLdStUpdate()
692 case AArch64::STZGi: in isMergeableLdStUpdate()
693 case AArch64::ST2Gi: in isMergeableLdStUpdate()
694 case AArch64::STZ2Gi: in isMergeableLdStUpdate()
695 case AArch64::STGPi: in isMergeableLdStUpdate()
697 case AArch64::STURSi: in isMergeableLdStUpdate()
698 case AArch64::STURDi: in isMergeableLdStUpdate()
699 case AArch64::STURQi: in isMergeableLdStUpdate()
700 case AArch64::STURWi: in isMergeableLdStUpdate()
701 case AArch64::STURXi: in isMergeableLdStUpdate()
702 case AArch64::LDURSi: in isMergeableLdStUpdate()
703 case AArch64::LDURDi: in isMergeableLdStUpdate()
704 case AArch64::LDURQi: in isMergeableLdStUpdate()
705 case AArch64::LDURWi: in isMergeableLdStUpdate()
706 case AArch64::LDURXi: in isMergeableLdStUpdate()
708 case AArch64::LDPSi: in isMergeableLdStUpdate()
709 case AArch64::LDPSWi: in isMergeableLdStUpdate()
710 case AArch64::LDPDi: in isMergeableLdStUpdate()
711 case AArch64::LDPQi: in isMergeableLdStUpdate()
712 case AArch64::LDPWi: in isMergeableLdStUpdate()
713 case AArch64::LDPXi: in isMergeableLdStUpdate()
714 case AArch64::STPSi: in isMergeableLdStUpdate()
715 case AArch64::STPDi: in isMergeableLdStUpdate()
716 case AArch64::STPQi: in isMergeableLdStUpdate()
717 case AArch64::STPWi: in isMergeableLdStUpdate()
718 case AArch64::STPXi: in isMergeableLdStUpdate()
731 case AArch64::ORRWrs: in isRewritableImplicitDef()
732 case AArch64::ADDWri: in isRewritableImplicitDef()
799 .addReg(isNarrowStore(Opc) ? AArch64::WZR : AArch64::XZR) in mergeNarrowZeroStores()
940 assert(MatchingReg != AArch64::NoRegister && in mergePairedInsns()
1098 Register DstRegW = TRI->getSubReg(DstRegX, AArch64::sub_32); in mergePairedInsns()
1114 BuildMI(*MBB, InsertionPoint, DL, TII->get(AArch64::SBFMXri), DstRegX) in mergePairedInsns()
1149 bool IsStoreXReg = TRI->getRegClass(AArch64::GPR64RegClassID)->contains(StRt); in promoteLoadFromStore()
1152 TRI->getRegClass(AArch64::GPR32RegClassID)->contains(StRt)) && in promoteLoadFromStore()
1176 TII->get(IsStoreXReg ? AArch64::ORRXrs : AArch64::ORRWrs), LdRt) in promoteLoadFromStore()
1177 .addReg(IsStoreXReg ? AArch64::XZR : AArch64::WZR) in promoteLoadFromStore()
1201 LdRt, AArch64::sub_32, &AArch64::GPR64RegClass)) in promoteLoadFromStore()
1218 TII->get(IsStoreXReg ? AArch64::ANDXri : AArch64::ANDWri), in promoteLoadFromStore()
1226 TII->get(IsStoreXReg ? AArch64::UBFMXri : AArch64::UBFMWri), in promoteLoadFromStore()
1429 // Note that this relies on the structure of the AArch64 register file. In in canRenameMOP()
1959 AArch64InstrInfo::getLdStBaseOp(MI).getReg() != AArch64::SP) in maybeMoveCFI()
1978 assert((Update->getOpcode() == AArch64::ADDXri || in mergeUpdateInsn()
1979 Update->getOpcode() == AArch64::SUBXri) && in mergeUpdateInsn()
1998 if (Update->getOpcode() == AArch64::SUBXri) in mergeUpdateInsn()
2059 case AArch64::SUBXri: in isMatchingUpdateInsn()
2060 case AArch64::ADDXri: in isMatchingUpdateInsn()
2076 if (MI.getOpcode() == AArch64::SUBXri) in isMatchingUpdateInsn()
2122 if (!isTagStore(MemMI) && MemMI.getOpcode() != AArch64::STGPi) { in findMatchingUpdateInsnForward()
2140 const bool BaseRegSP = BaseReg == AArch64::SP; in findMatchingUpdateInsnForward()
2202 const bool BaseRegSP = BaseReg == AArch64::SP; in findMatchingUpdateInsnBackward()