Skip to content

Commit 6844857

Browse files
llvm: Update baseline to 16903ace180755b7558234ff2b2e8d89b00dcb88
1 parent 0729490 commit 6844857

File tree

12 files changed

+7219
-6472
lines changed

12 files changed

+7219
-6472
lines changed

bench/graphviz/optimized/spring_electrical.c.ll

Lines changed: 99 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3073,16 +3073,17 @@ define void @pcp_rotate(i32 noundef %0, i32 noundef %1, ptr nocapture noundef %2
30733073
%67 = insertelement <2 x double> poison, double %sqrt, i64 0
30743074
%68 = shufflevector <2 x double> %67, <2 x double> poison, <2 x i32> zeroinitializer
30753075
%69 = fdiv <2 x double> %66, %68
3076-
br i1 %44, label %.lr.ph125.preheader, label %._crit_edge126
3076+
br i1 %44, label %.lr.ph125.lver.check, label %._crit_edge126
30773077

3078-
.lr.ph125.preheader: ; preds = %64
3078+
.lr.ph125.lver.check: ; preds = %64
30793079
%70 = sext i32 %1 to i64
30803080
%wide.trip.count171 = zext nneg i32 %0 to i64
3081-
br label %.lr.ph125
3081+
%ident.check.not = icmp eq i32 %1, 1
3082+
br i1 %ident.check.not, label %.lr.ph125.ph, label %.lr.ph125.lver.orig
30823083

3083-
.lr.ph125: ; preds = %.lr.ph125.preheader, %.lr.ph125
3084-
%indvars.iv168 = phi i64 [ 0, %.lr.ph125.preheader ], [ %indvars.iv.next169, %.lr.ph125 ]
3085-
%71 = mul nsw i64 %indvars.iv168, %70
3084+
.lr.ph125.lver.orig: ; preds = %.lr.ph125.lver.check, %.lr.ph125.lver.orig
3085+
%indvars.iv168.lver.orig = phi i64 [ %indvars.iv.next169.lver.orig, %.lr.ph125.lver.orig ], [ 0, %.lr.ph125.lver.check ]
3086+
%71 = mul nsw i64 %indvars.iv168.lver.orig, %70
30863087
%72 = getelementptr inbounds double, ptr %2, i64 %71
30873088
%73 = load double, ptr %72, align 8
30883089
%74 = getelementptr i8, ptr %72, i64 8
@@ -3096,11 +3097,36 @@ define void @pcp_rotate(i32 noundef %0, i32 noundef %1, ptr nocapture noundef %2
30963097
%82 = insertelement <2 x double> %81, double %76, i64 1
30973098
%83 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %82, <2 x double> %69, <2 x double> %80)
30983099
store <2 x double> %83, ptr %72, align 8
3100+
%indvars.iv.next169.lver.orig = add nuw nsw i64 %indvars.iv168.lver.orig, 1
3101+
%exitcond172.not.lver.orig = icmp eq i64 %indvars.iv.next169.lver.orig, %wide.trip.count171
3102+
br i1 %exitcond172.not.lver.orig, label %._crit_edge126, label %.lr.ph125.lver.orig
3103+
3104+
.lr.ph125.ph: ; preds = %.lr.ph125.lver.check
3105+
%load_initial = load double, ptr %2, align 8
3106+
br label %.lr.ph125
3107+
3108+
.lr.ph125: ; preds = %.lr.ph125.ph, %.lr.ph125
3109+
%store_forwarded = phi double [ %load_initial, %.lr.ph125.ph ], [ %96, %.lr.ph125 ]
3110+
%indvars.iv168 = phi i64 [ 0, %.lr.ph125.ph ], [ %indvars.iv.next169, %.lr.ph125 ]
3111+
%84 = mul nuw nsw i64 %indvars.iv168, %70
3112+
%85 = getelementptr inbounds double, ptr %2, i64 %84
3113+
%86 = getelementptr i8, ptr %85, i64 8
3114+
%87 = load double, ptr %86, align 8
3115+
%88 = fneg double %store_forwarded
3116+
%89 = insertelement <2 x double> poison, double %87, i64 0
3117+
%90 = shufflevector <2 x double> %89, <2 x double> poison, <2 x i32> zeroinitializer
3118+
%91 = fmul <2 x double> %69, %90
3119+
%92 = shufflevector <2 x double> %91, <2 x double> poison, <2 x i32> <i32 1, i32 0>
3120+
%93 = insertelement <2 x double> poison, double %store_forwarded, i64 0
3121+
%94 = insertelement <2 x double> %93, double %88, i64 1
3122+
%95 = tail call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %94, <2 x double> %69, <2 x double> %92)
3123+
store <2 x double> %95, ptr %85, align 8
30993124
%indvars.iv.next169 = add nuw nsw i64 %indvars.iv168, 1
31003125
%exitcond172.not = icmp eq i64 %indvars.iv.next169, %wide.trip.count171
3126+
%96 = extractelement <2 x double> %95, i64 1
31013127
br i1 %exitcond172.not, label %._crit_edge126, label %.lr.ph125
31023128

