[llvm] cf8d8a3 - [LV] Convert some tests to use opaque pointers (NFC).

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 19 12:46:35 PST 2022


Author: Florian Hahn
Date: 2022-12-19T20:44:44Z
New Revision: cf8d8a33c6152594c2a8fd094d17b09bf53bbead

URL: https://github.com/llvm/llvm-project/commit/cf8d8a33c6152594c2a8fd094d17b09bf53bbead
DIFF: https://github.com/llvm/llvm-project/commit/cf8d8a33c6152594c2a8fd094d17b09bf53bbead.diff

LOG: [LV] Convert some tests to use opaque pointers (NFC).

Added: 
    

Modified: 
    llvm/test/Transforms/LoopVectorize/vplan-printing.ll
    llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
    llvm/test/Transforms/LoopVectorize/vplan-vectorize-inner-loop-reduction.ll
    llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/LoopVectorize/vplan-printing.ll b/llvm/test/Transforms/LoopVectorize/vplan-printing.ll
index 7156469fcd395..b31f6458922e2 100644
--- a/llvm/test/Transforms/LoopVectorize/vplan-printing.ll
+++ b/llvm/test/Transforms/LoopVectorize/vplan-printing.ll
@@ -6,7 +6,7 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
 
 ; Tests for printing VPlans.
 
