brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 3f1320d Raw
115 lines · plain
1; RUN: llc < %s | FileCheck %s2target datalayout = "e-p:16:8:8-i8:8:8-i16:8:8-i32:8:8"3target triple = "msp430"4 5define zeroext i16 @add(ptr nocapture %a, i16 zeroext %n) nounwind readonly {6entry:7  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]8  br i1 %cmp8, label %for.end, label %for.body9 10for.body:                                         ; preds = %for.body, %entry11  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]12  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]13  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <i16*> [#uses=1]14; CHECK-LABEL: add:15; CHECK: add @r{{[0-9]+}}+, r{{[0-9]+}}16  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]17  %add = add i16 %tmp4, %sum.09                   ; <i16> [#uses=2]18  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]19  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]20  br i1 %exitcond, label %for.end, label %for.body21 22for.end:                                          ; preds = %for.body, %entry23  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]24  ret i16 %sum.0.lcssa25}26 27define zeroext i16 @sub(ptr nocapture %a, i16 zeroext %n) nounwind readonly {28entry:29  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]30  br i1 %cmp8, label %for.end, label %for.body31 32for.body:                                         ; preds = %for.body, %entry33  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]34  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]35  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <i16*> [#uses=1]36; CHECK-LABEL: sub:37; CHECK: sub @r{{[0-9]+}}+, r{{[0-9]+}}38  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]39  %add = sub i16 %tmp4, %sum.09                   ; <i16> [#uses=2]40  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]41  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]42  br i1 %exitcond, label %for.end, label %for.body43 44for.end:                                          ; preds = %for.body, %entry45  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]46  ret i16 %sum.0.lcssa47}48 49define zeroext i16 @or(ptr nocapture %a, i16 zeroext %n) nounwind readonly {50entry:51  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]52  br i1 %cmp8, label %for.end, label %for.body53 54for.body:                                         ; preds = %for.body, %entry55  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]56  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]57  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <i16*> [#uses=1]58; CHECK-LABEL: or:59; CHECK: bis @r{{[0-9]+}}+, r{{[0-9]+}}60  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]61  %add = or i16 %tmp4, %sum.09                   ; <i16> [#uses=2]62  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]63  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]64  br i1 %exitcond, label %for.end, label %for.body65 66for.end:                                          ; preds = %for.body, %entry67  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]68  ret i16 %sum.0.lcssa69}70 71define zeroext i16 @xor(ptr nocapture %a, i16 zeroext %n) nounwind readonly {72entry:73  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]74  br i1 %cmp8, label %for.end, label %for.body75 76for.body:                                         ; preds = %for.body, %entry77  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]78  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]79  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <i16*> [#uses=1]80; CHECK-LABEL: xor:81; CHECK: xor @r{{[0-9]+}}+, r{{[0-9]+}}82  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]83  %add = xor i16 %tmp4, %sum.09                   ; <i16> [#uses=2]84  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]85  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]86  br i1 %exitcond, label %for.end, label %for.body87 88for.end:                                          ; preds = %for.body, %entry89  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]90  ret i16 %sum.0.lcssa91}92 93define zeroext i16 @and(ptr nocapture %a, i16 zeroext %n) nounwind readonly {94entry:95  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]96  br i1 %cmp8, label %for.end, label %for.body97 98for.body:                                         ; preds = %for.body, %entry99  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]100  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]101  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <i16*> [#uses=1]102; CHECK-LABEL: and:103; CHECK: and @r{{[0-9]+}}+, r{{[0-9]+}}104  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]105  %add = and i16 %tmp4, %sum.09                   ; <i16> [#uses=2]106  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]107  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]108  br i1 %exitcond, label %for.end, label %for.body109 110for.end:                                          ; preds = %for.body, %entry111  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]112  ret i16 %sum.0.lcssa113}114 115