3103-
._crit_edge126: ; preds = %.lr.ph125, %64
3129+
._crit_edge126: ; preds = %.lr.ph125.lver.orig, %.lr.ph125, %64
31043130
ret void
31053131
}
31063132

@@ -3112,15 +3138,15 @@ define void @multilevel_spring_electrical_embedding(i32 noundef %0, ptr noundef
31123138
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %10, ptr noundef nonnull align 8 dereferenceable(136) %2, i64 136, i1 false)
31133139
store i32 0, ptr %7, align 4
31143140
%.not = icmp eq ptr %1, null
3115-
br i1 %.not, label %718, label %12
3141+
br i1 %.not, label %733, label %12
31163142

31173143
12: ; preds = %8
31183144
%13 = getelementptr inbounds i8, ptr %1, i64 4
31193145
%14 = load i32, ptr %13, align 4
31203146
%15 = icmp slt i32 %14, 1
31213147
%16 = icmp slt i32 %0, 1
31223148
%or.cond = or i1 %16, %15
3123-
br i1 %or.cond, label %718, label %17
3149+
br i1 %or.cond, label %733, label %17
31243150

31253151
17: ; preds = %12
31263152
%18 = tail call zeroext i1 @SparseMatrix_is_symmetric(ptr noundef nonnull %1, i1 noundef zeroext false) #23
@@ -3748,11 +3774,11 @@ attach_edge_label_coordinates.exit: ; preds = %._crit_edge121.i.lo
37483774
tail call void @SparseMatrix_delete(ptr noundef %202) #23
37493775
tail call void @free(ptr noundef %38) #23
37503776
%.not157 = icmp eq ptr %.0, %1
3751-
br i1 %.not157, label %718, label %281
3777+
br i1 %.not157, label %733, label %281
37523778

37533779
281: ; preds = %attach_edge_label_coordinates.exit
37543780
tail call void @SparseMatrix_delete(ptr noundef nonnull %.0) #23
3755-
br label %718
3781+
br label %733
37563782

37573783
282: ; preds = %33, %30
37583784
call void @Multilevel_control_new(ptr dead_on_unwind nonnull writable sret(%struct.Multilevel_control) align 8 %11) #23
@@ -4426,7 +4452,7 @@ spring_electrical_embedding_slow.exit: ; preds = %543, %365, %349, %5
44264452

44274453
563: ; preds = %561
44284454
call void @free(ptr noundef %.1) #23
4429-
br label %715
4455+
br label %730
44304456

44314457
564: ; preds = %561
44324458
%565 = getelementptr inbounds i8, ptr %.0140, i64 16
@@ -4645,14 +4671,14 @@ prolongate.exit: ; preds = %.loopexit30.us.i, %
46454671
%663 = getelementptr inbounds i8, ptr %2, i64 120
46464672
%664 = load double, ptr %663, align 8
46474673
%665 = fcmp une double %664, 0.000000e+00
4648-
br i1 %665, label %669, label %706
4674+
br i1 %665, label %669, label %721
46494675

46504676
.thread209: ; preds = %660
46514677
call void @pcp_rotate(i32 noundef %14, i32 noundef 2, ptr noundef %4)
46524678
%666 = getelementptr inbounds i8, ptr %2, i64 120
46534679
%667 = load double, ptr %666, align 8
46544680
%668 = fcmp une double %667, 0.000000e+00
4655-
br i1 %668, label %.thread210, label %706
4681+
br i1 %668, label %.thread210, label %721
46564682

46574683
.thread210: ; preds = %.thread209
46584684
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9)
@@ -4716,7 +4742,7 @@ prolongate.exit: ; preds = %.loopexit30.us.i, %
47164742
._crit_edge.us81.i: ; preds = %679
47174743
%indvars.iv.next104.i = add nuw nsw i64 %indvars.iv103.i, 1
47184744
%exitcond107.not.i = icmp eq i64 %indvars.iv.next104.i, %wide.trip.count91.i
4719-
br i1 %exitcond107.not.i, label %._crit_edge80.i, label %.preheader.us.i199
4745+
br i1 %exitcond107.not.i, label %.lr.ph83.i.lver.check, label %.preheader.us.i199
47204746

