brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 63b8e95 Raw
119 lines · plain
1; RUN: llc < %s -verify-coalescing2; PR129113target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"4target triple = "x86_64-apple-macosx10.7.0"5 6@d = common global i32 0, align 47@c = common global i32 0, align 48@b = common global i32 0, align 49@h = common global i32 0, align 410@f = common global i32 0, align 411@g = common global i32 0, align 412@a = common global i16 0, align 213@e = common global i32 0, align 414 15define void @fn1() nounwind uwtable ssp {16entry:17  %0 = load i32, ptr @d, align 418  %tobool72 = icmp eq i32 %0, 019  br i1 %tobool72, label %for.end32, label %for.cond1.preheader.lr.ph20 21for.cond1.preheader.lr.ph:                        ; preds = %entry22  %1 = load i32, ptr @c, align 423  %tobool2 = icmp eq i32 %1, 024  %2 = load i32, ptr @b, align 425  %cmp = icmp sgt i32 %2, 026  %conv = zext i1 %cmp to i3227  %3 = load i32, ptr @g, align 428  %tobool4 = icmp eq i32 %3, 029  %4 = load i16, ptr @a, align 230  %tobool9 = icmp eq i16 %4, 031  br label %for.cond1.preheader32 33for.cond1.preheader:                              ; preds = %for.cond25.loopexit.us-lcssa.us-lcssa, %if.end.us50, %if.end.us, %if.end.us.us, %for.cond1.preheader.lr.ph34  %j.073 = phi i32 [ undef, %for.cond1.preheader.lr.ph ], [ %j.1.us.us, %if.end.us.us ], [ %j.1.us, %if.end.us ], [ %j.073, %for.cond25.loopexit.us-lcssa.us-lcssa ], [ %j.1.us36, %if.end.us50 ]35  br i1 %tobool2, label %for.cond1.preheader.split.us, label %for.cond1.preheader.for.cond1.preheader.split_crit_edge36 37for.cond1.preheader.for.cond1.preheader.split_crit_edge: ; preds = %for.cond1.preheader38  br i1 %tobool9, label %if.end.us50, label %for.cond1.preheader.split.for.cond1.preheader.split.split_crit_edge39 40for.cond1.preheader.split.us:                     ; preds = %for.cond1.preheader41  br i1 %tobool9, label %cond.end.us.us, label %cond.end.us42 43cond.false18.us.us:                               ; preds = %if.end.us.us44  %5 = load i32, ptr @f, align 445  %sext76 = shl i32 %5, 1646  %phitmp75 = ashr exact i32 %sext76, 1647  br label %cond.end.us.us48 49if.end.us.us:                                     ; preds = %cond.end.us.us, %if.then.us.us50  br i1 %tobool4, label %cond.false18.us.us, label %for.cond1.preheader51 52if.then.us.us:                                    ; preds = %cond.end.us.us53  store i32 0, ptr @f, align 454  br label %if.end.us.us55 56cond.end.us.us:                                   ; preds = %cond.false18.us.us, %for.cond1.preheader.split.us57  %j.1.us.us = phi i32 [ %j.073, %for.cond1.preheader.split.us ], [ %phitmp75, %cond.false18.us.us ]58  store i32 %conv, ptr @h, align 459  br i1 %cmp, label %if.then.us.us, label %if.end.us.us60 61cond.end21.us:                                    ; preds = %land.lhs.true12.us, %cond.false18.us62  %cond22.us = phi i16 [ %add.us, %cond.false18.us ], [ %4, %land.lhs.true12.us ]63  %conv24.us = sext i16 %cond22.us to i3264  br label %cond.end.us65 66cond.false18.us:                                  ; preds = %if.end6.us, %land.lhs.true12.us67  %add.us = add i16 %4, %conv7.us68  br label %cond.end21.us69 70land.lhs.true12.us:                               ; preds = %if.end6.us71  %conv10.us = sext i16 %conv7.us to i3272  %sub.us = sub nsw i32 0, %conv10.us73  %cmp14.us = icmp slt i32 %sub.us, 174  br i1 %cmp14.us, label %cond.end21.us, label %cond.false18.us75 76if.end6.us:                                       ; preds = %if.end.us77  %6 = load i32, ptr @f, align 478  %conv7.us = trunc i32 %6 to i1679  %tobool11.us = icmp eq i16 %conv7.us, 080  br i1 %tobool11.us, label %cond.false18.us, label %land.lhs.true12.us81 82if.end.us:                                        ; preds = %cond.end.us, %if.then.us83  br i1 %tobool4, label %if.end6.us, label %for.cond1.preheader84 85if.then.us:                                       ; preds = %cond.end.us86  store i32 0, ptr @f, align 487  br label %if.end.us88 89cond.end.us:                                      ; preds = %cond.end21.us, %for.cond1.preheader.split.us90  %j.1.us = phi i32 [ %conv24.us, %cond.end21.us ], [ %j.073, %for.cond1.preheader.split.us ]91  store i32 %conv, ptr @h, align 492  br i1 %cmp, label %if.then.us, label %if.end.us93 94for.cond1.preheader.split.for.cond1.preheader.split.split_crit_edge: ; preds = %for.cond1.preheader.for.cond1.preheader.split_crit_edge95  br i1 %tobool4, label %if.end6.us65, label %for.cond25.loopexit.us-lcssa.us-lcssa96 97cond.false18.us40:                                ; preds = %if.end.us5098  %7 = load i32, ptr @f, align 499  %sext = shl i32 %7, 16100  %phitmp = ashr exact i32 %sext, 16101  br label %if.end.us50102 103if.end.us50:                                      ; preds = %cond.false18.us40, %for.cond1.preheader.for.cond1.preheader.split_crit_edge104  %j.1.us36 = phi i32 [ %j.073, %for.cond1.preheader.for.cond1.preheader.split_crit_edge ], [ %phitmp, %cond.false18.us40 ]105  store i32 0, ptr @h, align 4106  br i1 %tobool4, label %cond.false18.us40, label %for.cond1.preheader107 108if.end6.us65:                                     ; preds = %if.end6.us65, %for.cond1.preheader.split.for.cond1.preheader.split.split_crit_edge109  store i32 0, ptr @h, align 4110  br label %if.end6.us65111 112for.cond25.loopexit.us-lcssa.us-lcssa:            ; preds = %for.cond1.preheader.split.for.cond1.preheader.split.split_crit_edge113  store i32 0, ptr @h, align 4114  br label %for.cond1.preheader115 116for.end32:                                        ; preds = %entry117  ret void118}119