169 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=arm-- -run-pass=machine-outliner -verify-machineinstrs \3# RUN: %s -o - | FileCheck %s4 5--- |6 define void @outline_save_reg_arm() #0 { ret void }7 define void @outline_save_reg_thumb() #1 { ret void }8 declare void @z()9 10 attributes #0 = { minsize optsize }11 attributes #1 = { minsize optsize "target-features"="+armv7-a,+thumb-mode" }12...13---14 15name: outline_save_reg_arm16tracksRegLiveness: true17body: |18 ; CHECK-LABEL: name: outline_save_reg_arm19 ; CHECK: bb.0:20 ; CHECK: liveins: $lr21 ; CHECK: $r6 = MOVr killed $lr, 14 /* CC::al */, $noreg, $noreg22 ; CHECK: BL @OUTLINED_FUNCTION_123 ; CHECK: $lr = MOVr killed $r6, 14 /* CC::al */, $noreg, $noreg24 ; CHECK: bb.1:25 ; CHECK: liveins: $lr26 ; CHECK: $r6 = MOVr killed $lr, 14 /* CC::al */, $noreg, $noreg27 ; CHECK: BL @OUTLINED_FUNCTION_128 ; CHECK: $lr = MOVr killed $r6, 14 /* CC::al */, $noreg, $noreg29 ; CHECK: bb.2:30 ; CHECK: liveins: $lr31 ; CHECK: early-clobber $sp = frame-setup STR_PRE_IMM killed $lr, $sp, -8, 14 /* CC::al */, $noreg32 ; CHECK: BL @OUTLINED_FUNCTION_133 ; CHECK: $lr, $sp = frame-destroy LDR_POST_IMM $sp, $noreg, 8, 14 /* CC::al */, $noreg34 ; CHECK: bb.3:35 ; CHECK: liveins: $lr, $r0, $r6, $r7, $r8, $r9, $r10, $r1136 ; CHECK: $r6 = MOVr killed $lr, 14 /* CC::al */, $noreg, $noreg37 ; CHECK: BL @OUTLINED_FUNCTION_138 ; CHECK: $lr = MOVr killed $r6, 14 /* CC::al */, $noreg, $noreg39 ; CHECK: bb.4:40 ; CHECK: liveins: $lr41 ; CHECK: $r2 = MOVr $lr, 14 /* CC::al */, $noreg, $noreg42 ; CHECK: BX_RET 14 /* CC::al */, $noreg43 bb.0:44 liveins: $lr45 $r0 = MOVi 1, 14, $noreg, $noreg46 $r1 = MOVi 1, 14, $noreg, $noreg47 $r2 = MOVi 1, 14, $noreg, $noreg48 $r3 = MOVi 1, 14, $noreg, $noreg49 $r4 = MOVi 1, 14, $noreg, $noreg50 $r5 = MOVi 1, 14, $noreg, $noreg51 bb.1:52 liveins: $lr53 $r0 = MOVi 1, 14, $noreg, $noreg54 $r1 = MOVi 1, 14, $noreg, $noreg55 $r2 = MOVi 1, 14, $noreg, $noreg56 $r3 = MOVi 1, 14, $noreg, $noreg57 $r4 = MOVi 1, 14, $noreg, $noreg58 $r5 = MOVi 1, 14, $noreg, $noreg59 bb.2:60 liveins: $lr61 $r0 = MOVi 1, 14, $noreg, $noreg62 $r1 = MOVi 1, 14, $noreg, $noreg63 $r2 = MOVi 1, 14, $noreg, $noreg64 $r3 = MOVi 1, 14, $noreg, $noreg65 $r4 = MOVi 1, 14, $noreg, $noreg66 $r5 = MOVi 1, 14, $noreg, $noreg67 bb.3:68 liveins: $lr, $r0, $r6, $r7, $r8, $r9, $r10, $r1169 $r0 = MOVi 1, 14, $noreg, $noreg70 $r1 = MOVi 1, 14, $noreg, $noreg71 $r2 = MOVi 1, 14, $noreg, $noreg72 $r3 = MOVi 1, 14, $noreg, $noreg73 $r4 = MOVi 1, 14, $noreg, $noreg74 $r5 = MOVi 1, 14, $noreg, $noreg75 bb.4:76 liveins: $lr77 $r2 = MOVr $lr, 14, $noreg, $noreg78 BX_RET 14, $noreg79...80---81 82name: outline_save_reg_thumb83tracksRegLiveness: true84body: |85 ; CHECK-LABEL: name: outline_save_reg_thumb86 ; CHECK: bb.0:87 ; CHECK: liveins: $lr88 ; CHECK: $r6 = tMOVr killed $lr, 14 /* CC::al */, $noreg89 ; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_090 ; CHECK: $lr = tMOVr killed $r6, 14 /* CC::al */, $noreg91 ; CHECK: bb.1:92 ; CHECK: liveins: $lr93 ; CHECK: $r6 = tMOVr killed $lr, 14 /* CC::al */, $noreg94 ; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_095 ; CHECK: $lr = tMOVr killed $r6, 14 /* CC::al */, $noreg96 ; CHECK: bb.2:97 ; CHECK: liveins: $lr98 ; CHECK: early-clobber $sp = frame-setup t2STR_PRE killed $lr, $sp, -8, 14 /* CC::al */, $noreg99 ; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0100 ; CHECK: $lr, $sp = frame-destroy t2LDR_POST $sp, 8, 14 /* CC::al */, $noreg101 ; CHECK: bb.3:102 ; CHECK: liveins: $lr, $r0, $r6, $r7103 ; CHECK: $r6 = tMOVr killed $lr, 14 /* CC::al */, $noreg104 ; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0105 ; CHECK: $lr = tMOVr killed $r6, 14 /* CC::al */, $noreg106 ; CHECK: bb.4:107 ; CHECK: liveins: $lr108 ; CHECK: $r2 = tMOVr $lr, 14 /* CC::al */, $noreg109 ; CHECK: tBX_RET 14 /* CC::al */, $noreg110 bb.0:111 liveins: $lr112 $r0 = t2MOVi 1, 14, $noreg, $noreg113 $r1 = t2MOVi 1, 14, $noreg, $noreg114 $r2 = t2MOVi 1, 14, $noreg, $noreg115 $r3 = t2MOVi 1, 14, $noreg, $noreg116 $r4 = t2MOVi 1, 14, $noreg, $noreg117 $r5 = t2MOVi 1, 14, $noreg, $noreg118 bb.1:119 liveins: $lr120 $r0 = t2MOVi 1, 14, $noreg, $noreg121 $r1 = t2MOVi 1, 14, $noreg, $noreg122 $r2 = t2MOVi 1, 14, $noreg, $noreg123 $r3 = t2MOVi 1, 14, $noreg, $noreg124 $r4 = t2MOVi 1, 14, $noreg, $noreg125 $r5 = t2MOVi 1, 14, $noreg, $noreg126 bb.2:127 liveins: $lr128 $r0 = t2MOVi 1, 14, $noreg, $noreg129 $r1 = t2MOVi 1, 14, $noreg, $noreg130 $r2 = t2MOVi 1, 14, $noreg, $noreg131 $r3 = t2MOVi 1, 14, $noreg, $noreg132 $r4 = t2MOVi 1, 14, $noreg, $noreg133 $r5 = t2MOVi 1, 14, $noreg, $noreg134 bb.3:135 liveins: $lr, $r0, $r6, $r7, $r8, $r9, $r10, $r11136 $r0 = t2MOVi 1, 14, $noreg, $noreg137 $r1 = t2MOVi 1, 14, $noreg, $noreg138 $r2 = t2MOVi 1, 14, $noreg, $noreg139 $r3 = t2MOVi 1, 14, $noreg, $noreg140 $r4 = t2MOVi 1, 14, $noreg, $noreg141 $r5 = t2MOVi 1, 14, $noreg, $noreg142 bb.4:143 liveins: $lr144 $r2 = tMOVr $lr, 14, $noreg145 tBX_RET 14, $noreg146 147 ; CHECK-LABEL: name: OUTLINED_FUNCTION_0148 ; CHECK: bb.0:149 ; CHECK: liveins: $lr150 ; CHECK: $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg151 ; CHECK: $r1 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg152 ; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg153 ; CHECK: $r3 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg154 ; CHECK: $r4 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg155 ; CHECK: $r5 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg156 ; CHECK: tBX_RET 14 /* CC::al */, $noreg157 158 ; CHECK-LABEL: name: OUTLINED_FUNCTION_1159 ; CHECK: bb.0:160 ; CHECK: liveins: $lr161 ; CHECK: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg162 ; CHECK: $r1 = MOVi 1, 14 /* CC::al */, $noreg, $noreg163 ; CHECK: $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg164 ; CHECK: $r3 = MOVi 1, 14 /* CC::al */, $noreg, $noreg165 ; CHECK: $r4 = MOVi 1, 14 /* CC::al */, $noreg, $noreg166 ; CHECK: $r5 = MOVi 1, 14 /* CC::al */, $noreg, $noreg167 ; CHECK: MOVPCLR 14 /* CC::al */, $noreg168 169