-define void @print_call_and_memory(i64 %n, float* noalias %y, float* noalias %x) nounwind uwtable {
+define void @print_call_and_memory(i64 %n, ptr noalias %y, ptr noalias %x) nounwind uwtable {
 ; CHECK-LABEL: Checking a loop in 'print_call_and_memory'
 ; CHECK:      VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -39,11 +39,11 @@ entry:
 
 for.body:                                         ; preds = %entry, %for.body
   %iv = phi i64 [ %iv.next, %for.body ], [ 0, %entry ]
-  %arrayidx = getelementptr inbounds float, float* %y, i64 %iv
-  %lv = load float, float* %arrayidx, align 4
+  %arrayidx = getelementptr inbounds float, ptr %y, i64 %iv
+  %lv = load float, ptr %arrayidx, align 4
   %call = tail call float @llvm.sqrt.f32(float %lv) nounwind readnone
-  %arrayidx2 = getelementptr inbounds float, float* %x, i64 %iv
-  store float %call, float* %arrayidx2, align 4
+  %arrayidx2 = getelementptr inbounds float, ptr %x, i64 %iv
+  store float %call, ptr %arrayidx2, align 4
   %iv.next = add i64 %iv, 1
   %exitcond = icmp eq i64 %iv.next, %n
   br i1 %exitcond, label %for.end, label %for.body
@@ -52,7 +52,7 @@ for.end:                                          ; preds = %for.body, %entry
   ret void
 }
 
-define void @print_widen_gep_and_select(i64 %n, float* noalias %y, float* noalias %x, float* %z) nounwind uwtable {
+define void @print_widen_gep_and_select(i64 %n, ptr noalias %y, ptr noalias %x, ptr %z) nounwind uwtable {
 ; CHECK-LABEL: Checking a loop in 'print_widen_gep_and_select'
 ; CHECK:      VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -88,13 +88,13 @@ entry:
 
 for.body:                                         ; preds = %entry, %for.body
   %iv = phi i64 [ %iv.next, %for.body ], [ 0, %entry ]
-  %arrayidx = getelementptr inbounds float, float* %y, i64 %iv
-  %lv = load float, float* %arrayidx, align 4
-  %cmp = icmp eq float* %arrayidx, %z
+  %arrayidx = getelementptr inbounds float, ptr %y, i64 %iv
+  %lv = load float, ptr %arrayidx, align 4
+  %cmp = icmp eq ptr %arrayidx, %z
   %sel = select i1 %cmp, float 10.0, float 20.0
   %add = fadd float %lv, %sel
-  %arrayidx2 = getelementptr inbounds float, float* %x, i64 %iv
-  store float %add, float* %arrayidx2, align 4
+  %arrayidx2 = getelementptr inbounds float, ptr %x, i64 %iv
+  store float %add, ptr %arrayidx2, align 4
   %iv.next = add i64 %iv, 1
   %exitcond = icmp eq i64 %iv.next, %n
   br i1 %exitcond, label %for.end, label %for.body
@@ -103,7 +103,7 @@ for.end:                                          ; preds = %for.body, %entry
   ret void
 }
 
-define float @print_reduction(i64 %n, float* noalias %y) {
+define float @print_reduction(i64 %n, ptr noalias %y) {
 ; CHECK-LABEL: Checking a loop in 'print_reduction'
 ; CHECK:      VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -137,8 +137,8 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %iv = phi i64 [ %iv.next, %for.body ], [ 0, %entry ]
   %red = phi float [ %red.next, %for.body ], [ 0.0, %entry ]
-  %arrayidx = getelementptr inbounds float, float* %y, i64 %iv
-  %lv = load float, float* %arrayidx, align 4
+  %arrayidx = getelementptr inbounds float, ptr %y, i64 %iv
+  %lv = load float, ptr %arrayidx, align 4
   %red.next = fadd fast float %lv, %red
   %iv.next = add i64 %iv, 1
   %exitcond = icmp eq i64 %iv.next, %n
@@ -148,7 +148,7 @@ for.end:                                          ; preds = %for.body, %entry
   ret float %red.next
 }
 
-define void @print_reduction_with_invariant_store(i64 %n, float* noalias %y, float* noalias %dst) {
+define void @print_reduction_with_invariant_store(i64 %n, ptr noalias %y, ptr noalias %dst) {
 ; CHECK-LABEL: Checking a loop in 'print_reduction_with_invariant_store'
 ; CHECK:      VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -180,10 +180,10 @@ entry:
 for.body:                                         ; preds = %entry, %for.body
   %iv = phi i64 [ %iv.next, %for.body ], [ 0, %entry ]
   %red = phi float [ %red.next, %for.body ], [ 0.0, %entry ]
-  %arrayidx = getelementptr inbounds float, float* %y, i64 %iv
-  %lv = load float, float* %arrayidx, align 4
+  %arrayidx = getelementptr inbounds float, ptr %y, i64 %iv
+  %lv = load float, ptr %arrayidx, align 4
   %red.next = fadd fast float %lv, %red
-  store float %red.next, float* %dst, align 4
+  store float %red.next, ptr %dst, align 4
   %iv.next = add i64 %iv, 1
   %exitcond = icmp eq i64 %iv.next, %n
   br i1 %exitcond, label %for.end, label %for.body
@@ -192,7 +192,7 @@ for.end:                                          ; preds = %for.body, %entry
   ret void
 }
 
-define void @print_replicate_predicated_phi(i64 %n, i64* %x) {
+define void @print_replicate_predicated_phi(i64 %n, ptr %x) {
 ; CHECK-LABEL: Checking a loop in 'print_replicate_predicated_phi'
 ; CHECK:      VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -258,8 +258,8 @@ if.then:                                          ; preds = %for.body
 
 for.inc:                                          ; preds = %if.then, %for.body
   %d = phi i64 [ 0, %for.body ], [ %tmp4, %if.then ]
-  %idx = getelementptr i64, i64* %x, i64 %i
-  store i64 %d, i64* %idx
+  %idx = getelementptr i64, ptr %x, i64 %i
+  store i64 %d, ptr %idx
   %i.next = add nuw nsw i64 %i, 1
   %cond = icmp slt i64 %i.next, %n
   br i1 %cond, label %for.body, label %for.end
@@ -312,24 +312,24 @@ entry:
 
 for.body:
   %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
-  %gep.AB.0= getelementptr inbounds [1024 x i32], [1024 x i32]* @AB, i64 0, i64 %iv
-  %AB.0 = load i32, i32* %gep.AB.0, align 4
+  %gep.AB.0= getelementptr inbounds [1024 x i32], ptr @AB, i64 0, i64 %iv
+  %AB.0 = load i32, ptr %gep.AB.0, align 4
   %iv.plus.1 = add i64 %iv, 1
-  %gep.AB.1 = getelementptr inbounds [1024 x i32], [1024 x i32]* @AB, i64 0, i64 %iv.plus.1
-  %AB.1 = load i32, i32* %gep.AB.1, align 4
+  %gep.AB.1 = getelementptr inbounds [1024 x i32], ptr @AB, i64 0, i64 %iv.plus.1
+  %AB.1 = load i32, ptr %gep.AB.1, align 4
   %iv.plus.2 = add i64 %iv, 2
   %iv.plus.3 = add i64 %iv, 3
-  %gep.AB.3 = getelementptr inbounds [1024 x i32], [1024 x i32]* @AB, i64 0, i64 %iv.plus.3
-  %AB.3 = load i32, i32* %gep.AB.3, align 4
+  %gep.AB.3 = getelementptr inbounds [1024 x i32], ptr @AB, i64 0, i64 %iv.plus.3
+  %AB.3 = load i32, ptr %gep.AB.3, align 4
   %add = add nsw i32 %AB.0, %AB.1
-  %gep.CD.0 = getelementptr inbounds [1024 x i32], [1024 x i32]* @CD, i64 0, i64 %iv
-  store i32 %add, i32* %gep.CD.0, align 4
-  %gep.CD.1 = getelementptr inbounds [1024 x i32], [1024 x i32]* @CD, i64 0, i64 %iv.plus.1
-  store i32 1, i32* %gep.CD.1, align 4
-  %gep.CD.2 = getelementptr inbounds [1024 x i32], [1024 x i32]* @CD, i64 0, i64 %iv.plus.2
-  store i32 2, i32* %gep.CD.2, align 4
-  %gep.CD.3 = getelementptr inbounds [1024 x i32], [1024 x i32]* @CD, i64 0, i64 %iv.plus.3
-  store i32 %AB.3, i32* %gep.CD.3, align 4
+  %gep.CD.0 = getelementptr inbounds [1024 x i32], ptr @CD, i64 0, i64 %iv
+  store i32 %add, ptr %gep.CD.0, align 4
+  %gep.CD.1 = getelementptr inbounds [1024 x i32], ptr @CD, i64 0, i64 %iv.plus.1
+  store i32 1, ptr %gep.CD.1, align 4
+  %gep.CD.2 = getelementptr inbounds [1024 x i32], ptr @CD, i64 0, i64 %iv.plus.2
+  store i32 2, ptr %gep.CD.2, align 4
+  %gep.CD.3 = getelementptr inbounds [1024 x i32], ptr @CD, i64 0, i64 %iv.plus.3
+  store i32 %AB.3, ptr %gep.CD.3, align 4
   %iv.next = add nuw nsw i64 %iv, 4
   %cmp = icmp slt i64 %iv.next, 1024
   br i1 %cmp, label %for.body, label %for.end
@@ -338,7 +338,7 @@ for.end:
   ret void
 }
 
-define float @print_fmuladd_strict(float* %a, float* %b, i64 %n) {
+define float @print_fmuladd_strict(ptr %a, ptr %b, i64 %n) {
 ; CHECK-LABEL: Checking a loop in 'print_fmuladd_strict'
 ; CHECK:      VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -375,10 +375,10 @@ entry:
 for.body:
   %iv = phi i64 [ 0, %entry ], [ %iv.next, %for.body ]
   %sum.07 = phi float [ 0.000000e+00, %entry ], [ %muladd, %for.body ]
-  %arrayidx = getelementptr inbounds float, float* %a, i64 %iv
-  %l.a = load float, float* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds float, float* %b, i64 %iv
-  %l.b = load float, float* %arrayidx2, align 4
+  %arrayidx = getelementptr inbounds float, ptr %a, i64 %iv
+  %l.a = load float, ptr %arrayidx, align 4
+  %arrayidx2 = getelementptr inbounds float, ptr %b, i64 %iv
+  %l.b = load float, ptr %arrayidx2, align 4
   %muladd = tail call nnan ninf nsz float @llvm.fmuladd.f32(float %l.a, float %l.b, float %sum.07)
   %iv.next = add nuw nsw i64 %iv, 1
   %exitcond.not = icmp eq i64 %iv.next, %n
@@ -388,7 +388,7 @@ for.end:
   ret float %muladd
 }
 
-define void @debug_loc_vpinstruction(i32* nocapture %asd, i32* nocapture %bsd) !dbg !5 {
+define void @debug_loc_vpinstruction(ptr nocapture %asd, ptr nocapture %bsd) !dbg !5 {
 ; CHECK-LABEL: Checking a loop in 'debug_loc_vpinstruction'
 ; CHECK:    VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -454,8 +454,8 @@ entry:
 
 loop:
   %iv = phi i64 [ 0, %entry ], [ %iv.next, %if.end ]
-  %isd = getelementptr inbounds i32, i32* %asd, i64 %iv
-  %lsd = load i32, i32* %isd, align 4
+  %isd = getelementptr inbounds i32, ptr %asd, i64 %iv
+  %lsd = load i32, ptr %isd, align 4
   %psd = add nsw i32 %lsd, 23
   %cmp1 = icmp slt i32 %lsd, 100
   br i1 %cmp1, label %if.then, label %check, !dbg !7
@@ -470,7 +470,7 @@ if.then:
 
 if.end:
   %ysd.0 = phi i32 [ %sd1, %if.then ], [ %psd, %check ]
-  store i32 %ysd.0, i32* %isd, align 4
+  store i32 %ysd.0, ptr %isd, align 4
   %iv.next = add nuw nsw i64 %iv, 1
   %exitcond = icmp eq i64 %iv.next, 128
   br i1 %exitcond, label %exit, label %loop
@@ -482,7 +482,7 @@ exit:
 declare float @llvm.sqrt.f32(float) nounwind readnone
 declare float @llvm.fmuladd.f32(float, float, float)
 
-define void @print_expand_scev(i64 %y, i8* %ptr) {
+define void @print_expand_scev(i64 %y, ptr %ptr) {
 ; CHECK-LABEL: Checking a loop in 'print_expand_scev'
 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<%0> = vector-trip-count
@@ -521,8 +521,8 @@ loop:                                             ; preds = %loop, %entry
   %iv = phi i64 [ %iv.next, %loop ], [ 0, %entry ]
   %v2 = trunc i64 %iv to i8
   %v3 = add i8 %v2, 1
-  %gep = getelementptr inbounds i8, i8* %ptr, i64 %iv
-  store i8 %v3, i8* %gep
+  %gep = getelementptr inbounds i8, ptr %ptr, i64 %iv
+  store i8 %v3, ptr %gep
 
   %cmp15 = icmp slt i8 %v3, 10000
   %iv.next = add i64 %iv, %inc
@@ -532,7 +532,7 @@ loop.exit:
   ret void
 }
 
-define i32 @print_exit_value(i8* %ptr, i32 %off) {
+define i32 @print_exit_value(ptr %ptr, i32 %off) {
 ; CHECK-LABEL: Checking a loop in 'print_exit_value'
 ; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -565,9 +565,9 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
-  %gep = getelementptr inbounds i8, i8* %ptr, i32 %iv
+  %gep = getelementptr inbounds i8, ptr %ptr, i32 %iv
   %add = add i32 %iv, %off
-  store i8 0, i8* %gep
+  store i8 0, ptr %gep
   %iv.next = add nsw i32 %iv, 1
   %ec = icmp eq i32 %iv.next, 1000
   br i1 %ec, label %exit, label %loop

diff  --git a/llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll b/llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
index 30f250d98fc14..4a94951e1f954 100644
--- a/llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
+++ b/llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
@@ -60,12 +60,12 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
-  %gep.b = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i32 0, i32 %iv
-  %lv.b  = load i32, i32* %gep.b, align 4
+  %gep.b = getelementptr inbounds [2048 x i32], ptr @b, i32 0, i32 %iv
+  %lv.b  = load i32, ptr %gep.b, align 4
   %add = add i32 %lv.b, 10
   %mul = mul i32 2, %add
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %iv
-  store i32 %mul, i32* %gep.a, align 4
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %iv
+  store i32 %mul, ptr %gep.a, align 4
   %iv.next = add i32 %iv, 1
   %large = icmp sge i32 %iv, 8
   %exitcond = icmp eq i32 %iv, %k
@@ -139,12 +139,12 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
-  %gep.b = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i32 0, i32 %iv
-  %lv.b  = load i32, i32* %gep.b, align 4
+  %gep.b = getelementptr inbounds [2048 x i32], ptr @b, i32 0, i32 %iv
+  %lv.b  = load i32, ptr %gep.b, align 4
   %add = add i32 %lv.b, 10
   %mul = mul i32 %iv, 2
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %mul
-  store i32 %add, i32* %gep.a, align 4
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %mul
+  store i32 %add, ptr %gep.a, align 4
   %iv.next = add i32 %iv, 1
   %large = icmp sge i32 %iv, 8
   %exitcond = icmp eq i32 %iv, %k
@@ -218,12 +218,12 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
-  %gep.b = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i32 0, i32 %iv
-  %lv.b  = load i32, i32* %gep.b, align 4
+  %gep.b = getelementptr inbounds [2048 x i32], ptr @b, i32 0, i32 %iv
+  %lv.b  = load i32, ptr %gep.b, align 4
   %add = add i32 %lv.b, 10
   %mul = mul i32 %iv, %add
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %mul
-  store i32 %add, i32* %gep.a, align 4
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %mul
+  store i32 %add, ptr %gep.a, align 4
   %iv.next = add i32 %iv, 1
   %large = icmp sge i32 %iv, 8
   %exitcond = icmp eq i32 %iv, %k
@@ -235,7 +235,7 @@ exit:
 }
 
 ; Make sure we do not sink uniform instructions.
-define void @uniform_gep(i64 %k, i16* noalias %A, i16* noalias %B) {
+define void @uniform_gep(i64 %k, ptr noalias %A, ptr noalias %B) {
 ; CHECK-LABEL: LV: Checking a loop in 'uniform_gep'
 ; CHECK:      VPlan 'Initial VPlan for VF={2},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -292,14 +292,14 @@ entry:
 
 loop:
   %iv = phi i64 [ 21, %entry ], [ %iv.next, %loop.latch ]
-  %gep.A.uniform = getelementptr inbounds i16, i16* %A, i64 0
-  %gep.B = getelementptr inbounds i16, i16* %B, i64 %iv
-  %lv = load i16, i16* %gep.A.uniform, align 1
+  %gep.A.uniform = getelementptr inbounds i16, ptr %A, i64 0
+  %gep.B = getelementptr inbounds i16, ptr %B, i64 %iv
+  %lv = load i16, ptr %gep.A.uniform, align 1
   %cmp = icmp ult i64 %iv, %k
   br i1 %cmp, label %loop.latch, label %loop.then
 
 loop.then:
-  store i16 %lv, i16* %gep.B, align 1
+  store i16 %lv, ptr %gep.B, align 1
   br label %loop.latch
 
 loop.latch:
@@ -387,19 +387,19 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %next.0 ]
-  %gep.b = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i32 0, i32 %iv
+  %gep.b = getelementptr inbounds [2048 x i32], ptr @b, i32 0, i32 %iv
   %c.1 = icmp ult i32 %iv, %j
   %mul = mul i32 %iv, 10
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %mul
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %mul
   br i1 %c.1, label %then.0, label %next.0
 
 then.0:
-  %lv.b  = load i32, i32* %gep.b, align 4
+  %lv.b  = load i32, ptr %gep.b, align 4
   br label %next.0
 
 next.0:
   %p = phi i32 [ 0, %loop ], [ %lv.b, %then.0 ]
-  store i32 %p, i32* %gep.a, align 4
+  store i32 %p, ptr %gep.a, align 4
   %iv.next = add i32 %iv, 1
   %large = icmp sge i32 %iv, 8
   %exitcond = icmp eq i32 %iv, %k
@@ -496,15 +496,15 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %next.1 ]
-  %gep.b = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i32 0, i32 %iv
+  %gep.b = getelementptr inbounds [2048 x i32], ptr @b, i32 0, i32 %iv
   %mul = mul i32 %iv, 10
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %mul
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %mul
   %c.0 = icmp ult i32 %iv, %j
   %c.1 = icmp ugt i32 %iv, %j
   br i1 %c.0, label %then.0, label %next.0
 
 then.0:
-  %lv.b  = load i32, i32* %gep.b, align 4
+  %lv.b  = load i32, ptr %gep.b, align 4
   br label %next.0
 
 next.0:
@@ -512,7 +512,7 @@ next.0:
   br i1 %c.1, label %then.1, label %next.1
 
 then.1:
-  store i32 %p, i32* %gep.a, align 4
+  store i32 %p, ptr %gep.a, align 4
   br label %next.1
 
 next.1:
@@ -616,15 +616,15 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %next.1 ]
-  %gep.b = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i32 0, i32 %iv
+  %gep.b = getelementptr inbounds [2048 x i32], ptr @b, i32 0, i32 %iv
   %mul = mul i32 %iv, 10
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %mul
-  %gep.c = getelementptr inbounds [2048 x i32], [2048 x i32]* @c, i32 0, i32 %mul
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %mul
+  %gep.c = getelementptr inbounds [2048 x i32], ptr @c, i32 0, i32 %mul
   %c.0 = icmp ult i32 %iv, %j
   br i1 %c.0, label %then.0, label %next.0
 
 then.0:
-  %lv.b  = load i32, i32* %gep.b, align 4
+  %lv.b  = load i32, ptr %gep.b, align 4
   br label %next.0
 
 next.0:
@@ -632,8 +632,8 @@ next.0:
   br i1 %c.0, label %then.1, label %next.1
 
 then.1:
-  store i32 0, i32* %gep.a, align 4
-  store i32 %p, i32* %gep.c, align 4
+  store i32 0, ptr %gep.a, align 4
+  store i32 %p, ptr %gep.c, align 4
   br label %next.1
 
 next.1:
@@ -734,20 +734,20 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %latch ]
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %iv
-  %lv.a  = load i32, i32* %gep.a, align 4
-  %gep.b = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i32 0, i32 %iv
-  %lv.b  = load i32, i32* %gep.b, align 4
-  %gep.c = getelementptr inbounds [2048 x i32], [2048 x i32]* @c, i32 0, i32 %iv
-  store i32 %lv.a, i32* %gep.c, align 4
-  store i32 %lv.b, i32* %gep.a, align 4
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %iv
+  %lv.a  = load i32, ptr %gep.a, align 4
+  %gep.b = getelementptr inbounds [2048 x i32], ptr @b, i32 0, i32 %iv
+  %lv.b  = load i32, ptr %gep.b, align 4
+  %gep.c = getelementptr inbounds [2048 x i32], ptr @c, i32 0, i32 %iv
+  store i32 %lv.a, ptr %gep.c, align 4
+  store i32 %lv.b, ptr %gep.a, align 4
   %c.0 = icmp ult i32 %iv, %j
   br i1 %c.0, label %then.0, label %latch
 
 then.0:
   %mul = mul i32 %lv.a, %lv.b
-  %gep.c.1 = getelementptr inbounds [2048 x i32], [2048 x i32]* @c, i32 0, i32 %iv
-  store i32 %mul, i32* %gep.c.1, align 4
+  %gep.c.1 = getelementptr inbounds [2048 x i32], ptr @c, i32 0, i32 %iv
+  store i32 %mul, ptr %gep.c.1, align 4
   br label %latch
 
 latch:
@@ -816,10 +816,10 @@ entry:
 
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %iv
-  %lv.a  = load i32, i32* %gep.a, align 4
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %iv
+  %lv.a  = load i32, ptr %gep.a, align 4
   %div = sdiv i32 %lv.a, %lv.a
-  store i32 %div, i32* %gep.a, align 4
+  store i32 %div, ptr %gep.a, align 4
   %iv.next = add i32 %iv, 1
   %large = icmp sge i32 %iv, 8
   %exitcond = icmp eq i32 %iv, %k
@@ -900,10 +900,10 @@ entry:
 loop:
   %iv = phi i32 [ 0, %entry ], [ %iv.next, %loop ]
   %for = phi i32 [ 0, %entry ], [ %lv.a, %loop ]
-  %gep.a = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i32 0, i32 %iv
-  %lv.a  = load i32, i32* %gep.a, align 4
+  %gep.a = getelementptr inbounds [2048 x i32], ptr @a, i32 0, i32 %iv
+  %lv.a  = load i32, ptr %gep.a, align 4
   %div = sdiv i32 %for, %lv.a
-  store i32 %div, i32* %gep.a, align 4
+  store i32 %div, ptr %gep.a, align 4
   %iv.next = add i32 %iv, 1
   %large = icmp sge i32 %iv, 8
   %exitcond = icmp eq i32 %iv, %k
@@ -914,7 +914,7 @@ exit:
   ret void
 }
 
-define void @update_multiple_users(i16* noalias %src, i8* noalias %dst, i1 %c) {
+define void @update_multiple_users(ptr noalias %src, ptr noalias %dst, i1 %c) {
 ; CHECK-LABEL: LV: Checking a loop in 'update_multiple_users'
 ; CHECK:      VPlan 'Initial VPlan for VF={2},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -969,11 +969,11 @@ loop.header:
   br i1 %c, label %loop.then, label %loop.latch
 
 loop.then:
-  %l1 = load i16, i16* %src, align 2
+  %l1 = load i16, ptr %src, align 2
   %l2 = trunc i16 %l1 to i8
   %cmp = icmp eq i16 %l1, 0
   %sel = select i1 %cmp, i8 5, i8 %l2
-  store i8 %sel, i8* %dst, align 1
+  store i8 %sel, ptr %dst, align 1
   %sext.l1 = sext i16 %l1 to i32
   br label %loop.latch
 
@@ -986,7 +986,7 @@ exit:
   ret void
 }
 
-define void @sinking_requires_duplication(float* %addr) {
+define void @sinking_requires_duplication(ptr %addr) {
 ; CHECK-LABEL: LV: Checking a loop in 'sinking_requires_duplication'
 ; CHECK:      VPlan 'Initial VPlan for VF={2},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -1039,17 +1039,17 @@ entry:
 
 loop.header:
   %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop.latch ]
-  %gep = getelementptr float, float* %addr, i64 %iv
+  %gep = getelementptr float, ptr %addr, i64 %iv
   %exitcond.not = icmp eq i64 %iv, 200
   br i1 %exitcond.not, label %exit, label %loop.body
 
 loop.body:
-  %0 = load float, float* %gep, align 4
+  %0 = load float, ptr %gep, align 4
   %pred = fcmp oeq float %0, 0.0
   br i1 %pred, label %loop.latch, label %then
 
 then:
-  store float 10.0, float* %gep, align 4
+  store float 10.0, ptr %gep, align 4
   br label %loop.latch
 
 loop.latch:
@@ -1062,7 +1062,7 @@ exit:
 
 ; Test case with a dead GEP between the load and store regions. Dead recipes
 ; need to be removed before merging.
-define void @merge_with_dead_gep_between_regions(i32 %n, i32* noalias %src, i32* noalias %dst) optsize {
+define void @merge_with_dead_gep_between_regions(i32 %n, ptr noalias %src, ptr noalias %dst) optsize {
 ; CHECK-LABEL: LV: Checking a loop in 'merge_with_dead_gep_between_regions'
 ; CHECK:      VPlan 'Initial VPlan for VF={2},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -1119,11 +1119,11 @@ entry:
 loop:
   %iv = phi i32[ %n, %entry ], [ %iv.next, %loop ]
   %iv.next = add nsw i32 %iv, -1
-  %gep.src = getelementptr inbounds i32, i32* %src, i32 %iv
-  %l = load i32, i32* %gep.src, align 16
-  %dead_gep = getelementptr inbounds i32, i32* %dst, i64 1
-  %gep.dst = getelementptr inbounds i32, i32* %dst, i32 %iv
-  store i32 %l, i32* %gep.dst, align 16
+  %gep.src = getelementptr inbounds i32, ptr %src, i32 %iv
+  %l = load i32, ptr %gep.src, align 16
+  %dead_gep = getelementptr inbounds i32, ptr %dst, i64 1
+  %gep.dst = getelementptr inbounds i32, ptr %dst, i32 %iv
+  store i32 %l, ptr %gep.dst, align 16
   %ec = icmp eq i32 %iv.next, 0
   br i1 %ec, label %exit, label %loop
 
@@ -1131,7 +1131,7 @@ exit:
   ret void
 }
 
-define void @ptr_induction_remove_dead_recipe(i8* %start, i8* %end) {
+define void @ptr_induction_remove_dead_recipe(ptr %start, ptr %end) {
 ; CHECK-LABEL: LV: Checking a loop in 'ptr_induction_remove_dead_recipe'
 ; CHECK:       VPlan 'Initial VPlan for VF={2},UF>=1' {
 ; CHECK-NEXT: Live-in vp<[[VEC_TC:%.+]]> = vector-trip-count
@@ -1185,18 +1185,18 @@ entry:
   br label %loop.header
 
 loop.header:
-  %ptr.iv = phi i8* [ %start, %entry ], [ %ptr.iv.next, %loop.latch ]
-  %ptr.iv.next = getelementptr inbounds i8, i8* %ptr.iv, i64 -1
-  %l = load i8, i8* %ptr.iv.next, align 1
+  %ptr.iv = phi ptr [ %start, %entry ], [ %ptr.iv.next, %loop.latch ]
+  %ptr.iv.next = getelementptr inbounds i8, ptr %ptr.iv, i64 -1
+  %l = load i8, ptr %ptr.iv.next, align 1
   %c.1 = icmp eq i8 %l, 0
   br i1 %c.1, label %loop.latch, label %if.then
 
 if.then:
-  store i8 95, i8* %ptr.iv.next, align 1
+  store i8 95, ptr %ptr.iv.next, align 1
   br label %loop.latch
 
 loop.latch:
-  %c.2 = icmp eq i8* %ptr.iv.next, %end
+  %c.2 = icmp eq ptr %ptr.iv.next, %end
   br i1 %c.2, label %exit, label %loop.header
 
 exit:

diff  --git a/llvm/test/Transforms/LoopVectorize/vplan-vectorize-inner-loop-reduction.ll b/llvm/test/Transforms/LoopVectorize/vplan-vectorize-inner-loop-reduction.ll
index 177968cfae120..fdf73963e8646 100644
--- a/llvm/test/Transforms/LoopVectorize/vplan-vectorize-inner-loop-reduction.ll
+++ b/llvm/test/Transforms/LoopVectorize/vplan-vectorize-inner-loop-reduction.ll
@@ -3,7 +3,7 @@
 ; Vectorize explict marked outer loop using vplan native path. Inner loop
 ; contains simple double add reduction. IR is compiled and modified by hand
 ; from following C code:
-; void inner_loop_reduction(const double* restrict in_a, const double* restrict in_b, double* restrict out)
+; void inner_loop_reduction(const ptr restrict in_a, const ptr restrict in_b, ptr restrict out)
 ; {
 ;     #pragma clang loop vectorize(enable)
 ;     for (int i = 0; i < 1000; ++i) {
@@ -15,16 +15,16 @@
 ;         out[i] = a;
 ;     }
 ; }
-define void @inner_loop_reduction(double* noalias nocapture readonly %a.in, double* noalias nocapture readonly %b.in, double* noalias nocapture %c.out) {
+define void @inner_loop_reduction(ptr noalias nocapture readonly %a.in, ptr noalias nocapture readonly %b.in, ptr noalias nocapture %c.out) {
 ; CHECK-LABEL: @inner_loop_reduction(
 
 ; CHECK: vector.body:
 ; CHECK-NEXT: %[[FOR1_INDEX:.*]] = phi i64 [ 0, %[[LABEL_PR:.*]] ], [ %{{.*}}, %[[LABEL_FOR1_LATCH:.*]] ]
 ; CHECK: %[[VEC_INDEX:.*]] = phi <4 x i64> [ <i64 0, i64 1, i64 2, i64 3>, %[[LABEL_PR]] ], [ %{{.*}}, %[[LABEL_FOR1_LATCH]] ]
-; CHECK-NEXT: %[[A_PTR:.*]] = getelementptr inbounds double, double* %a.in, <4 x i64> %[[VEC_INDEX]]
-; CHECK-NEXT: %[[MASKED_GATHER1:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0f64(<4 x double*> %[[A_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
-; CHECK-NEXT: %[[B_PTR:.*]] = getelementptr inbounds double, double* %b.in, <4 x i64> %[[VEC_INDEX]]
-; CHECK-NEXT: %[[MASKED_GATHER2:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0f64(<4 x double*> %[[B_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
+; CHECK-NEXT: %[[A_PTR:.*]] = getelementptr inbounds double, ptr %a.in, <4 x i64> %[[VEC_INDEX]]
+; CHECK-NEXT: %[[MASKED_GATHER1:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %[[A_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
+; CHECK-NEXT: %[[B_PTR:.*]] = getelementptr inbounds double, ptr %b.in, <4 x i64> %[[VEC_INDEX]]
+; CHECK-NEXT: %[[MASKED_GATHER2:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %[[B_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
 ; CHECK-NEXT: br label %[[FOR2_HEADER:.*]]
 
 ; CHECK: [[FOR2_HEADER]]:
@@ -38,8 +38,8 @@ define void @inner_loop_reduction(double* noalias nocapture readonly %a.in, doub
 
 ; CHECK: [[FOR1_LATCH]]:
 ; CHECK-NEXT: %[[REDUCTION:.*]] = phi <4 x double> [ %[[REDUCTION_NEXT]], %[[FOR2_HEADER]] ]
-; CHECK-NEXT: %[[C_PTR:.*]] = getelementptr inbounds double, double* %c.out, <4 x i64> %[[VEC_INDEX]]
-; CHECK-NEXT: call void @llvm.masked.scatter.v4f64.v4p0f64(<4 x double> %[[REDUCTION]], <4 x double*> %[[C_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>)
+; CHECK-NEXT: %[[C_PTR:.*]] = getelementptr inbounds double, ptr %c.out, <4 x i64> %[[VEC_INDEX]]
+; CHECK-NEXT: call void @llvm.masked.scatter.v4f64.v4p0(<4 x double> %[[REDUCTION]], <4 x ptr> %[[C_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>)
 ; CHECK-NEXT: %[[VEC_INDEX_NEXT:.*]] = add nuw nsw <4 x i64> %[[VEC_INDEX]], <i64 1, i64 1, i64 1, i64 1>
 ; CHECK-NEXT: %[[VEC_PTR:.*]] = icmp eq <4 x i64> %[[VEC_INDEX_NEXT]], <i64 1000, i64 1000, i64 1000, i64 1000>
 ; CHECK-NEXT: %[[FOR1_INDEX_NEXT:.*]] = add nuw i64 %[[FOR1_INDEX]], 4
@@ -52,10 +52,10 @@ entry:
 
 for1.header:                                              ; preds = %entry
   %indvar1 = phi i64 [ 0, %entry ], [ %indvar11, %for1.latch ]
-  %a.ptr = getelementptr inbounds double, double* %a.in, i64 %indvar1
-  %a = load double, double* %a.ptr, align 8
-  %b.ptr = getelementptr inbounds double, double* %b.in, i64 %indvar1
-  %b = load double, double* %b.ptr, align 8
+  %a.ptr = getelementptr inbounds double, ptr %a.in, i64 %indvar1
+  %a = load double, ptr %a.ptr, align 8
+  %b.ptr = getelementptr inbounds double, ptr %b.in, i64 %indvar1
+  %b = load double, ptr %b.ptr, align 8
   br label %for2.header
 
 for2.header:                                              ; preds = %for1.header, %for2.header
@@ -67,8 +67,8 @@ for2.header:                                              ; preds = %for1.header
   br i1 %for2.cond, label %for1.latch, label %for2.header
 
 for1.latch:                                               ; preds = %for2.header
-  %c.ptr = getelementptr inbounds double, double* %c.out, i64 %indvar1
-  store double %a.reduction1, double* %c.ptr, align 8
+  %c.ptr = getelementptr inbounds double, ptr %c.out, i64 %indvar1
+  store double %a.reduction1, ptr %c.ptr, align 8
   %indvar11 = add nuw nsw i64 %indvar1, 1
   %for1.cond = icmp eq i64 %indvar11, 1000
   br i1 %for1.cond, label %exit, label %for1.header, !llvm.loop !0

diff  --git a/llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll b/llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll
index e43221565aba8..3335c21c8d745 100644
--- a/llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll
+++ b/llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll
@@ -4,16 +4,16 @@
 ; llvm.sqrt.* intrincis calls.
 
 declare double @llvm.sqrt.f64(double %0)
-define void @widen_call_instruction(double* noalias nocapture readonly %a.in, double* noalias nocapture readonly %b.in, double* noalias nocapture %c.out) {
+define void @widen_call_instruction(ptr noalias nocapture readonly %a.in, ptr noalias nocapture readonly %b.in, ptr noalias nocapture %c.out) {
 ; CHECK-LABEL: @widen_call_instruction(
 
 ; CHECK: vector.body:
 ; CHECK-NEXT: %[[FOR1_INDEX:.*]] = phi i64 [ 0, %[[LABEL_PR:.*]] ], [ %{{.*}}, %[[LABEL_FOR1_LATCH:.*]] ]
 ; CHECK: %[[VEC_INDEX:.*]] = phi <4 x i64> [ <i64 0, i64 1, i64 2, i64 3>, %[[LABEL_PR]] ], [ %{{.*}}, %[[LABEL_FOR1_LATCH]] ]
-; CHECK-NEXT: %[[A_PTR:.*]] = getelementptr inbounds double, double* %a.in, <4 x i64> %[[VEC_INDEX]]
-; CHECK-NEXT: %[[MASKED_GATHER1:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0f64(<4 x double*> %[[A_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
-; CHECK-NEXT: %[[B_PTR:.*]] = getelementptr inbounds double, double* %b.in, <4 x i64> %[[VEC_INDEX]]
-; CHECK-NEXT: %[[MASKED_GATHER2:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0f64(<4 x double*> %[[B_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
+; CHECK-NEXT: %[[A_PTR:.*]] = getelementptr inbounds double, ptr %a.in, <4 x i64> %[[VEC_INDEX]]
+; CHECK-NEXT: %[[MASKED_GATHER1:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %[[A_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
+; CHECK-NEXT: %[[B_PTR:.*]] = getelementptr inbounds double, ptr %b.in, <4 x i64> %[[VEC_INDEX]]
+; CHECK-NEXT: %[[MASKED_GATHER2:.*]] = call <4 x double> @llvm.masked.gather.v4f64.v4p0(<4 x ptr> %[[B_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>, <4 x double> poison)
 ; CHECK-NEXT: %[[B_SQRT:.*]] = call <4 x double> @llvm.sqrt.v4f64(<4 x double> %[[MASKED_GATHER2]])
 ; CHECK-NEXT: br label %[[FOR2_HEADER:.*]]
 
@@ -28,8 +28,8 @@ define void @widen_call_instruction(double* noalias nocapture readonly %a.in, do
 
 ; CHECK: [[FOR1_LATCH]]:
 ; CHECK-NEXT: %[[REDUCTION:.*]] = phi <4 x double> [ %[[REDUCTION_NEXT]], %[[FOR2_HEADER]] ]
-; CHECK-NEXT: %[[C_PTR:.*]] = getelementptr inbounds double, double* %c.out, <4 x i64> %[[VEC_INDEX]]
-; CHECK-NEXT: call void @llvm.masked.scatter.v4f64.v4p0f64(<4 x double> %[[REDUCTION]], <4 x double*> %[[C_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>)
+; CHECK-NEXT: %[[C_PTR:.*]] = getelementptr inbounds double, ptr %c.out, <4 x i64> %[[VEC_INDEX]]
+; CHECK-NEXT: call void @llvm.masked.scatter.v4f64.v4p0(<4 x double> %[[REDUCTION]], <4 x ptr> %[[C_PTR]], i32 8, <4 x i1> <i1 true, i1 true, i1 true, i1 true>)
 ; CHECK-NEXT: %[[VEC_INDEX_NEXT:.*]] = add nuw nsw <4 x i64> %[[VEC_INDEX]], <i64 1, i64 1, i64 1, i64 1>
 ; CHECK-NEXT: %[[VEC_PTR:.*]] = icmp eq <4 x i64> %[[VEC_INDEX_NEXT]], <i64 1000, i64 1000, i64 1000, i64 1000>
 ; CHECK-NEXT: %[[FOR1_INDEX_NEXT:.*]] = add nuw i64 %[[FOR1_INDEX]], 4
@@ -42,10 +42,10 @@ entry:
 
 for1.header:
   %indvar1 = phi i64 [ 0, %entry ], [ %indvar11, %for1.latch ]
-  %a.ptr = getelementptr inbounds double, double* %a.in, i64 %indvar1
-  %a = load double, double* %a.ptr, align 8
-  %b.ptr = getelementptr inbounds double, double* %b.in, i64 %indvar1
-  %b = load double, double* %b.ptr, align 8
+  %a.ptr = getelementptr inbounds double, ptr %a.in, i64 %indvar1
+  %a = load double, ptr %a.ptr, align 8
+  %b.ptr = getelementptr inbounds double, ptr %b.in, i64 %indvar1
+  %b = load double, ptr %b.ptr, align 8
   %b.sqrt = call double @llvm.sqrt.f64(double %b)
   br label %for2.header
 
@@ -58,8 +58,8 @@ for2.header:
   br i1 %for2.cond, label %for1.latch, label %for2.header
 
 for1.latch:
-  %c.ptr = getelementptr inbounds double, double* %c.out, i64 %indvar1
-  store double %a.reduction1, double* %c.ptr, align 8
+  %c.ptr = getelementptr inbounds double, ptr %c.out, i64 %indvar1
+  store double %a.reduction1, ptr %c.ptr, align 8
   %indvar11 = add nuw nsw i64 %indvar1, 1
   %for1.cond = icmp eq i64 %indvar11, 1000
   br i1 %for1.cond, label %exit, label %for1.header, !llvm.loop !0


        


More information about the llvm-commits mailing list