1# RUN: llc -mtriple=arm-- -run-pass=machine-outliner -verify-machineinstrs \ 2# RUN: %s -o - | FileCheck %s 3 4--- | 5 define void @stack_use_no_lr_save_1() #0 { ret void } 6 define void @stack_use_no_lr_save_2() #0 { ret void } 7 8 attributes #0 = { minsize optsize } 9... 10--- 11 12name: stack_use_no_lr_save_1 13tracksRegLiveness: true 14body: | 15 bb.0: 16 ; CHECK-LABEL: name: stack_use_no_lr_save_1 17 ; CHECK: BL @OUTLINED_FUNCTION_0 18 $r0 = MOVi 1, 14, $noreg, $noreg 19 $r0 = MOVi 1, 14, $noreg, $noreg 20 $r0 = LDRi12 $sp, 0, 14, $noreg 21 $r0 = LDRi12 $sp, 0, 14, $noreg 22 $r0 = LDRi12 $sp, 0, 14, $noreg 23 $r0 = MOVi 1, 14, $noreg, $noreg 24 $r0 = LDRi12 $sp, 0, 14, $noreg 25 $r0 = MOVi 1, 14, $noreg, $noreg 26 bb.1: 27 liveins: $r0, $r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11 28 BX_RET 14, $noreg 29... 30--- 31 32name: stack_use_no_lr_save_2 33tracksRegLiveness: true 34body: | 35 bb.0: 36 ; CHECK-LABEL: name: stack_use_no_lr_save_2 37 ; CHECK: BL @OUTLINED_FUNCTION_0 38 $r0 = MOVi 1, 14, $noreg, $noreg 39 $r0 = MOVi 1, 14, $noreg, $noreg 40 $r0 = LDRi12 $sp, 0, 14, $noreg 41 $r0 = LDRi12 $sp, 0, 14, $noreg 42 $r0 = LDRi12 $sp, 0, 14, $noreg 43 $r0 = MOVi 1, 14, $noreg, $noreg 44 $r0 = LDRi12 $sp, 0, 14, $noreg 45 $r0 = MOVi 1, 14, $noreg, $noreg 46 bb.1: 47 BX_RET 14, $noreg 48 49 ;CHECK: name: OUTLINED_FUNCTION_0 50 ;CHECK: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 51 ;CHECK-NEXT: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 52 ;CHECK-NEXT: $r0 = LDRi12 $sp, 0, 14 /* CC::al */, $noreg 53 ;CHECK-NEXT: $r0 = LDRi12 $sp, 0, 14 /* CC::al */, $noreg 54 ;CHECK-NEXT: $r0 = LDRi12 $sp, 0, 14 /* CC::al */, $noreg 55 ;CHECK-NEXT: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 56 ;CHECK-NEXT: $r0 = LDRi12 $sp, 0, 14 /* CC::al */, $noreg 57 ;CHECK-NEXT: $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 58 ;CHECK-NEXT: MOVPCLR 14 /* CC::al */, $noreg 59