brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 1ee0e82 Raw
58 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -S -passes='loop(loop-flatten),verify' -verify-loop-info -verify-dom-info -verify-scev | FileCheck %s3 4; Check that the mul does not have extra uses.5 6define void @test0(ptr %arg, ptr %arg1) {7; CHECK-LABEL: @test0(8; CHECK-NEXT:  bb:9; CHECK-NEXT:    br label [[DOTPREHEADER:%.*]]10; CHECK:       .preheader:11; CHECK-NEXT:    [[I:%.*]] = phi i64 [ 0, [[BB:%.*]] ], [ [[I5:%.*]], [[BB4:%.*]] ]12; CHECK-NEXT:    [[I2:%.*]] = mul i64 [[I]], 313; CHECK-NEXT:    [[I3:%.*]] = getelementptr i16, ptr [[ARG1:%.*]], i64 [[I2]]14; CHECK-NEXT:    br label [[BB7:%.*]]15; CHECK:       bb4:16; CHECK-NEXT:    [[I5]] = add i64 [[I]], 117; CHECK-NEXT:    [[I6:%.*]] = icmp slt i64 [[I5]], 218; CHECK-NEXT:    br i1 [[I6]], label [[DOTPREHEADER]], label [[BB14:%.*]]19; CHECK:       bb7:20; CHECK-NEXT:    [[I8:%.*]] = phi i64 [ 0, [[DOTPREHEADER]] ], [ [[I12:%.*]], [[BB7]] ]21; CHECK-NEXT:    [[I9:%.*]] = load i16, ptr [[I3]], align 222; CHECK-NEXT:    [[I10:%.*]] = add i64 [[I8]], [[I2]]23; CHECK-NEXT:    [[I11:%.*]] = getelementptr i16, ptr [[ARG:%.*]], i64 [[I10]]24; CHECK-NEXT:    store i16 [[I9]], ptr [[I11]], align 225; CHECK-NEXT:    [[I12]] = add nuw nsw i64 [[I8]], 126; CHECK-NEXT:    [[I13:%.*]] = icmp ult i64 [[I12]], 327; CHECK-NEXT:    br i1 [[I13]], label [[BB7]], label [[BB4]]28; CHECK:       bb14:29; CHECK-NEXT:    ret void30;31bb:32  br label %.preheader33 34.preheader:                                       ; preds = %bb4, %bb35  %i = phi i64 [ 0, %bb ], [ %i5, %bb4 ]36  %i2 = mul i64 %i, 337  %i3 = getelementptr i16, ptr %arg1, i64 %i238  br label %bb739 40bb4:                                              ; preds = %bb741  %i5 = add i64 %i, 142  %i6 = icmp slt i64 %i5, 243  br i1 %i6, label %.preheader, label %bb1444 45bb7:                                              ; preds = %bb7, %.preheader46  %i8 = phi i64 [ 0, %.preheader ], [ %i12, %bb7 ]47  %i9 = load i16, ptr %i3, align 248  %i10 = add i64 %i8, %i249  %i11 = getelementptr i16, ptr %arg, i64 %i1050  store i16 %i9, ptr %i11, align 251  %i12 = add nuw nsw i64 %i8, 152  %i13 = icmp ult i64 %i12, 353  br i1 %i13, label %bb7, label %bb454 55bb14:                                             ; preds = %bb456  ret void57}58