; RUN: opt -S -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 < %s | FileCheck --check-prefix=LOOPVEC_4_1 %s ; RUN: opt -S -loop-vectorize -force-vector-width=2 -force-vector-interleave=3 < %s | FileCheck --check-prefix=LOOPVEC_2_3 %s ; RUN: opt -S -loop-unroll -unroll-count=5 < %s | FileCheck --check-prefix=LOOPUNROLL_5 %s ; RUN: opt -S -loop-vectorize -force-vector-width=4 -force-vector-interleave=4 -loop-unroll -unroll-count=2 < %s | FileCheck --check-prefix=LOOPVEC_UNROLL %s ; Test if vectorization/unroll factor is recorded in discriminator. ; ; Original source code: ; 1 int *a; ; 2 int *b; ; 3 ; 4 void foo() { ; 5 for (int i = 0; i < 4096; i++) ; 6 a[i] += b[i]; ; 7 } @a = local_unnamed_addr global i32* null, align 8 @b = local_unnamed_addr global i32* null, align 8 define void @_Z3foov() local_unnamed_addr #0 !dbg !6 { %1 = load i32*, i32** @b, align 8, !dbg !8, !tbaa !9 %2 = load i32*, i32** @a, align 8, !dbg !13, !tbaa !9 br label %3, !dbg !14 ;