brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · 3368ffd Raw
115 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2; RUN: llc < %s -mtriple=avr -mcpu=avr5 | FileCheck -check-prefix=AVR5 %s3 4; CHECK-LABEL: relax_breq5; CHECK: cpi     r{{[0-9]+}}, 06; CHECK: brne    .LBB0_17; CHECK: rjmp    .LBB0_28; CHECK: .LBB0_1:9; CHECK: nop10; CHECK: .LBB0_2:11 12; AVR5-LABEL: relax_breq13; AVR5:         andi    r24, 114; AVR5:         cpi     r24, 015; AVR5:         brne    .LBB0_116; AVR5:         rjmp    .LBB0_217; AVR5:       .LBB0_1:18; AVR5:         nop19; AVR5:       .LBB0_2:20 21define i8 @relax_breq(i1 %a) {22entry-block:23  br i1 %a, label %hello, label %finished24 25hello:26  call void asm sideeffect "nop", ""()27  call void asm sideeffect "nop", ""()28  call void asm sideeffect "nop", ""()29  call void asm sideeffect "nop", ""()30  call void asm sideeffect "nop", ""()31  call void asm sideeffect "nop", ""()32  call void asm sideeffect "nop", ""()33  call void asm sideeffect "nop", ""()34  call void asm sideeffect "nop", ""()35  call void asm sideeffect "nop", ""()36  call void asm sideeffect "nop", ""()37  call void asm sideeffect "nop", ""()38  call void asm sideeffect "nop", ""()39  call void asm sideeffect "nop", ""()40  call void asm sideeffect "nop", ""()41  call void asm sideeffect "nop", ""()42  call void asm sideeffect "nop", ""()43  call void asm sideeffect "nop", ""()44  call void asm sideeffect "nop", ""()45  call void asm sideeffect "nop", ""()46  call void asm sideeffect "nop", ""()47  call void asm sideeffect "nop", ""()48  call void asm sideeffect "nop", ""()49  call void asm sideeffect "nop", ""()50  call void asm sideeffect "nop", ""()51  call void asm sideeffect "nop", ""()52  call void asm sideeffect "nop", ""()53  call void asm sideeffect "nop", ""()54  call void asm sideeffect "nop", ""()55  call void asm sideeffect "nop", ""()56  call void asm sideeffect "nop", ""()57  call void asm sideeffect "nop", ""()58  call void asm sideeffect "nop", ""()59  call void asm sideeffect "nop", ""()60  call void asm sideeffect "nop", ""()61  call void asm sideeffect "nop", ""()62  call void asm sideeffect "nop", ""()63  call void asm sideeffect "nop", ""()64  call void asm sideeffect "nop", ""()65  call void asm sideeffect "nop", ""()66  call void asm sideeffect "nop", ""()67  call void asm sideeffect "nop", ""()68  call void asm sideeffect "nop", ""()69  call void asm sideeffect "nop", ""()70  call void asm sideeffect "nop", ""()71  call void asm sideeffect "nop", ""()72  call void asm sideeffect "nop", ""()73  call void asm sideeffect "nop", ""()74  call void asm sideeffect "nop", ""()75  call void asm sideeffect "nop", ""()76  br label %finished77finished:78  ret i8 379}80 81; CHECK-LABEL: no_relax_breq82; CHECK: cpi     r{{[0-9]+}}, 083; CHECK: breq    [[END_BB:.LBB[0-9]+_[0-9]+]]84; CHECK: nop85; CHECK: [[END_BB]]86 87; AVR5-LABEL: no_relax_breq88; AVR5:         cpi     r{{[0-9]+}}, 089; AVR5:         breq    [[END_BB:.LBB[0-9]+_[0-9]+]]90; AVR5:         nop91; AVR5:       [[END_BB]]92 93define i8 @no_relax_breq(i1 %a) {94entry-block:95  br i1 %a, label %hello, label %finished96 97hello:98  ; There are not enough NOPs to require relaxation.99  call void asm sideeffect "nop", ""()100  call void asm sideeffect "nop", ""()101  call void asm sideeffect "nop", ""()102  call void asm sideeffect "nop", ""()103  call void asm sideeffect "nop", ""()104  call void asm sideeffect "nop", ""()105  call void asm sideeffect "nop", ""()106  call void asm sideeffect "nop", ""()107  call void asm sideeffect "nop", ""()108  call void asm sideeffect "nop", ""()109  call void asm sideeffect "nop", ""()110  br label %finished111finished:112  ret i8 3113}114 115