1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=arm-- -run-pass=machine-outliner -verify-machineinstrs \ 3# RUN: %s -o - | FileCheck %s 4 5--- | 6 define void @outline_no_save_ok_arm() #0 { ret void } 7 define void @outline_no_save_ok_thumb() #1 { ret void } 8 9 declare void @foo() 10 11 attributes #0 = { minsize optsize } 12 attributes #1 = { minsize optsize "target-features"="+armv7-a,+thumb-mode" } 13... 14--- 15 16name: outline_no_save_ok_arm 17tracksRegLiveness: true 18body: | 19 ; CHECK-LABEL: name: outline_no_save_ok_arm 20 ; CHECK: bb.0: 21 ; CHECK: BL @OUTLINED_FUNCTION_1 22 ; CHECK: bb.1: 23 ; CHECK: BL @OUTLINED_FUNCTION_1 24 ; CHECK: bb.2: 25 ; CHECK: BX_RET 14 /* CC::al */, $noreg 26 bb.0: 27 $r2 = MOVi 1, 14, $noreg, $noreg 28 $r2 = MOVi 1, 14, $noreg, $noreg 29 $r2 = MOVi 1, 14, $noreg, $noreg 30 $r2 = MOVi 1, 14, $noreg, $noreg 31 $r3 = LDRi12 $sp, 8, 14, $noreg 32 bb.1: 33 $r2 = MOVi 1, 14, $noreg, $noreg 34 $r2 = MOVi 1, 14, $noreg, $noreg 35 $r2 = MOVi 1, 14, $noreg, $noreg 36 $r2 = MOVi 1, 14, $noreg, $noreg 37 $r3 = LDRi12 $sp, 8, 14, $noreg 38 bb.2: 39 BX_RET 14, $noreg 40... 41--- 42 43name: outline_no_save_ok_thumb 44tracksRegLiveness: true 45body: | 46 ; CHECK-LABEL: name: outline_no_save_ok_thumb 47 ; CHECK: bb.0: 48 ; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0 49 ; CHECK: bb.1: 50 ; CHECK: tBL 14 /* CC::al */, $noreg, @OUTLINED_FUNCTION_0 51 ; CHECK: bb.2: 52 ; CHECK: tBX_RET 14 /* CC::al */, $noreg 53 bb.0: 54 $r2 = t2MOVi 1, 14, $noreg, $noreg 55 $r2 = t2MOVi 1, 14, $noreg, $noreg 56 $r2 = t2MOVi 1, 14, $noreg, $noreg 57 $r2 = t2MOVi 1, 14, $noreg, $noreg 58 t2STRi12 $r2, $sp, 0, 14, $noreg 59 bb.1: 60 $r2 = t2MOVi 1, 14, $noreg, $noreg 61 $r2 = t2MOVi 1, 14, $noreg, $noreg 62 $r2 = t2MOVi 1, 14, $noreg, $noreg 63 $r2 = t2MOVi 1, 14, $noreg, $noreg 64 t2STRi12 $r2, $sp, 0, 14, $noreg 65 bb.2: 66 tBX_RET 14, $noreg 67 68 ; CHECK-LABEL: name: OUTLINED_FUNCTION_0 69 ; CHECK: bb.0: 70 ; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg 71 ; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg 72 ; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg 73 ; CHECK: $r2 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg 74 ; CHECK: t2STRi12 $r2, $sp, 0, 14 /* CC::al */, $noreg 75 ; CHECK: tBX_RET 14 /* CC::al */, $noreg 76 77 ; CHECK-LABEL: name: OUTLINED_FUNCTION_1 78 ; CHECK: bb.0: 79 ; CHECK: $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 80 ; CHECK: $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 81 ; CHECK: $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 82 ; CHECK: $r2 = MOVi 1, 14 /* CC::al */, $noreg, $noreg 83 ; CHECK: $r3 = LDRi12 $sp, 8, 14 /* CC::al */, $noreg 84 ; CHECK: MOVPCLR 14 /* CC::al */, $noreg 85