106 lines · plain
1;; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2;; Test that Octeon BBIT family of branch can be replaced by3;; the long branch expansion pass.4 5; RUN: llc -O3 -mtriple=mips64-octeon-linux -mcpu=octeon -force-mips-long-branch < %s -o - | FileCheck %s6 7define i64 @bbit1(i64 %a) nounwind {8; CHECK-LABEL: bbit1:9; CHECK: # %bb.0: # %entry10; CHECK-NEXT: bbit0 $4, 3, .LBB0_211; CHECK-NEXT: nop12; CHECK-NEXT: # %bb.1: # %entry13; CHECK-NEXT: j .LBB0_314; CHECK-NEXT: nop15; CHECK-NEXT: .LBB0_2: # %endif16; CHECK-NEXT: jr $ra17; CHECK-NEXT: daddiu $2, $zero, 1218; CHECK-NEXT: .LBB0_3: # %if19; CHECK-NEXT: jr $ra20; CHECK-NEXT: daddiu $2, $zero, 4821entry:22 %bit = and i64 %a, 823 %res = icmp eq i64 %bit, 024 br i1 %res, label %endif, label %if25if:26 ret i64 4827 28endif:29 ret i64 1230}31 32define i64 @bbit132(i64 %a) nounwind {33; CHECK-LABEL: bbit132:34; CHECK: # %bb.0: # %entry35; CHECK-NEXT: bbit032 $4, 3, .LBB1_236; CHECK-NEXT: nop37; CHECK-NEXT: # %bb.1: # %entry38; CHECK-NEXT: j .LBB1_339; CHECK-NEXT: nop40; CHECK-NEXT: .LBB1_2: # %endif41; CHECK-NEXT: jr $ra42; CHECK-NEXT: daddiu $2, $zero, 1243; CHECK-NEXT: .LBB1_3: # %if44; CHECK-NEXT: jr $ra45; CHECK-NEXT: daddiu $2, $zero, 4846entry:47 %bit = and i64 %a, 3435973836848 %res = icmp eq i64 %bit, 049 br i1 %res, label %endif, label %if50if:51 ret i64 4852 53endif:54 ret i64 1255}56 57define i64 @bbit0(i64 %a) nounwind {58; CHECK-LABEL: bbit0:59; CHECK: # %bb.0: # %entry60; CHECK-NEXT: bbit1 $4, 3, .LBB2_261; CHECK-NEXT: nop62; CHECK-NEXT: # %bb.1: # %entry63; CHECK-NEXT: j .LBB2_364; CHECK-NEXT: nop65; CHECK-NEXT: .LBB2_2: # %endif66; CHECK-NEXT: jr $ra67; CHECK-NEXT: daddiu $2, $zero, 1268; CHECK-NEXT: .LBB2_3: # %if69; CHECK-NEXT: jr $ra70; CHECK-NEXT: daddiu $2, $zero, 4871entry:72 %bit = and i64 %a, 873 %res = icmp ne i64 %bit, 074 br i1 %res, label %endif, label %if75if:76 ret i64 4877 78endif:79 ret i64 1280}81 82define i64 @bbit032(i64 %a) nounwind {83; CHECK-LABEL: bbit032:84; CHECK: # %bb.0: # %entry85; CHECK-NEXT: bbit132 $4, 3, .LBB3_286; CHECK-NEXT: nop87; CHECK-NEXT: # %bb.1: # %entry88; CHECK-NEXT: j .LBB3_389; CHECK-NEXT: nop90; CHECK-NEXT: .LBB3_2: # %endif91; CHECK-NEXT: jr $ra92; CHECK-NEXT: daddiu $2, $zero, 1293; CHECK-NEXT: .LBB3_3: # %if94; CHECK-NEXT: jr $ra95; CHECK-NEXT: daddiu $2, $zero, 4896entry:97 %bit = and i64 %a, 3435973836898 %res = icmp ne i64 %bit, 099 br i1 %res, label %endif, label %if100if:101 ret i64 48102 103endif:104 ret i64 12105}106