Imported Upstream version 5.18.0.205

Former-commit-id: 7f59f7e792705db773f1caecdaa823092f4e2927
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-11-16 08:20:38 +00:00
parent 5cd5df71cc
commit 8e12397d70
28486 changed files with 3867013 additions and 66 deletions

View File

@ -0,0 +1,96 @@
; RUN: llc < %s -march=avr | FileCheck %s
; CHECK-LABEL: relax_breq
; CHECK: cpi r{{[0-9]+}}, 0
; CHECK: brne LBB0_1
; CHECK: rjmp LBB0_2
; LBB0_1:
define i8 @relax_breq(i1 %a) {
entry-block:
br i1 %a, label %hello, label %finished
hello:
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
br label %finished
finished:
ret i8 3
}
; CHECK-LABEL: no_relax_breq
; CHECK: cpi r{{[0-9]+}}, 0
; CHECK: breq [[END_BB:LBB[0-9]+_[0-9]+]]
; CHECK: nop
; ...
; LBB0_1:
define i8 @no_relax_breq(i1 %a) {
entry-block:
br i1 %a, label %hello, label %finished
hello:
; There are not enough NOPs to require relaxation.
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
call void asm sideeffect "nop", ""()
br label %finished
finished:
ret i8 3
}