65 lines · plain
1; RUN: llc -mtriple=thumb-eabi -mattr=+v7,+thumb2 %s -o - | FileCheck %s2 3define i8 @f1(ptr %call1, ptr %call3, i32 %h, i32 %w, i32 %Width) {4; CHECK: f1:5entry:6 %mul17 = mul nsw i32 %Width, %h7 %add = add nsw i32 %mul17, %w8 %sub19 = sub i32 %add, %Width9 %sub20 = add i32 %sub19, -110 %arrayidx21 = getelementptr inbounds i8, ptr %call1, i32 %sub2011 %0 = load i8, ptr %arrayidx21, align 112 %conv22 = zext i8 %0 to i3213 %arrayidx25 = getelementptr inbounds i8, ptr %call1, i32 %sub1914 %1 = load i8, ptr %arrayidx25, align 115 %conv26 = zext i8 %1 to i3216 %mul23189 = add i32 %conv26, %conv2217 %add30 = add i32 %sub19, 118 %arrayidx31 = getelementptr inbounds i8, ptr %call1, i32 %add3019 %2 = load i8, ptr %arrayidx31, align 120 %conv32 = zext i8 %2 to i3221; CHECK: ldrb r{{[0-9]*}}, [r{{[0-9]*}}, #-1]22; CHECK-NEXT: ldrb r{{[0-9]*}}, [r{{[0-9]*}}, #1]23 %add28190 = add i32 %mul23189, %conv3224 %sub35 = add i32 %add, -125 %arrayidx36 = getelementptr inbounds i8, ptr %call1, i32 %sub3526 %3 = load i8, ptr %arrayidx36, align 127 %conv37 = zext i8 %3 to i3228 %add34191 = add i32 %add28190, %conv3729 %arrayidx40 = getelementptr inbounds i8, ptr %call1, i32 %add30 %4 = load i8, ptr %arrayidx40, align 131 %conv41 = zext i8 %4 to i3232 %mul42 = mul nsw i32 %conv41, 25533 %add44 = add i32 %add, 134 %arrayidx45 = getelementptr inbounds i8, ptr %call1, i32 %add4435 %5 = load i8, ptr %arrayidx45, align 136 %conv46 = zext i8 %5 to i3237; CHECK: ldrb r{{[0-9]*}}, [r{{[0-9]*}}, #-1]38; CHECK-NEXT: ldrb r{{[0-9]*}}, [r{{[0-9]*}}, #1]39 %add49 = add i32 %add, %Width40 %sub50 = add i32 %add49, -141 %arrayidx51 = getelementptr inbounds i8, ptr %call1, i32 %sub5042 %6 = load i8, ptr %arrayidx51, align 143 %conv52 = zext i8 %6 to i3244 %arrayidx56 = getelementptr inbounds i8, ptr %call1, i32 %add4945 %7 = load i8, ptr %arrayidx56, align 146 %conv57 = zext i8 %7 to i3247 %add61 = add i32 %add49, 148 %arrayidx62 = getelementptr inbounds i8, ptr %call1, i32 %add6149 %8 = load i8, ptr %arrayidx62, align 150 %conv63 = zext i8 %8 to i3251; CHECK: ldrb r{{[0-9]*}}, [r{{[0-9]*}}, #-1]52; CHECK-NEXT: ldrb{{[.w]*}} r{{[0-9]*}}, [r{{[0-9]*}}, #1]53 %tmp = add i32 %add34191, %conv4654 %tmp193 = add i32 %tmp, %conv5255 %tmp194 = add i32 %tmp193, %conv5756 %tmp195 = add i32 %tmp194, %conv6357 %tmp196 = mul i32 %tmp195, -2858 %add65 = add i32 %tmp196, %mul4259 %9 = lshr i32 %add65, 860 %conv68 = trunc i32 %9 to i861 %arrayidx69 = getelementptr inbounds i8, ptr %call3, i32 %add62 store i8 %conv68, ptr %arrayidx69, align 163 ret i8 %conv6864}65