109 lines · plain
1; This test should verify that adding !pcsections metadata is encoded properly2; by the AsmPrinter. For tests to check that metadata is propagated to3; assembly, see pcsections-*.ll tests.4 5; RUN: llc -O0 < %s | FileCheck %s --check-prefixes=CHECK,DEFCM6; RUN: llc -O1 < %s | FileCheck %s --check-prefixes=CHECK,DEFCM7; RUN: llc -O2 < %s | FileCheck %s --check-prefixes=CHECK,DEFCM8; RUN: llc -O3 < %s | FileCheck %s --check-prefixes=CHECK,DEFCM9; RUN: llc -O1 -code-model=large < %s | FileCheck %s --check-prefixes=CHECK,LARGE10 11target triple = "x86_64-unknown-linux-gnu"12 13@foo = dso_local global i64 0, align 814@bar = dso_local global i64 0, align 815 16define void @empty_no_aux() !pcsections !0 {17; CHECK-LABEL: empty_no_aux:18; CHECK-NEXT: .Lfunc_begin019; CHECK: # %bb.0: # %entry20; CHECK-NEXT: retq21; CHECK-NEXT: .Lfunc_end0:22; CHECK: .section section_no_aux,"awo",@progbits,.{{l?}}text23; CHECK-NEXT: .Lpcsection_base0:24; DEFCM-NEXT: .long .Lfunc_begin0-.Lpcsection_base025; LARGE-NEXT: .quad .Lfunc_begin0-.Lpcsection_base026; CHECK-NEXT: .long .Lfunc_end0-.Lfunc_begin027; CHECK-NEXT: .{{l?}}text28entry:29 ret void30}31 32define void @empty_aux() !pcsections !1 {33; CHECK-LABEL: empty_aux:34; CHECK-NEXT: .Lfunc_begin135; CHECK: # %bb.0: # %entry36; CHECK-NEXT: retq37; CHECK-NEXT: .Lfunc_end1:38; CHECK: .section section_aux,"awo",@progbits,.{{l?}}text39; CHECK-NEXT: .Lpcsection_base1:40; DEFCM-NEXT: .long .Lfunc_begin1-.Lpcsection_base141; LARGE-NEXT: .quad .Lfunc_begin1-.Lpcsection_base142; CHECK-NEXT: .long .Lfunc_end1-.Lfunc_begin143; CHECK-NEXT: .long 1044; CHECK-NEXT: .long 2045; CHECK-NEXT: .long 3046; CHECK-NEXT: .{{l?}}text47entry:48 ret void49}50 51define i64 @multiple() !pcsections !0 {52; CHECK-LABEL: multiple:53; CHECK-NEXT: .Lfunc_begin254; CHECK: # %bb.0: # %entry55; CHECK: .Lpcsection0:56; CHECK-NEXT: movq57; CHECK-NEXT: retq58; CHECK-NEXT: .Lfunc_end2:59; CHECK: .section section_no_aux,"awo",@progbits,.{{l?}}text60; CHECK-NEXT: .Lpcsection_base2:61; DEFCM-NEXT: .long .Lfunc_begin2-.Lpcsection_base262; LARGE-NEXT: .quad .Lfunc_begin2-.Lpcsection_base263; CHECK-NEXT: .long .Lfunc_end2-.Lfunc_begin264; CHECK-NEXT: .section section_aux_42,"awo",@progbits,.{{l?}}text65; CHECK-NEXT: .Lpcsection_base3:66; DEFCM-NEXT: .long .Lpcsection0-.Lpcsection_base367; LARGE-NEXT: .quad .Lpcsection0-.Lpcsection_base368; CHECK-NEXT: .long 4269; CHECK-NEXT: .section section_aux_21264,"awo",@progbits,.{{l?}}text70; CHECK-NEXT: .Lpcsection_base4:71; DEFCM-NEXT: .long .Lpcsection0-.Lpcsection_base472; LARGE-NEXT: .quad .Lpcsection0-.Lpcsection_base473; CHECK-NEXT: .long 2126474; CHECK-NEXT: .{{l?}}text75entry:76 %0 = load i64, ptr @bar, align 8, !pcsections !277 ret i64 %078}79 80define void @multiple_uleb128() !pcsections !6 {81; CHECK-LABEL: multiple_uleb128:82; CHECK: .section section_aux,"awo",@progbits,.{{l?}}text83; CHECK-NEXT: .Lpcsection_base5:84; DEFCM-NEXT: .long .Lfunc_begin3-.Lpcsection_base585; LARGE-NEXT: .quad .Lfunc_begin3-.Lpcsection_base586; CHECK-NEXT: .uleb128 .Lfunc_end3-.Lfunc_begin387; CHECK-NEXT: .byte 4288; CHECK-NEXT: .ascii "\345\216&"89; CHECK-NEXT: .byte 25590; CHECK-NEXT: .section section_aux_21264,"awo",@progbits,.{{l?}}text91; CHECK-NEXT: .Lpcsection_base6:92; DEFCM-NEXT: .long .Lfunc_begin3-.Lpcsection_base693; LARGE-NEXT: .quad .Lfunc_begin3-.Lpcsection_base694; CHECK-NEXT: .long .Lfunc_end3-.Lfunc_begin395; CHECK-NEXT: .long 2126496; CHECK-NEXT: .{{l?}}text97entry:98 ret void99}100 101!0 = !{!"section_no_aux"}102!1 = !{!"section_aux", !3}103!2 = !{!"section_aux_42", !4, !"section_aux_21264", !5}104!3 = !{i32 10, i32 20, i32 30}105!4 = !{i32 42}106!5 = !{i32 21264}107!6 = !{!"section_aux!C", !7, !"section_aux_21264", !5}108!7 = !{i64 42, i32 624485, i8 255}109