brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · efdbfef Raw
36 lines · plain
1;; This test verifies that basic-block-sections works with address-taken basic blocks.2; RUN: llc < %s -mtriple=x86_64 -basic-block-sections=all | FileCheck %s3 4define void @foo(i1 zeroext %0) nounwind {5entry:6  %1 = select i1 %0, ptr blockaddress(@foo, %bb1), ptr blockaddress(@foo, %bb2) ; <ptr> [#uses=1]7  indirectbr ptr %1, [label %bb1, label %bb2]8 9; CHECK:         .section .text.foo,"ax",@progbits10; CHECK-LABEL: foo:11; CHECK:         movl    $.Ltmp0, %eax12; CHECK-NEXT:    movl    $.Ltmp1, %ecx13; CHECK-NEXT:    cmovneq %rax, %rcx14; CHECK-NEXT:    jmpq    *%rcx15 16bb1:                                                ; preds = %entry17  %2 = call i32 @bar()18  ret void19; CHECK:         .section .text.foo,"ax",@progbits,unique,120; CHECK-NEXT:  .Ltmp0:21; CHECK-NEXT:  foo.__part.122; CHECK-NEXT:    callq   bar23;24 25bb2:                                                ; preds = %entry26  %3 = call i32 @baz()27  ret void28; CHECK:         .section .text.foo,"ax",@progbits,unique,229; CHECK-NEXT:  .Ltmp1:30; CHECK-NEXT:  foo.__part.231; CHECK-NEXT:    callq   baz32}33 34declare i32 @bar()35declare i32 @baz()36