Open Quuxplusone opened 3 years ago
tc_crash0_aftercreduce.ll
Created attachment 24938 reduced testcase opt -O3 ./tc_crash0_aftercreduce.ll -march=arch13 -S -o - -extra-vectorizer- passes -enable-unroll-and-jam -allow-unroll-and-jam -instcombine-code- sinking=false -unroll-and-jam-count=8 -keep-loops=false Instruction does not dominate all uses! %i18 = and i32 %c.promoted, 4 %i21 = and i32 %b.promoted, %i18 *** IR Dump After LCSSAPass on f *** ; Function Attrs: nofree norecurse nosync nounwind define dso_local void @f() local_unnamed_addr #0 { bb: store i32 9, i32* @a, align 4 %c.promoted = load i32, i32* @c, align 4 %b.promoted = load i32, i32* @b, align 4 br label %bb8.outer bb8.outer: ; preds = %bb14, %bb %i258.ph = phi i32 [ %i25, %bb14 ], [ 9, %bb ] %i216.ph = phi i32 [ %i21, %bb14 ], [ %b.promoted, %bb ] %i174.ph = phi i32 [ %i18, %bb14 ], [ %c.promoted, %bb ] br label %bb8 bb8: ; preds = %bb8.outer, %bb8 %i1.0 = phi i32 [ %i13, %bb8 ], [ 0, %bb8.outer ] %i10 = icmp ult i32 %i1.0, 2 %i13 = add nuw nsw i32 %i1.0, 1 br i1 %i10, label %bb8, label %bb14 bb14: ; preds = %bb8 %i18 = and i32 %i174.ph, 4 %i21 = and i32 %i216.ph, %i18 %i25 = add nsw i32 %i258.ph, -4 %i6.not = icmp eq i32 %i25, 0 br i1 %i6.not, label %bb26, label %bb8.outer bb26: ; preds = %bb14 %i18.lcssa = phi i32 [ %i18, %bb14 ] %i21.lcssa = phi i32 [ %i21, %bb14 ] %i25.lcssa = phi i32 [ %i25, %bb14 ] store i32 %i18.lcssa, i32* @c, align 4 store i32 %i21.lcssa, i32* @b, align 4 store i32 %i25.lcssa, i32* @a, align 4 ret void } *** IR Dump After LoopUnrollPass on f *** ... bb8.outer: ; preds = %bb %i21 = and i32 %b.promoted, %i18 %i18 = and i32 %c.promoted, 4 ...
Attached tc_crash0_aftercreduce.ll (2637 bytes, text/plain): reduced testcase
tc_crash0_aftercreduce.ll
(2637 bytes, text/plain)