brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 4616050 Raw
136 lines · plain
1; RUN: llc < %s -O1 -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -ppc-use-branch-hint=false | FileCheck %s2; RUN: llc < %s -O1 -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -ppc-use-branch-hint=true | FileCheck %s -check-prefix=CHECK-HINT3define void @branch_hint_1(i32 %src) {4entry:5  %cmp = icmp eq i32 %src, 06  br i1 %cmp, label %if.then, label %if.end7 8if.then:9  tail call void @foo() #010  unreachable11 12if.end:13  call void @goo()14  ret void15 16; CHECK-LABEL: branch_hint_1:17; CHECK: beq18 19; CHECK-HINT-LABEL: branch_hint_1:20; CHECK-HINT: beq-21}22 23define void @branch_hint_2(i32 %src) {24entry:25  %cmp = icmp eq i32 %src, 026  br i1 %cmp, label %if.then, label %if.end27 28if.then:29  call void @goo()30  ret void31 32if.end:33  tail call void @foo() #034  unreachable35 36; CHECK-LABEL: @branch_hint_237; CHECK: bne38 39; CHECK-HINT-LABEL: @branch_hint_240; CHECK-HINT: bne-41}42 43declare void @foo()44attributes #0 = { noreturn }45 46define void @branch_hint_3(i32 %src) {47entry:48  %cmp = icmp eq i32 %src, 049  br i1 %cmp, label %if.then, label %if.end, !prof !050 51if.then:52  call void @foo()53  ret void54 55if.end:56  call void @goo()57  ret void58 59; CHECK-LABEL: @branch_hint_360; CHECK: bne61 62; CHECK-HINT-LABEL: @branch_hint_363; CHECK-HINT: bne64}65 66!0 = !{!"branch_weights", i32 64, i32 4}67 68define void @branch_hint_4(i32 %src) {69entry:70  %cmp = icmp eq i32 %src, 071  br i1 %cmp, label %if.then, label %if.end, !prof !172 73if.then:74  call void @foo()75  ret void76 77if.end:78  call void @goo()79  ret void80 81; CHECK-HINT-LABEL: branch_hint_482; CHECK-HINT: bne83}84 85!1 = !{!"branch_weights", i32 64, i32 8}86 87define void @branch_hint_5(i32 %src) {88entry:89  %cmp = icmp eq i32 %src, 090  br i1 %cmp, label %if.then, label %if.end91 92if.then:93  ret void94 95if.end:96  call void @goo()97  ret void98 99; CHECK-HINT-LABEL: branch_hint_5:100; CHECK-HINT: beq101}102 103declare void @goo()104 105define void @branch_hint_6(i32 %src1, i32 %src2, i32 %src3) {106entry:107  %cmp = icmp eq i32 %src1, 0108  br i1 %cmp, label %if.end.6, label %if.end, !prof !3109 110if.end:111  %cmp1 = icmp eq i32 %src2, 0112  br i1 %cmp1, label %if.end.3, label %if.then.2113 114if.then.2:115  tail call void @foo() #0116  unreachable117 118if.end.3:119  %cmp4 = icmp eq i32 %src3, 1120  br i1 %cmp4, label %if.then.5, label %if.end.6121 122if.then.5:123  tail call void @foo() #0124  unreachable125 126if.end.6:127  ret void128 129; CHECK-HINT-LABEL: branch_hint_6:130; CHECK-HINT: bne131; CHECK-HINT: bne-132; CHECK-HINT: bne+133}134 135!3 = !{!"branch_weights", i32 64, i32 4}136