brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · f802a88 Raw
95 lines · plain
1; RUN: llc -verify-machineinstrs < %s | FileCheck %s2target datalayout = "e-p:64:64-i64:64-n32:64"3target triple = "powerpc64le-linux"4 5%struct.BSS1.0.9.28.39.43.46.47.54.56.57.64.65.69.71.144 = type <{ [220 x i8] }>6 7@.BSS1 = external unnamed_addr global %struct.BSS1.0.9.28.39.43.46.47.54.56.57.64.65.69.71.144, align 328 9; Function Attrs: noinline nounwind10define void @ety2_() #0 {11 12; This test case used to crash because the preinc prep pass would assume that13; if X-Y could be simplified to a constant, than so could Y-X. While not14; desirable, we cannot actually make this guarantee.15; CHECK-LABEL: @ety2_16 17L.entry:18  %0 = load i32, ptr undef, align 419  %1 = sext i32 %0 to i6420  %2 = shl nsw i64 %1, 321  %3 = add nsw i64 %2, 822  br label %L.LB1_42523 24L.LB1_425:                                        ; preds = %L.LB1_427, %L.entry25  %4 = phi i64 [ %21, %L.LB1_427 ], [ undef, %L.entry ]26  br i1 undef, label %L.LB1_427, label %L.LB1_81627 28L.LB1_816:                                        ; preds = %L.LB1_42529  switch i32 undef, label %L.LB1_432 [30    i32 30, label %L.LB1_80531    i32 10, label %L.LB1_45132    i32 20, label %L.LB1_45133  ]34 35L.LB1_451:                                        ; preds = %L.LB1_816, %L.LB1_81636  unreachable37 38L.LB1_432:                                        ; preds = %L.LB1_81639  %.in.31 = lshr i64 %4, 3240  %5 = trunc i64 %.in.31 to i3241  br i1 undef, label %L.LB1_769, label %L.LB1_45542 43L.LB1_455:                                        ; preds = %L.LB1_43244  unreachable45 46L.LB1_769:                                        ; preds = %L.LB1_43247  %6 = sext i32 %5 to i6448  %7 = add nsw i64 %6, 249  %8 = add nsw i64 %6, -150  %9 = mul i64 %8, %151  %10 = add i64 %9, %752  %11 = shl i64 %10, 353  %12 = getelementptr i8, ptr undef, i64 %1154  %13 = mul nsw i64 %6, %155  %14 = add i64 %7, %1356  %15 = shl i64 %14, 357  %16 = getelementptr i8, ptr undef, i64 %1558  br i1 undef, label %L.LB1_662, label %L.LB1_662.prol59 60L.LB1_662.prol:                                   ; preds = %L.LB1_662.prol, %L.LB1_76961  %indvars.iv.next20.prol = add nuw nsw i64 undef, 162  br i1 undef, label %L.LB1_662, label %L.LB1_662.prol63 64L.LB1_662:                                        ; preds = %L.LB1_437.2, %L.LB1_662.prol, %L.LB1_76965  %indvars.iv19 = phi i64 [ %indvars.iv.next20.3, %L.LB1_437.2 ], [ 0, %L.LB1_769 ], [ %indvars.iv.next20.prol, %L.LB1_662.prol ]66  %indvars.iv.next20 = add nuw nsw i64 %indvars.iv19, 167  %17 = mul i64 %indvars.iv.next20, %368  %18 = getelementptr i8, ptr %16, i64 %1769  %19 = bitcast ptr %18 to ptr70  store double 0.000000e+00, ptr %19, align 871  %indvars.iv.next20.1 = add nsw i64 %indvars.iv19, 272  %20 = mul i64 %indvars.iv.next20.1, %373  br i1 undef, label %L.LB1_437.2, label %L.LB1_824.274 75L.LB1_427:                                        ; preds = %L.LB1_42576  %21 = load i64, ptr getelementptr inbounds (%struct.BSS1.0.9.28.39.43.46.47.54.56.57.64.65.69.71.144, ptr @.BSS1, i64 0, i32 0, i64 8), align 877  br label %L.LB1_42578 79L.LB1_805:                                        ; preds = %L.LB1_81680  ret void81 82L.LB1_824.2:                                      ; preds = %L.LB1_66283  %22 = getelementptr i8, ptr %12, i64 %2084  %23 = bitcast ptr %22 to ptr85  store double 0.000000e+00, ptr %23, align 886  br label %L.LB1_437.287 88L.LB1_437.2:                                      ; preds = %L.LB1_824.2, %L.LB1_66289  %indvars.iv.next20.3 = add nsw i64 %indvars.iv19, 490  br label %L.LB1_66291}92 93attributes #0 = { noinline nounwind }94 95