brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.0 KiB · ac281cd Raw
164 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2# RUN: llc %s -mtriple=m68k -start-after=prologepilog -O0 -filetype=asm -o - \3# RUN:   | FileCheck %s4 5#------------------------------------------------------------------------------6# CollapseMOVEM pass finds sequences of MOVEM instructions and collapse them7# into a single instruciton with merged masks. This only works with stack data8#------------------------------------------------------------------------------9 10--- # CollapseMOVEM_RM11#12# CHECK-LABEL: CollapseMOVEM_RM13# CHECK:       movem.l (0,%sp), %d0-%d2/%d7/%a1-%a3/%a514name: CollapseMOVEM_RM15body: |16  bb.0:17    MOVM32mp 1,     0, $sp18    MOVM32mp 2,     4, $sp19    MOVM32mp 4,     8, $sp20    MOVM32mp 128,  12, $sp21    MOVM32mp 512,  16, $sp22    MOVM32mp 1024, 20, $sp23    MOVM32mp 2048, 24, $sp24    MOVM32mp 8192, 28, $sp25 26...27#28# CHECK-LABEL: CollapseMOVEM_RM_Reversed29# CHECK:       movem.l (0,%sp), %d0-%d2/%d7/%a1-%a3/%a530name: CollapseMOVEM_RM_Reversed31body: |32  bb.0:33    MOVM32mp 8192, 28, $sp34    MOVM32mp 2048, 24, $sp35    MOVM32mp 1024, 20, $sp36    MOVM32mp 512,  16, $sp37    MOVM32mp 128,  12, $sp38    MOVM32mp 4,     8, $sp39    MOVM32mp 2,     4, $sp40    MOVM32mp 1,     0, $sp41 42...43# This async reg/mem order is impossible to store with MOVEM44# CHECK-LABEL: CollapseMOVEM_RM_ReversedStoreOrder45# CHECK:       movem.l (0,%sp), %a546# CHECK:       movem.l (4,%sp), %a347# CHECK:       movem.l (8,%sp), %a248# CHECK:       movem.l (12,%sp), %a149# CHECK:       movem.l (16,%sp), %d750# CHECK:       movem.l (20,%sp), %d251# CHECK:       movem.l (24,%sp), %d152# CHECK:       movem.l (28,%sp), %d053name: CollapseMOVEM_RM_ReversedStoreOrder54body: |55  bb.0:56    MOVM32mp 8192,  0, $sp57    MOVM32mp 2048,  4, $sp58    MOVM32mp 1024,  8, $sp59    MOVM32mp 512,  12, $sp60    MOVM32mp 128,  16, $sp61    MOVM32mp 4,    20, $sp62    MOVM32mp 2,    24, $sp63    MOVM32mp 1,    28, $sp64 65...66--- # CollapseMOVEM_MR67#68# CHECK-LABEL: CollapseMOVEM_MR69# CHECK:       movem.l %d0-%d2/%d7/%a1-%a3/%a5, (0,%sp)70name: CollapseMOVEM_MR71body: |72  bb.0:73    MOVM32pm   0, $sp, 174    MOVM32pm   4, $sp, 275    MOVM32pm   8, $sp, 476    MOVM32pm  12, $sp, 12877    MOVM32pm  16, $sp, 51278    MOVM32pm  20, $sp, 102479    MOVM32pm  24, $sp, 204880    MOVM32pm  28, $sp, 819281 82...83--- # CollapseMOVEM_Mixed84#85# CHECK-LABEL: CollapseMOVEM_Mixed86# CHECK:       movem.l %d0-%d1, (0,%sp)87# CHECK:       movem.l (8,%sp), %d2/%d788# CHECK:       movem.l %a1-%a2, (16,%sp)89# CHECK:       movem.l (24,%sp), %a390# CHECK:       movem.l %a5, (28,%sp)91name: CollapseMOVEM_Mixed92body: |93  bb.0:94    MOVM32pm  0, $sp, 195    MOVM32pm  4, $sp, 296    MOVM32mp  4, 8, $sp97    MOVM32mp  128, 12, $sp98    MOVM32pm  16, $sp, 51299    MOVM32pm  20, $sp, 1024100    MOVM32mp  2048, 24, $sp101    MOVM32pm  28, $sp, 8192102 103...104--- # CollapseMOVEM_Zero105#106# CHECK-LABEL: CollapseMOVEM_Zero107# CHECK:       movem.l %d0-%d4, (-8,%sp)108name: CollapseMOVEM_Zero109body: |110  bb.0:111    MOVM32pm -8, $sp,  1112    MOVM32pm -4, $sp,  2113    MOVM32pm  0, $sp,  4114    MOVM32pm  4, $sp,  8115    MOVM32pm  8, $sp, 16116 117...118#119# CHECK-LABEL: CollapseMOVEM_Zero_Mixed120# CHECK:       movem.l %d3, (4,%sp)121# CHECK:       movem.l %d0-%d2, (-8,%sp)122# CHECK:       movem.l %d4, (8,%sp)123name: CollapseMOVEM_Zero_Mixed124body: |125  bb.0:126    MOVM32pm  4, $sp,  8127    MOVM32pm -4, $sp,  2128    MOVM32pm -8, $sp,  1129    MOVM32pm  0, $sp,  4130    MOVM32pm  8, $sp, 16131 132...133--- # CollapseMOVEM_Zero_Reversed134#135# CHECK-LABEL: CollapseMOVEM_Zero_Reversed136# CHECK:       movem.l %d0-%d4, (-8,%sp)137name: CollapseMOVEM_Zero_Reversed138body: |139  bb.0:140    MOVM32pm  8, $sp, 16141    MOVM32pm  4, $sp,  8142    MOVM32pm  0, $sp,  4143    MOVM32pm -4, $sp,  2144    MOVM32pm -8, $sp,  1145 146...147#148# CHECK-LABEL: CollapseMOVEM_Zero_ReversedStoreOrder149# CHECK:       movem.l %d0, (8,%sp)150# CHECK:       movem.l %d1, (4,%sp)151# CHECK:       movem.l %d2, (0,%sp)152# CHECK:       movem.l %d3, (-4,%sp)153# CHECK:       movem.l %d4, (-8,%sp)154name: CollapseMOVEM_Zero_ReversedStoreOrder155body: |156  bb.0:157    MOVM32pm  8, $sp,  1158    MOVM32pm  4, $sp,  2159    MOVM32pm  0, $sp,  4160    MOVM32pm -4, $sp,  8161    MOVM32pm -8, $sp, 16162 163...164