[llvm] 419e496 - [LV] Add check line to test interleaving only with induction cast.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Sun May 22 12:14:32 PDT 2022


Author: Florian Hahn
Date: 2022-05-22T20:11:47+01:00
New Revision: 419e49621fb4b7cc2a46b09cd04020c083f7d64b

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

LOG: [LV] Add check line to test interleaving only with induction cast.

Also simplify the value names a bit in the test.

Added: 
    

Modified: 
    llvm/test/Transforms/LoopVectorize/cast-induction.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/LoopVectorize/cast-induction.ll b/llvm/test/Transforms/LoopVectorize/cast-induction.ll
index 9e7fd7f6f932..7b9ba15d5933 100644
--- a/llvm/test/Transforms/LoopVectorize/cast-induction.ll
+++ b/llvm/test/Transforms/LoopVectorize/cast-induction.ll
@@ -1,4 +1,5 @@
-; RUN: opt < %s  -loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -dce -instcombine -S | FileCheck %s
+; RUN: opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S %s | FileCheck --check-prefix=VF4 %s
+; RUN: opt -passes=loop-vectorize -force-vector-interleave=2 -force-vector-width=1 -S %s | FileCheck --check-prefix=IC2 %s
 
 ; rdar://problem/12848162
 
@@ -6,23 +7,33 @@ target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f3
 
 @a = common global [2048 x i32] zeroinitializer, align 16
 
-;CHECK-LABEL: @example12(
-; CHECK-LABEL: vector.body:
-; CHECK: [[VEC_IND:%.+]] = phi <4 x i32>
-; CHECK: store <4 x i32> [[VEC_IND]]
-; CHECK: ret void
 define void @example12() {
+; VF4-LABEL: @example12(
+; VF4-LABEL: vector.body:
+; VF4: [[VEC_IND:%.+]] = phi <4 x i32>
+; VF4: store <4 x i32> [[VEC_IND]]
+; VF4: middle.block:
+;
+; IC2-LABEL: @example12(
+; IC2-LABEL: vector.body:
+; IC2-NEXT:   [[INDEX:%.+]] = phi i64 [ 0, %vector.ph ]
+; IC2-NEXT:   [[TRUNC:%.+]] = trunc i64 [[INDEX]] to i32
+; IC2-NEXT:   [[TRUNC0:%.+]] = add i32 [[TRUNC]], 0
+; IC2-NEXT:   [[TRUNC1:%.+]] = add i32 [[TRUNC]], 1
+; IC2:        store i32 [[TRUNC0]],
+; IC2-NEXT:   store i32 [[TRUNC1]],
+;
 entry:
   br label %loop
 
 loop:
-  %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %loop ]
-  %gep = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i64 0, i64 %indvars.iv
-  %iv.trunc = trunc i64 %indvars.iv to i32
+  %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
+  %gep = getelementptr inbounds [2048 x i32], [2048 x i32]* @a, i64 0, i64 %iv
+  %iv.trunc = trunc i64 %iv to i32
   store i32 %iv.trunc, i32* %gep, align 4
-  %indvars.iv.next = add i64 %indvars.iv, 1
-  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
-  %exitcond = icmp eq i32 %lftr.wideiv, 1024
+  %iv.next = add i64 %iv, 1
+  %iv.next.trunc = trunc i64 %iv.next to i32
+  %exitcond = icmp eq i32 %iv.next.trunc, 1024
   br i1 %exitcond, label %exit, label %loop
 
 exit:


        


More information about the llvm-commits mailing list