brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 2a22666 Raw
164 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 42; RUN: llc < %s -mtriple=avr -mcpu=atmega328 -O1 -verify-machineinstrs | FileCheck %s3 4define internal i8 @main() {5; CHECK-LABEL: main:6; CHECK:       ; %bb.0: ; %bb07; CHECK-NEXT:    push r28; CHECK-NEXT:    push r39; CHECK-NEXT:    push r410; CHECK-NEXT:    push r511; CHECK-NEXT:    push r612; CHECK-NEXT:    push r713; CHECK-NEXT:    push r814; CHECK-NEXT:    push r915; CHECK-NEXT:    push r1016; CHECK-NEXT:    push r1117; CHECK-NEXT:    push r1218; CHECK-NEXT:    push r1319; CHECK-NEXT:    push r1420; CHECK-NEXT:    push r1521; CHECK-NEXT:    push r1622; CHECK-NEXT:    push r1723; CHECK-NEXT:    push r2824; CHECK-NEXT:    push r2925; CHECK-NEXT:    in r28, 6126; CHECK-NEXT:    in r29, 6227; CHECK-NEXT:    sbiw r28, 1328; CHECK-NEXT:    in r0, 6329; CHECK-NEXT:    cli30; CHECK-NEXT:    out 62, r2931; CHECK-NEXT:    out 63, r032; CHECK-NEXT:    out 61, r2833; CHECK-NEXT:    ldi r16, 034; CHECK-NEXT:    ldi r17, 035; CHECK-NEXT:    ldi r18, -136; CHECK-NEXT:    ;APP37; CHECK-NEXT:    ldi r24, 12338; CHECK-NEXT:    ;NO_APP39; CHECK-NEXT:    std Y+1, r24 ; 1-byte Folded Spill40; CHECK-NEXT:    movw r24, r2841; CHECK-NEXT:    adiw r24, 642; CHECK-NEXT:    std Y+3, r25 ; 2-byte Folded Spill43; CHECK-NEXT:    std Y+2, r24 ; 2-byte Folded Spill44; CHECK-NEXT:    movw r8, r1645; CHECK-NEXT:    movw r6, r1646; CHECK-NEXT:    movw r4, r1647; CHECK-NEXT:    movw r2, r1648; CHECK-NEXT:    rjmp .LBB0_249; CHECK-NEXT:  .LBB0_1: ; %bb150; CHECK-NEXT:    ; in Loop: Header=BB0_2 Depth=151; CHECK-NEXT:    andi r30, 152; CHECK-NEXT:    ldd r31, Y+4 ; 1-byte Folded Reload53; CHECK-NEXT:    dec r3154; CHECK-NEXT:    cpi r30, 055; CHECK-NEXT:    movw r8, r1856; CHECK-NEXT:    movw r6, r2057; CHECK-NEXT:    movw r4, r2258; CHECK-NEXT:    movw r2, r2459; CHECK-NEXT:    mov r18, r3160; CHECK-NEXT:    brne .LBB0_261; CHECK-NEXT:    rjmp .LBB0_462; CHECK-NEXT:  .LBB0_2: ; %bb163; CHECK-NEXT:    ; =>This Inner Loop Header: Depth=164; CHECK-NEXT:    std Y+4, r18 ; 1-byte Folded Spill65; CHECK-NEXT:    movw r18, r866; CHECK-NEXT:    movw r20, r667; CHECK-NEXT:    movw r22, r468; CHECK-NEXT:    movw r24, r269; CHECK-NEXT:    ldi r26, 1070; CHECK-NEXT:    ldi r27, 071; CHECK-NEXT:    movw r10, r2672; CHECK-NEXT:    movw r12, r1673; CHECK-NEXT:    movw r14, r1674; CHECK-NEXT:    call __udivdi375; CHECK-NEXT:    std Y+13, r2576; CHECK-NEXT:    std Y+12, r2477; CHECK-NEXT:    std Y+11, r2378; CHECK-NEXT:    std Y+10, r2279; CHECK-NEXT:    std Y+9, r2180; CHECK-NEXT:    std Y+8, r2081; CHECK-NEXT:    std Y+7, r1982; CHECK-NEXT:    std Y+6, r1883; CHECK-NEXT:    ldd r30, Y+2 ; 2-byte Folded Reload84; CHECK-NEXT:    ldd r31, Y+3 ; 2-byte Folded Reload85; CHECK-NEXT:    ;APP86; CHECK-NEXT:    ;NO_APP87; CHECK-NEXT:    ldi r30, 188; CHECK-NEXT:    cp r8, r189; CHECK-NEXT:    cpc r9, r190; CHECK-NEXT:    cpc r6, r1691; CHECK-NEXT:    cpc r7, r1792; CHECK-NEXT:    cpc r4, r1693; CHECK-NEXT:    cpc r5, r1794; CHECK-NEXT:    cpc r2, r1695; CHECK-NEXT:    cpc r3, r1796; CHECK-NEXT:    breq .LBB0_397; CHECK-NEXT:    rjmp .LBB0_198; CHECK-NEXT:  .LBB0_3: ; %bb199; CHECK-NEXT:    ; in Loop: Header=BB0_2 Depth=1100; CHECK-NEXT:    mov r30, r1101; CHECK-NEXT:    rjmp .LBB0_1102; CHECK-NEXT:  .LBB0_4: ; %bb3103; CHECK-NEXT:    ldd r24, Y+1 ; 1-byte Folded Reload104; CHECK-NEXT:    std Y+5, r24105; CHECK-NEXT:    movw r24, r28106; CHECK-NEXT:    adiw r24, 5107; CHECK-NEXT:    ;APP108; CHECK-NEXT:    ;NO_APP109; CHECK-NEXT:    ldd r24, Y+5110; CHECK-NEXT:    adiw r28, 13111; CHECK-NEXT:    in r0, 63112; CHECK-NEXT:    cli113; CHECK-NEXT:    out 62, r29114; CHECK-NEXT:    out 63, r0115; CHECK-NEXT:    out 61, r28116; CHECK-NEXT:    pop r29117; CHECK-NEXT:    pop r28118; CHECK-NEXT:    pop r17119; CHECK-NEXT:    pop r16120; CHECK-NEXT:    pop r15121; CHECK-NEXT:    pop r14122; CHECK-NEXT:    pop r13123; CHECK-NEXT:    pop r12124; CHECK-NEXT:    pop r11125; CHECK-NEXT:    pop r10126; CHECK-NEXT:    pop r9127; CHECK-NEXT:    pop r8128; CHECK-NEXT:    pop r7129; CHECK-NEXT:    pop r6130; CHECK-NEXT:    pop r5131; CHECK-NEXT:    pop r4132; CHECK-NEXT:    pop r3133; CHECK-NEXT:    pop r2134; CHECK-NEXT:    ret135bb0:136  %0 = alloca i64137  %1 = alloca i8138  %2 = tail call i8 asm sideeffect "ldi ${0}, 123", "=&r,~{sreg},~{memory}"()139 140  br label %bb1141 142bb1:143  %3 = phi i64 [ %5, %bb1 ], [ 0, %bb0 ]144  %4 = phi i8 [ %6, %bb1 ], [ 0, %bb0 ]145  %5 = udiv i64 %3, 10146  %6 = add i8 %4, 1147 148  store i64 %5, ptr %0149  call void asm sideeffect "", "r,~{memory}"(ptr %0)150 151  %7 = icmp eq i64 %3, 0152  %8 = icmp eq i8 %6, 0153 154  br i1 %7, label %bb3, label %bb1155 156bb3:157  store i8 %2, ptr %1158  call void asm sideeffect "", "r,~{memory}"(ptr %1)159 160  %9 = load i8, ptr %1161 162  ret i8 %9163}164