@@ -809,23 +809,22 @@ exit:
809
809
define void @zext_nneg (ptr noalias %p , ptr noalias %p1 ) {
810
810
; CHECK-LABEL: LV: Checking a loop in 'zext_nneg'
811
811
; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' {
812
- ; CHECK-NEXT: Live-in vp<%0 > = vector-trip-count
813
- ; CHECK-NEXT: Live-in ir<0 > = original trip-count
812
+ ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]] > = vector-trip-count
813
+ ; CHECK-NEXT: Live-in ir<1000 > = original trip-count
814
814
; CHECK-EMPTY:
815
815
; CHECK-NEXT: vector.ph:
816
816
; CHECK-NEXT: Successor(s): vector loop
817
817
; CHECK-EMPTY:
818
818
; CHECK-NEXT: <x1> vector loop: {
819
819
; CHECK-NEXT: vector.body:
820
- ; CHECK-NEXT: EMIT vp<%1> = CANONICAL-INDUCTION ir<0>, vp<%8>
821
- ; CHECK-NEXT: vp<%2> = DERIVED-IV ir<0> + vp<%1> * ir<1> (truncated to i32)
822
- ; CHECK-NEXT: vp<%3> = SCALAR-STEPS vp<%2>, ir<1>
823
- ; CHECK-NEXT: CLONE ir<%zext> = zext nneg vp<%3>
824
- ; CHECK-NEXT: CLONE ir<%idx2> = getelementptr ir<%p>, ir<%zext>
825
- ; CHECK-NEXT: WIDEN ir<%1> = load ir<%idx2>
826
- ; CHECK-NEXT: REPLICATE store ir<%1>, ir<%p1>
827
- ; CHECK-NEXT: EMIT vp<%8> = VF * UF + nuw vp<%1>
828
- ; CHECK-NEXT: EMIT branch-on-count vp<%8>, vp<%0>
820
+ ; CHECK-NEXT: EMIT vp<[[CAN_IV:%.+]]> = CANONICAL-INDUCTION ir<0>, vp<[[CAN_IV_NEXT:%.+]]>
821
+ ; CHECK-NEXT: vp<[[STEPS:%.+]]> = SCALAR-STEPS vp<[[CAN_IV]]>, ir<1>
822
+ ; CHECK-NEXT: CLONE ir<%idx> = getelementptr ir<%p>, vp<[[STEPS]]>
823
+ ; CHECK-NEXT: WIDEN ir<%l> = load ir<%idx>
824
+ ; CHECK-NEXT: WIDEN-CAST ir<%zext> = zext nneg ir<%l>
825
+ ; CHECK-NEXT: REPLICATE store ir<%zext>, ir<%p1>
826
+ ; CHECK-NEXT: EMIT vp<[[CAN_IV_NEXT]]> = VF * UF + nuw vp<[[CAN_IV]]>
827
+ ; CHECK-NEXT: EMIT branch-on-count vp<[[CAN_IV_NEXT]]>, vp<[[VEC_TC]]>
829
828
; CHECK-NEXT: No successors
830
829
; CHECK-NEXT: }
831
830
;
@@ -834,13 +833,12 @@ entry:
834
833
835
834
body:
836
835
%iv = phi i64 [ %next , %body ], [ 0 , %entry ]
837
- %0 = trunc i64 %iv to i32
838
- %zext = zext nneg i32 %0 to i64
839
- %idx2 = getelementptr double , ptr %p , i64 %zext
840
- %1 = load double , ptr %idx2 , align 8
841
- store double %1 , ptr %p1 , align 8
836
+ %idx = getelementptr i32 , ptr %p , i64 %iv
837
+ %l = load i32 , ptr %idx , align 8
838
+ %zext = zext nneg i32 %l to i64
839
+ store i64 %zext , ptr %p1 , align 8
842
840
%next = add i64 %iv , 1
843
- %cmp = icmp eq i64 %next , 0
841
+ %cmp = icmp eq i64 %next , 1000
844
842
br i1 %cmp , label %exit , label %body
845
843
846
844
exit:
0 commit comments