| # RUN: llc -mtriple=aarch64-unknown-unknown -run-pass=machine-outliner \ | 
 | # RUN: -verify-machineinstrs %s -o - | FileCheck %s | 
 |  | 
 | # Ensure that outlined function names appear as expected. Currently, they are | 
 | # output in order of benefit. | 
 |  | 
 | --- | | 
 |   define void @should_have_fn2() #0 { ret void } | 
 |   define void @should_have_fn0() #0 { ret void } | 
 |   define void @should_have_fn1() #0 { ret void } | 
 |   attributes #0 = { noredzone optsize minsize } | 
 | ... | 
 | --- | 
 |  | 
 | name: should_have_fn2 | 
 | tracksRegLiveness: true | 
 | body:             | | 
 |     bb.0: | 
 |         ; CHECK-LABEL: name:        should_have_fn2 | 
 |         ; CHECK-NOT: OUTLINED_FUNCTION_1 | 
 |         ; CHECK-NOT: OUTLINED_FUNCTION_0 | 
 |         ; CHECK: OUTLINED_FUNCTION_2 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |     bb.1: | 
 |         ; CHECK-DAG: OUTLINED_FUNCTION_2 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |     bb.2: | 
 |         ; CHECK-DAG: OUTLINED_FUNCTION_2 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |     bb.3: | 
 |         ; CHECK-DAG: OUTLINED_FUNCTION_2 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |         $w0 = ORRWri $wzr, 1 | 
 |     bb.4: | 
 |         RET undef $lr | 
 |  | 
 | ... | 
 | --- | 
 |  | 
 | name: should_have_fn0 | 
 |  | 
 | tracksRegLiveness: true | 
 | body:             | | 
 |     bb.0: | 
 |         ; CHECK-LABEL: name: should_have_fn0 | 
 |         ; CHECK-NOT: OUTLINED_FUNCTION_1 | 
 |         ; CHECK-NOT: OUTLINED_FUNCTION_2 | 
 |         ; CHECK: OUTLINED_FUNCTION_0 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |     bb.1: | 
 |         ; CHECK-DAG: OUTLINED_FUNCTION_0 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |     bb.3: | 
 |         ; CHECK-DAG: OUTLINED_FUNCTION_0 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |         $w1 = ORRWri $wzr, 1 | 
 |     bb.4: | 
 |         RET undef $lr | 
 |  | 
 | ... | 
 | --- | 
 |  | 
 | name: should_have_fn1 | 
 | tracksRegLiveness: true | 
 | body:             | | 
 |     bb.0: | 
 |         ; CHECK-LABEL: name: should_have_fn1 | 
 |         ; CHECK-NOT: OUTLINED_FUNCTION_0 | 
 |         ; CHECK-NOT: OUTLINED_FUNCTION_2 | 
 |         ; CHECK: OUTLINED_FUNCTION_1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |     bb.1: | 
 |         ; CHECK-DAG: OUTLINED_FUNCTION_1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |     bb.3: | 
 |         ; CHECK-DAG: OUTLINED_FUNCTION_1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |         $w2 = ORRWri $wzr, 1 | 
 |     bb.4: | 
 |         RET undef $lr |