47214747
684: ; preds = %684, %.lr.ph76.i
47224748
%indvars.iv93.i = phi i64 [ 0, %.lr.ph76.i ], [ %indvars.iv.next94.i, %684 ]
@@ -4728,18 +4754,22 @@ prolongate.exit: ; preds = %.loopexit30.us.i, %
47284754
%exitcond97.not.i = icmp eq i64 %indvars.iv.next94.i, %345
47294755
br i1 %exitcond97.not.i, label %.preheader.us.i199, label %684
47304756

4731-
._crit_edge80.i: ; preds = %._crit_edge.us81.i
4757+
.lr.ph83.i.lver.check: ; preds = %._crit_edge.us81.i
47324758
%688 = fmul double %670, 0xBF91DF45A50DE270
47334759
%689 = call double @cos(double noundef %688) #23
47344760
%690 = call double @sin(double noundef %688) #23
4761+
%ident.check.not = icmp eq i32 %0, 1
4762+
br i1 %ident.check.not, label %.lr.ph83.i.ph, label %.lr.ph83.i.lver.orig.preheader
4763+
4764+
.lr.ph83.i.lver.orig.preheader: ; preds = %.lr.ph83.i.lver.check
47354765
%691 = insertelement <2 x double> poison, double %690, i64 0
47364766
%692 = insertelement <2 x double> %691, double %689, i64 1
47374767
%693 = shufflevector <2 x double> %692, <2 x double> poison, <2 x i32> <i32 1, i32 0>
4738-
br label %.lr.ph83.i
4768+
br label %.lr.ph83.i.lver.orig
47394769

4740-
.lr.ph83.i: ; preds = %.lr.ph83.i, %._crit_edge80.i
4741-
%indvars.iv108.i = phi i64 [ 0, %._crit_edge80.i ], [ %indvars.iv.next109.i, %.lr.ph83.i ]
4742-
%694 = mul nuw nsw i64 %indvars.iv108.i, %345
4770+
.lr.ph83.i.lver.orig: ; preds = %.lr.ph83.i.lver.orig.preheader, %.lr.ph83.i.lver.orig
4771+
%indvars.iv108.i.lver.orig = phi i64 [ %indvars.iv.next109.i.lver.orig, %.lr.ph83.i.lver.orig ], [ 0, %.lr.ph83.i.lver.orig.preheader ]
4772+
%694 = mul nuw nsw i64 %indvars.iv108.i.lver.orig, %345
47434773
%695 = getelementptr inbounds double, ptr %4, i64 %694
47444774
%696 = load double, ptr %695, align 8
47454775
%697 = getelementptr i8, ptr %695, i64 8
@@ -4752,40 +4782,67 @@ prolongate.exit: ; preds = %.loopexit30.us.i, %
47524782
%704 = insertelement <2 x double> %703, double %699, i64 1
47534783
%705 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %704, <2 x double> %693, <2 x double> %702)
47544784
store <2 x double> %705, ptr %695, align 8
4785+
%indvars.iv.next109.i.lver.orig = add nuw nsw i64 %indvars.iv108.i.lver.orig, 1
4786+
%exitcond112.not.i.lver.orig = icmp eq i64 %indvars.iv.next109.i.lver.orig, %wide.trip.count91.i
4787+
br i1 %exitcond112.not.i.lver.orig, label %rotate.exit, label %.lr.ph83.i.lver.orig
4788+
4789+
.lr.ph83.i.ph: ; preds = %.lr.ph83.i.lver.check
4790+
%load_initial = load double, ptr %4, align 8
4791+
%706 = insertelement <2 x double> poison, double %690, i64 0
4792+
%707 = insertelement <2 x double> %706, double %689, i64 1
4793+
%708 = shufflevector <2 x double> %707, <2 x double> poison, <2 x i32> <i32 1, i32 0>
4794+
br label %.lr.ph83.i
4795+
4796+
.lr.ph83.i: ; preds = %.lr.ph83.i, %.lr.ph83.i.ph
4797+
%store_forwarded = phi double [ %load_initial, %.lr.ph83.i.ph ], [ %720, %.lr.ph83.i ]
4798+
%indvars.iv108.i = phi i64 [ 0, %.lr.ph83.i.ph ], [ %indvars.iv.next109.i, %.lr.ph83.i ]
4799+
%709 = mul nuw nsw i64 %indvars.iv108.i, %345
4800+
%710 = getelementptr inbounds double, ptr %4, i64 %709
4801+
%711 = getelementptr i8, ptr %710, i64 8
4802+
%712 = load double, ptr %711, align 8
4803+
%713 = fneg double %store_forwarded
4804+
%714 = insertelement <2 x double> poison, double %712, i64 0
4805+
%715 = shufflevector <2 x double> %714, <2 x double> poison, <2 x i32> zeroinitializer
4806+
%716 = fmul <2 x double> %707, %715
4807+
%717 = insertelement <2 x double> poison, double %store_forwarded, i64 0
4808+
%718 = insertelement <2 x double> %717, double %713, i64 1
4809+
%719 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %718, <2 x double> %708, <2 x double> %716)
4810+
store <2 x double> %719, ptr %710, align 8
47554811
%indvars.iv.next109.i = add nuw nsw i64 %indvars.iv108.i, 1
47564812
%exitcond112.not.i = icmp eq i64 %indvars.iv.next109.i, %wide.trip.count91.i
4813+
%720 = extractelement <2 x double> %719, i64 1
47574814
br i1 %exitcond112.not.i, label %rotate.exit, label %.lr.ph83.i
47584815

