1 ; RUN: llc < %s -mtriple=sparc-linux-gnu | FileCheck -check-prefix=LINUX-NO-FP %s 2 ; RUN: llc < %s -mtriple=sparc-linux-gnu -disable-fp-elim | FileCheck -check-prefix=LINUX-FP %s 3 4 define void @func() { 5 entry: 6 unreachable 7 } 8 9 ; An empty function is perfectly fine on ELF. 10 ; LINUX-NO-FP: func: 11 ; LINUX-NO-FP-NEXT: .cfi_startproc 12 ; LINUX-NO-FP-NEXT: {{^}}! 13 ; LINUX-NO-FP-NEXT: {{^}}.L{{.*}}:{{$}} 14 ; LINUX-NO-FP-NEXT: .size func, .L{{.*}}-func 15 ; LINUX-NO-FP-NEXT: .cfi_endproc 16 17 ; A cfi directive can point to the end of a function. It (and in fact the 18 ; entire body) could be optimized out because of the unreachable, but we 19 ; don't do it right now. 20 ; LINUX-FP: func: 21 ; LINUX-FP-NEXT: .cfi_startproc 22 ; LINUX-FP-NEXT: {{^}}! 23 ; LINUX-FP-NEXT: save %sp, -96, %sp 24 ; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 25 ; LINUX-FP-NEXT: .cfi_def_cfa_register %fp 26 ; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 27 ; LINUX-FP-NEXT: .cfi_window_save 28 ; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 29 ; LINUX-FP-NEXT: .cfi_register 15, 31 30 ; LINUX-FP-NEXT: {{^}}.L{{.*}}:{{$}} 31 ; LINUX-FP-NEXT: .size func, .Lfunc_end0-func 32 ; LINUX-FP-NEXT: .cfi_endproc 33