@@ -515,27 +515,6 @@ declare i32 @foo()
515
515
; Loop with a call cannot be handled by LoopVectorize, introducing additional
516
516
; accumulators when unrolling increases throughput.
517
517
define i32 @test_add_with_call (i64 %n , i32 %start ) {
518
- ; CHECK-LABEL: define i32 @test_add_with_call(
519
- ; CHECK-SAME: i64 [[N:%.*]], i32 [[START:%.*]]) {
520
- ; CHECK-NEXT: [[ENTRY:.*]]:
521
- ; CHECK-NEXT: br label %[[LOOP:.*]]
522
- ; CHECK: [[LOOP]]:
523
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT_3:%.*]], %[[LOOP]] ]
524
- ; CHECK-NEXT: [[RDX:%.*]] = phi i32 [ [[START]], %[[ENTRY]] ], [ [[RDX_NEXT_3:%.*]], %[[LOOP]] ]
525
- ; CHECK-NEXT: [[L:%.*]] = call i32 @foo()
526
- ; CHECK-NEXT: [[RDX_NEXT:%.*]] = add i32 [[RDX]], [[L]]
527
- ; CHECK-NEXT: [[L_1:%.*]] = call i32 @foo()
528
- ; CHECK-NEXT: [[RDX_2:%.*]] = add i32 [[RDX_NEXT]], [[L_1]]
529
- ; CHECK-NEXT: [[L_2:%.*]] = call i32 @foo()
530
- ; CHECK-NEXT: [[RDX_NEXT_2:%.*]] = add i32 [[RDX_2]], [[L_2]]
531
- ; CHECK-NEXT: [[IV_NEXT_3]] = add nuw nsw i64 [[IV]], 4
532
- ; CHECK-NEXT: [[L_3:%.*]] = call i32 @foo()
533
- ; CHECK-NEXT: [[RDX_NEXT_3]] = add i32 [[RDX_NEXT_2]], [[L_3]]
534
- ; CHECK-NEXT: [[EC_3:%.*]] = icmp ne i64 [[IV_NEXT_3]], 1000
535
- ; CHECK-NEXT: br i1 [[EC_3]], label %[[LOOP]], label %[[EXIT:.*]]
536
- ; CHECK: [[EXIT]]:
537
- ; CHECK-NEXT: [[BIN_RDX2:%.*]] = phi i32 [ [[RDX_NEXT_3]], %[[LOOP]] ]
538
- ; CHECK-NEXT: ret i32 [[BIN_RDX2]]
539
518
;
540
519
entry:
541
520
br label %loop
@@ -556,42 +535,6 @@ exit:
556
535
; Loop with backward dependence cannot be handled LoopVectorize, introducing additional
557
536
; accumulators when unrolling increases throughput.
558
537
define i32 @test_add_with_backward_dep (ptr %p , i64 %n , i32 %start ) {
559
- ; CHECK-LABEL: define i32 @test_add_with_backward_dep(
560
- ; CHECK-SAME: ptr [[P:%.*]], i64 [[N:%.*]], i32 [[START:%.*]]) {
561
- ; CHECK-NEXT: [[ENTRY:.*]]:
562
- ; CHECK-NEXT: br label %[[LOOP:.*]]
563
- ; CHECK: [[LOOP]]:
564
- ; CHECK-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[IV_NEXT_3:%.*]], %[[LOOP]] ]
565
- ; CHECK-NEXT: [[RDX:%.*]] = phi i32 [ [[START]], %[[ENTRY]] ], [ [[RDX_NEXT_3:%.*]], %[[LOOP]] ]
566
- ; CHECK-NEXT: [[IV_NEXT:%.*]] = add nuw nsw i64 [[IV]], 1
567
- ; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV]]
568
- ; CHECK-NEXT: [[L:%.*]] = load i32, ptr [[GEP]], align 4
569
- ; CHECK-NEXT: [[GEP_1:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV_NEXT]]
570
- ; CHECK-NEXT: store i32 0, ptr [[GEP_1]], align 4
571
- ; CHECK-NEXT: [[RDX_NEXT:%.*]] = add i32 [[RDX]], [[L]]
572
- ; CHECK-NEXT: [[IV_NEXT_1:%.*]] = add nuw nsw i64 [[IV]], 2
573
- ; CHECK-NEXT: [[GEP_11:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV_NEXT]]
574
- ; CHECK-NEXT: [[L_1:%.*]] = load i32, ptr [[GEP_11]], align 4
575
- ; CHECK-NEXT: [[GEP_1_1:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV_NEXT_1]]
576
- ; CHECK-NEXT: store i32 0, ptr [[GEP_1_1]], align 4
577
- ; CHECK-NEXT: [[RDX_2:%.*]] = add i32 [[RDX_NEXT]], [[L_1]]
578
- ; CHECK-NEXT: [[IV_NEXT_2:%.*]] = add nuw nsw i64 [[IV]], 3
579
- ; CHECK-NEXT: [[GEP_2:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV_NEXT_1]]
580
- ; CHECK-NEXT: [[L_2:%.*]] = load i32, ptr [[GEP_2]], align 4
581
- ; CHECK-NEXT: [[GEP_1_2:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV_NEXT_2]]
582
- ; CHECK-NEXT: store i32 0, ptr [[GEP_1_2]], align 4
583
- ; CHECK-NEXT: [[RDX_NEXT_2:%.*]] = add i32 [[RDX_2]], [[L_2]]
584
- ; CHECK-NEXT: [[IV_NEXT_3]] = add nuw nsw i64 [[IV]], 4
585
- ; CHECK-NEXT: [[GEP_3:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV_NEXT_2]]
586
- ; CHECK-NEXT: [[L_3:%.*]] = load i32, ptr [[GEP_3]], align 4
587
- ; CHECK-NEXT: [[GEP_1_3:%.*]] = getelementptr inbounds nuw i32, ptr [[P]], i64 [[IV_NEXT_3]]
588
- ; CHECK-NEXT: store i32 0, ptr [[GEP_1_3]], align 4
589
- ; CHECK-NEXT: [[RDX_NEXT_3]] = add i32 [[RDX_NEXT_2]], [[L_3]]
590
- ; CHECK-NEXT: [[EC_3:%.*]] = icmp ne i64 [[IV_NEXT_3]], 1000
591
- ; CHECK-NEXT: br i1 [[EC_3]], label %[[LOOP]], label %[[EXIT:.*]]
592
- ; CHECK: [[EXIT]]:
593
- ; CHECK-NEXT: [[BIN_RDX3:%.*]] = phi i32 [ [[RDX_NEXT_3]], %[[LOOP]] ]
594
- ; CHECK-NEXT: ret i32 [[BIN_RDX3]]
595
538
;
596
539
entry:
597
540
br label %loop
0 commit comments