brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · 8b9caa4 Raw
112 lines · plain
1; RUN: llc < %s -mtriple=bpfel -mcpu=v1 | FileCheck %s2 3define zeroext i16 @add(ptr nocapture %a, i16 zeroext %n) nounwind readonly {4entry:5  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]6  br i1 %cmp8, label %for.end, label %for.body7 8for.body:                                         ; preds = %for.body, %entry9  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]10  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]11  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <ptr> [#uses=1]12; CHECK-LABEL: add:13; CHECK: r{{[0-9]+}} += r{{[0-9]+}}14  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]15  %add = add i16 %tmp4, %sum.09                   ; <i16> [#uses=2]16  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]17  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]18  br i1 %exitcond, label %for.end, label %for.body19 20for.end:                                          ; preds = %for.body, %entry21  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]22  ret i16 %sum.0.lcssa23}24 25define zeroext i16 @sub(ptr nocapture %a, i16 zeroext %n) nounwind readonly {26entry:27  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]28  br i1 %cmp8, label %for.end, label %for.body29 30for.body:                                         ; preds = %for.body, %entry31  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]32  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]33  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <ptr> [#uses=1]34; CHECK-LABEL: sub:35; CHECK: r{{[0-9]+}} -= r{{[0-9]+}}36  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]37  %add = sub i16 %tmp4, %sum.09                   ; <i16> [#uses=2]38  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]39  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]40  br i1 %exitcond, label %for.end, label %for.body41 42for.end:                                          ; preds = %for.body, %entry43  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]44  ret i16 %sum.0.lcssa45}46 47define zeroext i16 @or(ptr nocapture %a, i16 zeroext %n) nounwind readonly {48entry:49  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]50  br i1 %cmp8, label %for.end, label %for.body51 52for.body:                                         ; preds = %for.body, %entry53  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]54  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]55  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <ptr> [#uses=1]56; CHECK-LABEL: or:57; CHECK: r{{[0-9]+}} |= r{{[0-9]+}}58  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]59  %add = or i16 %tmp4, %sum.09                   ; <i16> [#uses=2]60  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]61  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]62  br i1 %exitcond, label %for.end, label %for.body63 64for.end:                                          ; preds = %for.body, %entry65  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]66  ret i16 %sum.0.lcssa67}68 69define zeroext i16 @xor(ptr nocapture %a, i16 zeroext %n) nounwind readonly {70entry:71  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]72  br i1 %cmp8, label %for.end, label %for.body73 74for.body:                                         ; preds = %for.body, %entry75  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]76  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]77  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <ptr> [#uses=1]78; CHECK-LABEL: xor:79; CHECK: r{{[0-9]+}} ^= r{{[0-9]+}}80  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]81  %add = xor i16 %tmp4, %sum.09                   ; <i16> [#uses=2]82  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]83  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]84  br i1 %exitcond, label %for.end, label %for.body85 86for.end:                                          ; preds = %for.body, %entry87  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]88  ret i16 %sum.0.lcssa89}90 91define zeroext i16 @and(ptr nocapture %a, i16 zeroext %n) nounwind readonly {92entry:93  %cmp8 = icmp eq i16 %n, 0                       ; <i1> [#uses=1]94  br i1 %cmp8, label %for.end, label %for.body95 96for.body:                                         ; preds = %for.body, %entry97  %i.010 = phi i16 [ 0, %entry ], [ %inc, %for.body ] ; <i16> [#uses=2]98  %sum.09 = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]99  %arrayidx = getelementptr i16, ptr %a, i16 %i.010   ; <ptr> [#uses=1]100; CHECK-LABEL: and:101; CHECK: r{{[0-9]+}} &= r{{[0-9]+}}102  %tmp4 = load i16, ptr %arrayidx                     ; <i16> [#uses=1]103  %add = and i16 %tmp4, %sum.09                   ; <i16> [#uses=2]104  %inc = add i16 %i.010, 1                        ; <i16> [#uses=2]105  %exitcond = icmp eq i16 %inc, %n                ; <i1> [#uses=1]106  br i1 %exitcond, label %for.end, label %for.body107 108for.end:                                          ; preds = %for.body, %entry109  %sum.0.lcssa = phi i16 [ 0, %entry ], [ %add, %for.body ] ; <i16> [#uses=1]110  ret i16 %sum.0.lcssa111}112