brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · 3645718 Raw
89 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -mtriple=aarch64 | FileCheck %s3 4; When consuming profile data we sometimes flip a branch to improve runtime5; performance. If we are optimizing for size, we avoid changing the branch to6; improve outlining and ICF.7 8define i8 @foo_optsize(i32 %v4) optsize {9; CHECK-LABEL: foo_optsize:10; CHECK:       // %bb.0: // %entry11; CHECK-NEXT:    cbz wzr, .LBB0_212; CHECK-NEXT:  .LBB0_1:13; CHECK-NEXT:    mov w0, wzr14; CHECK-NEXT:    ret15; CHECK-NEXT:  .LBB0_2: // %b116; CHECK-NEXT:    cbnz w0, .LBB0_417; CHECK-NEXT:  .LBB0_3: // %b218; CHECK-NEXT:    mov w0, #1 // =0x119; CHECK-NEXT:    ret20; CHECK-NEXT:  .LBB0_4: // %b121; CHECK-NEXT:    cmp w0, #122; CHECK-NEXT:    b.ne .LBB0_123; CHECK-NEXT:  // %bb.5: // %b324; CHECK-NEXT:    cbz wzr, .LBB0_125; CHECK-NEXT:    b .LBB0_326entry:27  %v2 = icmp eq i32 0, 028  br i1 %v2, label %b1, label %b429 30b1:31  switch i32 %v4, label %b4 [32    i32 1, label %b333    i32 0, label %b234  ], !prof !035 36b2:37  br label %b438 39b3:40  %v3 = icmp eq i32 0, 041  br i1 %v3, label %b4, label %b242 43b4:44  %v16 = phi i8 [ 1, %b2 ], [ 0, %entry ], [ 0, %b3 ], [ 0, %b1 ]45  ret i8 %v1646}47 48define i8 @foo_optspeed(i32 %v4) {49; CHECK-LABEL: foo_optspeed:50; CHECK:       // %bb.0: // %entry51; CHECK-NEXT:    cbz wzr, .LBB1_252; CHECK-NEXT:  .LBB1_1:53; CHECK-NEXT:    mov w0, wzr54; CHECK-NEXT:    ret55; CHECK-NEXT:  .LBB1_2: // %b156; CHECK-NEXT:    cbnz w0, .LBB1_457; CHECK-NEXT:  .LBB1_3: // %b258; CHECK-NEXT:    mov w0, #1 // =0x159; CHECK-NEXT:    ret60; CHECK-NEXT:  .LBB1_4: // %b161; CHECK-NEXT:    cmp w0, #162; CHECK-NEXT:    b.ne .LBB1_163; CHECK-NEXT:  // %bb.5: // %b364; CHECK-NEXT:    cbnz wzr, .LBB1_365; CHECK-NEXT:    b .LBB1_166entry:67  %v2 = icmp eq i32 0, 068  br i1 %v2, label %b1, label %b469 70b1:71  switch i32 %v4, label %b4 [72    i32 1, label %b373    i32 0, label %b274  ], !prof !075 76b2:77  br label %b478 79b3:80  %v3 = icmp eq i32 0, 081  br i1 %v3, label %b4, label %b282 83b4:84  %v16 = phi i8 [ 1, %b2 ], [ 0, %entry ], [ 0, %b3 ], [ 0, %b1 ]85  ret i8 %v1686}87 88!0 = !{!"branch_weights", i32 5, i32 5, i32 100}89