4759-
rotate.exit: ; preds = %.lr.ph83.i
4816+
rotate.exit: ; preds = %.lr.ph83.i.lver.orig, %.lr.ph83.i
47604817
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9)
4761-
br label %706
4762-
4763-
706: ; preds = %.thread209, %rotate.exit, %662
4764-
%707 = getelementptr inbounds i8, ptr %2, i64 100
4765-
%708 = load i32, ptr %707, align 4
4766-
%709 = getelementptr inbounds i8, ptr %2, i64 112
4767-
%710 = load double, ptr %709, align 8
4768-
%711 = load i32, ptr %27, align 8
4769-
%712 = getelementptr inbounds i8, ptr %2, i64 104
4770-
%713 = load i8, ptr %712, align 8
4771-
%714 = trunc i8 %713 to i1
4772-
call void @remove_overlap(i32 noundef %0, ptr noundef nonnull %.0, ptr noundef %4, ptr noundef %3, i32 noundef %708, double noundef %710, i32 noundef %711, i32 noundef %5, ptr noundef %6, ptr noundef nonnull %.0, i1 noundef zeroext %714) #23
4773-
br label %715
4774-
4775-
715: ; preds = %706, %563
4818+
br label %721
4819+
4820+
721: ; preds = %.thread209, %rotate.exit, %662
4821+
%722 = getelementptr inbounds i8, ptr %2, i64 100
4822+
%723 = load i32, ptr %722, align 4
4823+
%724 = getelementptr inbounds i8, ptr %2, i64 112
4824+
%725 = load double, ptr %724, align 8
4825+
%726 = load i32, ptr %27, align 8
4826+
%727 = getelementptr inbounds i8, ptr %2, i64 104
4827+
%728 = load i8, ptr %727, align 8
4828+
%729 = trunc i8 %728 to i1
4829+
call void @remove_overlap(i32 noundef %0, ptr noundef nonnull %.0, ptr noundef %4, ptr noundef %3, i32 noundef %723, double noundef %725, i32 noundef %726, i32 noundef %5, ptr noundef %6, ptr noundef nonnull %.0, i1 noundef zeroext %729) #23
4830+
br label %730
4831+
4832+
730: ; preds = %721, %563
47764833
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %2, ptr noundef nonnull align 8 dereferenceable(136) %10, i64 136, i1 false)
47774834
%.not156 = icmp eq ptr %.0, %1
4778-
br i1 %.not156, label %717, label %716
4835+
br i1 %.not156, label %732, label %731
47794836

4780-
716: ; preds = %715
4837+
731: ; preds = %730
47814838
call void @SparseMatrix_delete(ptr noundef nonnull %.0) #23
4782-
br label %717
4839+
br label %732
47834840

4784-
717: ; preds = %716, %715
4841+
732: ; preds = %731, %730
47854842
call void @Multilevel_delete(ptr noundef %286) #23
4786-
br label %718
4843+
br label %733
47874844

4788-
718: ; preds = %attach_edge_label_coordinates.exit, %281, %12, %8, %717
4845+
733: ; preds = %attach_edge_label_coordinates.exit, %281, %12, %8, %732
47894846
ret void
47904847
}
47914848

0 commit comments

Comments
 (0)