46 lines
1.2 KiB
LLVM
46 lines
1.2 KiB
LLVM
|
; RUN: llc -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 -verify-machineinstrs < %s | FileCheck %s
|
||
|
|
||
|
define i32 @relax_bcc(i1 %b) {
|
||
|
; CHECK-LABEL: relax_bcc:
|
||
|
; CHECK: # %bb.0:
|
||
|
; CHECK-NEXT: andi. 3, 3, 1
|
||
|
; CHECK-NEXT: #APP
|
||
|
; CHECK-NEXT: label:
|
||
|
; CHECK-NEXT: add 3, 3, 5
|
||
|
; CHECK-NEXT: cmpd 4, 3
|
||
|
; CHECK-NEXT: bne 0, label
|
||
|
; CHECK-NEXT: #NO_APP
|
||
|
; CHECK-NEXT: bc 12, 1, .+8
|
||
|
; CHECK-NEXT: b .LBB0_4
|
||
|
; CHECK-NEXT: # %bb.1:
|
||
|
; CHECK-NEXT: li 3, 101
|
||
|
; CHECK-NEXT: mtctr 3
|
||
|
; CHECK-NEXT: .p2align 4
|
||
|
; CHECK-NEXT: .LBB0_2:
|
||
|
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
|
||
|
; CHECK-NEXT: bdnz .LBB0_2
|
||
|
; CHECK-NEXT: # %bb.3:
|
||
|
; CHECK-NEXT: #APP
|
||
|
; CHECK-NEXT: .space 32748
|
||
|
; CHECK-NEXT: #NO_APP
|
||
|
; CHECK-NEXT: .LBB0_4: # %tail
|
||
|
; CHECK-NEXT: li 3, 1
|
||
|
; CHECK-NEXT: blr
|
||
|
entry:
|
||
|
call void asm sideeffect "label:\0A\09add 3,3,5\0A\09cmpd 4,3\0A\09bne label", ""()
|
||
|
br i1 %b, label %for.body, label %tail
|
||
|
|
||
|
for.body: ; preds = %for.body, %entry
|
||
|
%0 = phi i32 [0, %entry], [%1, %for.body]
|
||
|
%1 = add i32 %0, 1
|
||
|
%2 = icmp sgt i32 %1, 100
|
||
|
br i1 %2, label %exit, label %for.body
|
||
|
|
||
|
exit:
|
||
|
call void asm sideeffect ".space 32748", ""()
|
||
|
br label %tail
|
||
|
|
||
|
tail:
|
||
|
ret i32 1
|
||
|
}
|