115 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_cpsr_r12_ok() #0 { ret void }7 define void @dont_outline_cpsr_r12_1() #0 { ret void }8 define void @dont_outline_cpsr_r12_2() #0 { ret void }9 declare void @z(i32, i32, i32, i32)10 11 attributes #0 = { minsize optsize }12...13---14 15name: outline_cpsr_r12_ok16tracksRegLiveness: true17body: |18 ; CHECK-LABEL: name: outline_cpsr_r12_ok19 ; CHECK: bb.0:20 ; CHECK: BL @OUTLINED_FUNCTION_021 ; CHECK: $r3 = MOVr $r12, 14 /* CC::al */, $noreg, $noreg22 ; CHECK: bb.1:23 ; CHECK: BL @OUTLINED_FUNCTION_024 ; CHECK: $r4 = MOVr $r12, 14 /* CC::al */, $noreg, $noreg25 bb.0:26 $r12 = MOVi 1, 14, $noreg, $noreg27 CMPri $r12, 42, 14, $noreg, implicit-def $cpsr28 $r0 = MOVi 1, 14, $noreg, $noreg29 $r1 = MOVi 1, 14, $noreg, $noreg30 $r2 = MOVi 1, 14, $noreg, $noreg31 $r3 = MOVi 1, 14, $noreg, $noreg32 BL @z33 $r3 = MOVr $r12, 14, $noreg, $noreg34 bb.1:35 $r12 = MOVi 1, 14, $noreg, $noreg36 CMPri $r12, 42, 14, $noreg, implicit-def $cpsr37 $r0 = MOVi 1, 14, $noreg, $noreg38 $r1 = MOVi 1, 14, $noreg, $noreg39 $r2 = MOVi 1, 14, $noreg, $noreg40 $r3 = MOVi 1, 14, $noreg, $noreg41 BL @z42 $r4 = MOVr $r12, 14, $noreg, $noreg43 bb.2:44 BX_RET 14, $noreg45...46---47 48name: dont_outline_cpsr_r12_149tracksRegLiveness: true50body: |51 ; CHECK-LABEL: name: dont_outline_cpsr_r12_152 ; CHECK: bb.0:53 ; CHECK: BL @OUTLINED_FUNCTION_154 ; CHECK: bb.1:55 ; CHECK: BL @OUTLINED_FUNCTION_156 ; CHECK-LABEL: bb.2:57 ; CHECK-NOT: BL @OUTLINED_FUNCTION_158 bb.0:59 $r0 = MOVi 2, 14, $noreg, $noreg60 $r1 = MOVi 2, 14, $noreg, $noreg61 $r2 = MOVi 2, 14, $noreg, $noreg62 $r3 = MOVi 2, 14, $noreg, $noreg63 BL @z64 bb.1:65 $r0 = MOVi 2, 14, $noreg, $noreg66 $r1 = MOVi 2, 14, $noreg, $noreg67 $r2 = MOVi 2, 14, $noreg, $noreg68 $r3 = MOVi 2, 14, $noreg, $noreg69 BL @z70 bb.2:71 $r12 = MOVi 1, 14, $noreg, $noreg72 CMPri $r12, 42, 14, $noreg, implicit-def $cpsr73 $r0 = MOVi 2, 14, $noreg, $noreg74 $r1 = MOVi 2, 14, $noreg, $noreg75 $r2 = MOVi 2, 14, $noreg, $noreg76 $r3 = MOVi 2, 14, $noreg, $noreg77 BL @z78 bb.3:79 liveins: $cpsr, $r1280 BX_RET 14, $noreg81...82---83 84name: dont_outline_cpsr_r12_285tracksRegLiveness: true86body: |87 ; CHECK-LABEL: name: dont_outline_cpsr_r12_288 ; CHECK-NOT: BL @OUTLINED_FUNCTION89 bb.0:90 liveins: $r1291 CMPri $r12, 42, 14, $noreg, implicit-def $cpsr92 $r0 = MOVi 3, 14, $noreg, $noreg93 $r1 = MOVi 3, 14, $noreg, $noreg94 $r2 = MOVi 3, 14, $noreg, $noreg95 $r3 = MOVi 3, 14, $noreg, $noreg96 BL @z97 bb.1:98 liveins: $r1299 CMPri $r12, 42, 14, $noreg, implicit-def $cpsr100 $r0 = MOVi 3, 14, $noreg, $noreg101 $r1 = MOVi 3, 14, $noreg, $noreg102 $r2 = MOVi 3, 14, $noreg, $noreg103 $r3 = MOVi 3, 14, $noreg, $noreg104 BL @z105 bb.2:106 liveins: $r12107 CMPri $r12, 42, 14, $noreg, implicit-def $cpsr108 $r0 = MOVi 3, 14, $noreg, $noreg109 $r1 = MOVi 3, 14, $noreg, $noreg110 $r2 = MOVi 3, 14, $noreg, $noreg111 $r3 = MOVi 3, 14, $noreg, $noreg112 BL @z113 bb.3:114 BX_RET 14, $noreg115