brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · f597754 Raw
108 lines · plain
1; RUN: llc -mtriple=powerpc %s -o - | FileCheck %s --check-prefixes=CHECK,PPC322; RUN: llc -mtriple=powerpc64 %s -o - | FileCheck %s --check-prefixes=CHECK,PPC643; RUN: llc -mtriple=powerpc64le %s -o - | FileCheck %s --check-prefix=PPC64LE4 5@a = global i32 0, align 46 7define void @f0() {8; CHECK-LABEL: f0:9; CHECK-NOT:   nop10; CHECK:       # %bb.0:11; CHECK-NEXT:    blr12; CHECK-NOT:   .section    __patchable_function_entries13;14; PPC64LE-LABEL: f0:15; PPC64LE-NOT:   nop16; PPC64LE:       # %bb.0:17; PPC64LE-NEXT:  blr18; PPC64LE-NOT:   .section    __patchable_function_entries19  ret void20}21 22define void @f1() "patchable-function-entry"="0" {23; CHECK-LABEL: f1:24; CHECK-NOT:   nop25; CHECK:       # %bb.0:26; CHECK-NEXT:    blr27; CHECK-NOT:   .section    __patchable_function_entries28;29; PPC64LE-LABEL: f1:30; PPC64LE:        # %bb.0:31; PPC64LE-NEXT:   .Ltmp0:32; PPC64LE-NEXT:   b .Ltmp133; PPC64LE-NEXT:   nop34; PPC64LE-NEXT:   std 0, -8(1)35; PPC64LE-NEXT:   mflr 036; PPC64LE-NEXT:   bl __xray_FunctionEntry37; PPC64LE-NEXT:   nop38; PPC64LE-NEXT:   mtlr 039; PPC64LE-NEXT:   .Ltmp1:40; PPC64LE-NEXT:   blr41; PPC64LE-NOT:    .section    __patchable_function_entries42; PPC64LE:     .section        xray_instr_map43; PPC64LE:     .section        xray_fn_idx44  ret void45}46 47define void @f2() "patchable-function-entry"="1" {48; CHECK-LABEL: f2:49; CHECK-LABEL-NEXT:  .Lfunc_begin2:50; CHECK:       # %bb.0:51; CHECK-NEXT:    nop52; CHECK-NEXT:    blr53; CHECK:       .section    __patchable_function_entries54; PPC32:       .p2align    2, 0x055; PPC64:       .p2align    3, 0x056; PPC32-NEXT:  .long   .Lfunc_begin257; PPC64-NEXT:  .quad   .Lfunc_begin258;59; PPC64LE-LABEL: f2:60; PPC64LE-LABEL-NEXT:  .Lfunc_begin2:61; PPC64LE:         # %bb.0:62; PPC64LE-NEXT:    nop63; PPC64LE-NEXT:    blr64; PPC64LE:        .section    __patchable_function_entries65; PPC64LE:        .p2align    3, 0x066; PPC64LE-NEXT:   .quad   .Lfunc_begin267; PPC64LE-NOT:    .section        xray_instr_map68; PPC64LE-NOT:    .section        xray_fn_idx69  ret void70}71 72define i32 @f3() "patchable-function-entry"="1" "patchable-function-prefix"="2" {73; CHECK-LABEL: .Ltmp0:74; CHECK-COUNT-2: nop75; CHECK-LABEL: f3:76; CHECK:       # %bb.0:77; CHECK-NEXT:    nop78; PPC32:         lis 3, a@ha79; PPC32-NEXT:    lwz 3, a@l(3)80; PPC64:         addis 3, 2, .LC0@toc@ha81; PPC64-NEXT:    ld 3, .LC0@toc@l(3)82; PPC64-NEXT:    lwz 3, 0(3)83; CHECK:         blr84; CHECK:       .section    __patchable_function_entries85; PPC32:       .p2align    2, 0x086; PPC64:       .p2align    3, 0x087; PPC32-NEXT:  .long   .Ltmp088; PPC64-NEXT:  .quad   .Ltmp089;90; PC64LE-LABEL:    .Ltmp3:91; PC64LE-COUNT-2:  nop92; PC64LE-LABEL:    f3:93; PC64LE:          # %bb.0:94; PC64LE-NEXT:     nop95; PC64LE:          addis 3, 2, .LC0@toc@ha96; PC64LE-NEXT:     ld 3, .LC0@toc@l(3)97; PC64LE-NEXT:     lwz 3, 0(3)98; PC64LE:          blr99; PC64LE:         .section    __patchable_function_entries100; PPC64LE:        .p2align    3, 0x0101; PPC64LE-NEXT:   .quad   .Ltmp3102; PC64LE-NOT:     .section    xray_instr_map103; PC64LE-NOT:     .section    xray_fn_idx104entry:105  %0 = load i32, ptr @a, align 4106  ret i32 %0107}108