[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