brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 9829224 Raw
96 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -O=3 -mtriple=avr-none -mcpu=attiny85 -verify-machineinstrs | FileCheck %s3 4declare dso_local void @foo(i16 noundef) addrspace(1)5@ci = dso_local global [30 x i16] zeroinitializer, align 16define void @loopreduce() {7; CHECK-LABEL: loopreduce:8; CHECK:       ; %bb.0: ; %entry9; CHECK-NEXT:    push r1410; CHECK-NEXT:    push r1511; CHECK-NEXT:    push r1612; CHECK-NEXT:    push r1713; CHECK-NEXT:    ldi r26, lo8(ci)14; CHECK-NEXT:    ldi r27, hi8(ci)15; CHECK-NEXT:    ldi r16, lo8(ci+60)16; CHECK-NEXT:    ldi r17, hi8(ci+60)17; CHECK-NEXT:  .LBB0_1: ; %for.body18; CHECK-NEXT:    ; =>This Inner Loop Header: Depth=119; CHECK-NEXT:    ld r24, X+20; CHECK-NEXT:    ld r25, X+21; CHECK-NEXT:    movw r14, r2622; CHECK-NEXT:    rcall foo23; CHECK-NEXT:    movw r26, r1424; CHECK-NEXT:    cp r26, r1625; CHECK-NEXT:    cpc r27, r1726; CHECK-NEXT:    brne .LBB0_127; CHECK-NEXT:  ; %bb.2: ; %for.cond.cleanup28; CHECK-NEXT:    pop r1729; CHECK-NEXT:    pop r1630; CHECK-NEXT:    pop r1531; CHECK-NEXT:    pop r1432; CHECK-NEXT:    ret33entry:34  br label %for.body35for.body:                                         ; preds = %entry, %for.body36  %i.03 = phi i16 [ 0, %entry ], [ %inc, %for.body ]37  %arrayidx = getelementptr inbounds nuw [30 x i16], ptr @ci, i16 0, i16 %i.0338  %0 = load i16, ptr %arrayidx, align 139  tail call addrspace(1) void @foo(i16 noundef %0)40  %inc = add nuw nsw i16 %i.03, 141  %exitcond.not = icmp eq i16 %inc, 3042  br i1 %exitcond.not, label %for.cond.cleanup, label %for.body43; Exit blocks44for.cond.cleanup:                                 ; preds = %for.body45  ret void46}47 48define void @indvar() {49; CHECK-LABEL: indvar:50; CHECK:       ; %bb.0: ; %entry51; CHECK-NEXT:    push r1252; CHECK-NEXT:    push r1353; CHECK-NEXT:    push r1454; CHECK-NEXT:    push r1555; CHECK-NEXT:    push r1756; CHECK-NEXT:    ldi r24, 857; CHECK-NEXT:    ldi r25, 058; CHECK-NEXT:    movw r14, r2459; CHECK-NEXT:    ldi r24, 160; CHECK-NEXT:    ldi r25, 061; CHECK-NEXT:    movw r12, r2462; CHECK-NEXT:    ldi r17, 363; CHECK-NEXT:  .LBB1_1: ; %for.body64; CHECK-NEXT:    ; =>This Inner Loop Header: Depth=165; CHECK-NEXT:    movw r24, r1266; CHECK-NEXT:    rcall foo67; CHECK-NEXT:    movw r22, r1468; CHECK-NEXT:    movw r24, r2269; CHECK-NEXT:    rcall __mulhi370; CHECK-NEXT:    movw r30, r1471; CHECK-NEXT:    adiw r30, 172; CHECK-NEXT:    movw r14, r3073; CHECK-NEXT:    cpi r24, -2474; CHECK-NEXT:    cpc r25, r1775; CHECK-NEXT:    brlo .LBB1_176; CHECK-NEXT:  ; %bb.2: ; %for.cond.cleanup77; CHECK-NEXT:    pop r1778; CHECK-NEXT:    pop r1579; CHECK-NEXT:    pop r1480; CHECK-NEXT:    pop r1381; CHECK-NEXT:    pop r1282; CHECK-NEXT:    ret83entry:84  br label %for.body85for.body:                                         ; preds = %entry, %for.body86  %i.03 = phi i16 [ 7, %entry ], [ %inc, %for.body ]87  tail call addrspace(1) void @foo(i16 noundef 1)88  %inc = add nuw nsw i16 %i.03, 189  %mul = mul nuw nsw i16 %inc, %inc90  %cmp = icmp samesign ult i16 %mul, 100091  br i1 %cmp, label %for.body, label %for.cond.cleanup92for.cond.cleanup:                                 ; preds = %for.body93  ret void94}95 96