brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 689f83f Raw
81 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 22; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s3 4; %ptr has a hint to %rdi in entry block, it also has a interference with %rdi5; in block if.then. It should be split in cold block if.then.6; Similarly %p2, %p3, %p4, %p5 and %p6 should also be split in cold block7; if.then.8 9define ptr @foo(ptr %ptr, i64 %p2, i64 %p3, i64 %p4, i64 %p5, i64 %p6) {10; CHECK-LABEL: foo:11; CHECK:       # %bb.0: # %entry12; CHECK-NEXT:    testq %rdi, %rdi13; CHECK-NEXT:    je .LBB0_114; CHECK-NEXT:  # %bb.2: # %if.end15; CHECK-NEXT:    incq %rdi16; CHECK-NEXT:    jmp qux@PLT # TAILCALL17; CHECK-NEXT:  .LBB0_1: # %if.then18; CHECK-NEXT:    pushq %r1519; CHECK-NEXT:    .cfi_def_cfa_offset 1620; CHECK-NEXT:    pushq %r1421; CHECK-NEXT:    .cfi_def_cfa_offset 2422; CHECK-NEXT:    pushq %r1323; CHECK-NEXT:    .cfi_def_cfa_offset 3224; CHECK-NEXT:    pushq %r1225; CHECK-NEXT:    .cfi_def_cfa_offset 4026; CHECK-NEXT:    pushq %rbx27; CHECK-NEXT:    .cfi_def_cfa_offset 4828; CHECK-NEXT:    .cfi_offset %rbx, -4829; CHECK-NEXT:    .cfi_offset %r12, -4030; CHECK-NEXT:    .cfi_offset %r13, -3231; CHECK-NEXT:    .cfi_offset %r14, -2432; CHECK-NEXT:    .cfi_offset %r15, -1633; CHECK-NEXT:    movq %rsi, %rbx34; CHECK-NEXT:    movq %rdx, %r1435; CHECK-NEXT:    movq %rcx, %r1536; CHECK-NEXT:    movq %r8, %r1237; CHECK-NEXT:    movq %r9, %r1338; CHECK-NEXT:    callq bar@PLT39; CHECK-NEXT:    movq %rbx, %rsi40; CHECK-NEXT:    movq %r14, %rdx41; CHECK-NEXT:    movq %r15, %rcx42; CHECK-NEXT:    movq %r12, %r843; CHECK-NEXT:    movq %r13, %r944; CHECK-NEXT:    movq %rax, %rdi45; CHECK-NEXT:    popq %rbx46; CHECK-NEXT:    .cfi_def_cfa_offset 4047; CHECK-NEXT:    popq %r1248; CHECK-NEXT:    .cfi_def_cfa_offset 3249; CHECK-NEXT:    popq %r1350; CHECK-NEXT:    .cfi_def_cfa_offset 2451; CHECK-NEXT:    popq %r1452; CHECK-NEXT:    .cfi_def_cfa_offset 1653; CHECK-NEXT:    popq %r1554; CHECK-NEXT:    .cfi_def_cfa_offset 855; CHECK-NEXT:    .cfi_restore %rbx56; CHECK-NEXT:    .cfi_restore %r1257; CHECK-NEXT:    .cfi_restore %r1358; CHECK-NEXT:    .cfi_restore %r1459; CHECK-NEXT:    .cfi_restore %r1560; CHECK-NEXT:    incq %rdi61; CHECK-NEXT:    jmp qux@PLT # TAILCALL62entry:63  %tobool.not = icmp eq ptr %ptr, null64  br i1 %tobool.not, label %if.then, label %if.end, !prof !565 66if.then:                                          ; preds = %entry67  %call = tail call ptr @bar(ptr %ptr, i64 %p2, i64 %p3, i64 %p4, i64 %p5, i64 %p6)68  br label %if.end69 70if.end:                                           ; preds = %if.then, %entry71  %ptr.addr.0 = phi ptr [ %call, %if.then ], [ %ptr, %entry ]72  %incdec.ptr = getelementptr inbounds i8, ptr %ptr.addr.0, i64 173  %call2 = tail call ptr @qux(ptr %incdec.ptr, i64 %p2, i64 %p3, i64 %p4, i64 %p5, i64 %p6)74  ret ptr %call275}76 77!5 = !{!"branch_weights", i32 1, i32 2000}78 79declare ptr @bar(ptr, i64, i64, i64, i64, i64)80declare ptr @qux(ptr, i64, i64, i64, i64, i64)81