diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i16-with-i8-index.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i16-with-i8-index.ll index bb73b36e902d9..1c427a0107df1 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i16-with-i8-index.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i16-with-i8-index.ll @@ -18,43 +18,43 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE-LABEL: 'test' ; SSE: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 48 for VF 4 For instruction: %valB = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 96 for VF 8 For instruction: %valB = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 192 for VF 16 For instruction: %valB = load i16, ptr %inB, align 2 +; SSE: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; SSE: Cost of 48 for VF 4: {{.*}}ir<%valB> = load +; SSE: Cost of 96 for VF 8: {{.*}}ir<%valB> = load +; SSE: Cost of 192 for VF 16: {{.*}}ir<%valB> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 48 for VF 4 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 96 for VF 8 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 193 for VF 16 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 386 for VF 32 For instruction: %valB = load i16, ptr %inB, align 2 +; AVX1: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; AVX1: Cost of 48 for VF 4: {{.*}}ir<%valB> = load +; AVX1: Cost of 96 for VF 8: {{.*}}ir<%valB> = load +; AVX1: Cost of 193 for VF 16: {{.*}}ir<%valB> = load +; AVX1: Cost of 386 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-SLOWGATHER-LABEL: 'test' ; AVX2-SLOWGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 8 for VF 4 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 16 for VF 8 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 33 for VF 16 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 66 for VF 32 For instruction: %valB = load i16, ptr %inB, align 2 +; AVX2-SLOWGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 8 for VF 4: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 16 for VF 8: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 33 for VF 16: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 66 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-FASTGATHER-LABEL: 'test' ; AVX2-FASTGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-FASTGATHER: LV: Found an estimated cost of 6 for VF 2 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-FASTGATHER: LV: Found an estimated cost of 13 for VF 4 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-FASTGATHER: LV: Found an estimated cost of 26 for VF 8 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-FASTGATHER: LV: Found an estimated cost of 53 for VF 16 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX2-FASTGATHER: LV: Found an estimated cost of 106 for VF 32 For instruction: %valB = load i16, ptr %inB, align 2 +; AVX2-FASTGATHER: Cost of 6 for VF 2: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 13 for VF 4: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 26 for VF 8: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 53 for VF 16: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 106 for VF 32: {{.*}}ir<%valB> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 6 for VF 2 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 13 for VF 4 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 27 for VF 8 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 55 for VF 16 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 111 for VF 32 For instruction: %valB = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 222 for VF 64 For instruction: %valB = load i16, ptr %inB, align 2 +; AVX512: Cost of 6 for VF 2: {{.*}}ir<%valB> = load +; AVX512: Cost of 13 for VF 4: {{.*}}ir<%valB> = load +; AVX512: Cost of 27 for VF 8: {{.*}}ir<%valB> = load +; AVX512: Cost of 55 for VF 16: {{.*}}ir<%valB> = load +; AVX512: Cost of 111 for VF 32: {{.*}}ir<%valB> = load +; AVX512: Cost of 222 for VF 64: {{.*}}ir<%valB> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i32-with-i8-index.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i32-with-i8-index.ll index b94197a5764bd..8cde13761bc54 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i32-with-i8-index.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i32-with-i8-index.ll @@ -18,50 +18,50 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE2: LV: Found an estimated cost of 25 for VF 2 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE2: LV: Found an estimated cost of 51 for VF 4 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE2: LV: Found an estimated cost of 102 for VF 8 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE2: LV: Found an estimated cost of 204 for VF 16 For instruction: %valB = load i32, ptr %inB, align 4 +; SSE2: Cost of 25 for VF 2: {{.*}}ir<%valB> = load +; SSE2: Cost of 51 for VF 4: {{.*}}ir<%valB> = load +; SSE2: Cost of 102 for VF 8: {{.*}}ir<%valB> = load +; SSE2: Cost of 204 for VF 16: {{.*}}ir<%valB> = load ; ; SSE42-LABEL: 'test' ; SSE42: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE42: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE42: LV: Found an estimated cost of 48 for VF 4 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE42: LV: Found an estimated cost of 96 for VF 8 For instruction: %valB = load i32, ptr %inB, align 4 -; SSE42: LV: Found an estimated cost of 192 for VF 16 For instruction: %valB = load i32, ptr %inB, align 4 +; SSE42: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; SSE42: Cost of 48 for VF 4: {{.*}}ir<%valB> = load +; SSE42: Cost of 96 for VF 8: {{.*}}ir<%valB> = load +; SSE42: Cost of 192 for VF 16: {{.*}}ir<%valB> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 48 for VF 4 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 97 for VF 8 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 194 for VF 16 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 388 for VF 32 For instruction: %valB = load i32, ptr %inB, align 4 +; AVX1: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; AVX1: Cost of 48 for VF 4: {{.*}}ir<%valB> = load +; AVX1: Cost of 97 for VF 8: {{.*}}ir<%valB> = load +; AVX1: Cost of 194 for VF 16: {{.*}}ir<%valB> = load +; AVX1: Cost of 388 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-SLOWGATHER-LABEL: 'test' ; AVX2-SLOWGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 8 for VF 4 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 17 for VF 8 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 34 for VF 16 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 68 for VF 32 For instruction: %valB = load i32, ptr %inB, align 4 +; AVX2-SLOWGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 8 for VF 4: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 17 for VF 8: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 34 for VF 16: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 68 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-FASTGATHER-LABEL: 'test' ; AVX2-FASTGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 6 for VF 4 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 12 for VF 8 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 24 for VF 16 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 48 for VF 32 For instruction: %valB = load i32, ptr %inB, align 4 +; AVX2-FASTGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 6 for VF 4: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 12 for VF 8: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 24 for VF 16: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 48 for VF 32: {{.*}}ir<%valB> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 6 for VF 2 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 13 for VF 4 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 10 for VF 8 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 18 for VF 16 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 36 for VF 32 For instruction: %valB = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 72 for VF 64 For instruction: %valB = load i32, ptr %inB, align 4 +; AVX512: Cost of 6 for VF 2: {{.*}}ir<%valB> = load +; AVX512: Cost of 13 for VF 4: {{.*}}ir<%valB> = load +; AVX512: Cost of 10 for VF 8: {{.*}}ir<%valB> = load +; AVX512: Cost of 18 for VF 16: {{.*}}ir<%valB> = load +; AVX512: Cost of 36 for VF 32: {{.*}}ir<%valB> = load +; AVX512: Cost of 72 for VF 64: {{.*}}ir<%valB> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i64-with-i8-index.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i64-with-i8-index.ll index 3472231ddce6b..3435df1b494c6 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i64-with-i8-index.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i64-with-i8-index.ll @@ -18,50 +18,50 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE2: LV: Found an estimated cost of 25 for VF 2 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE2: LV: Found an estimated cost of 50 for VF 4 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE2: LV: Found an estimated cost of 100 for VF 8 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE2: LV: Found an estimated cost of 200 for VF 16 For instruction: %valB = load i64, ptr %inB, align 8 +; SSE2: Cost of 25 for VF 2: {{.*}}ir<%valB> = load +; SSE2: Cost of 50 for VF 4: {{.*}}ir<%valB> = load +; SSE2: Cost of 100 for VF 8: {{.*}}ir<%valB> = load +; SSE2: Cost of 200 for VF 16: {{.*}}ir<%valB> = load ; ; SSE42-LABEL: 'test' ; SSE42: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE42: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE42: LV: Found an estimated cost of 48 for VF 4 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE42: LV: Found an estimated cost of 96 for VF 8 For instruction: %valB = load i64, ptr %inB, align 8 -; SSE42: LV: Found an estimated cost of 192 for VF 16 For instruction: %valB = load i64, ptr %inB, align 8 +; SSE42: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; SSE42: Cost of 48 for VF 4: {{.*}}ir<%valB> = load +; SSE42: Cost of 96 for VF 8: {{.*}}ir<%valB> = load +; SSE42: Cost of 192 for VF 16: {{.*}}ir<%valB> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 49 for VF 4 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 98 for VF 8 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 196 for VF 16 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 392 for VF 32 For instruction: %valB = load i64, ptr %inB, align 8 +; AVX1: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; AVX1: Cost of 49 for VF 4: {{.*}}ir<%valB> = load +; AVX1: Cost of 98 for VF 8: {{.*}}ir<%valB> = load +; AVX1: Cost of 196 for VF 16: {{.*}}ir<%valB> = load +; AVX1: Cost of 392 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-SLOWGATHER-LABEL: 'test' ; AVX2-SLOWGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 9 for VF 4 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 18 for VF 8 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 36 for VF 16 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 72 for VF 32 For instruction: %valB = load i64, ptr %inB, align 8 +; AVX2-SLOWGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 9 for VF 4: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 18 for VF 8: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 36 for VF 16: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 72 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-FASTGATHER-LABEL: 'test' ; AVX2-FASTGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 6 for VF 4 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 12 for VF 8 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 24 for VF 16 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 48 for VF 32 For instruction: %valB = load i64, ptr %inB, align 8 +; AVX2-FASTGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 6 for VF 4: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 12 for VF 8: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 24 for VF 16: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 48 for VF 32: {{.*}}ir<%valB> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 6 for VF 2 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 14 for VF 4 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 10 for VF 8 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 20 for VF 16 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 40 for VF 32 For instruction: %valB = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 80 for VF 64 For instruction: %valB = load i64, ptr %inB, align 8 +; AVX512: Cost of 6 for VF 2: {{.*}}ir<%valB> = load +; AVX512: Cost of 14 for VF 4: {{.*}}ir<%valB> = load +; AVX512: Cost of 10 for VF 8: {{.*}}ir<%valB> = load +; AVX512: Cost of 20 for VF 16: {{.*}}ir<%valB> = load +; AVX512: Cost of 40 for VF 32: {{.*}}ir<%valB> = load +; AVX512: Cost of 80 for VF 64: {{.*}}ir<%valB> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i8-with-i8-index.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i8-with-i8-index.ll index 998b4e4e92d03..7aeeff6518416 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i8-with-i8-index.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/gather-i8-with-i8-index.ll @@ -18,50 +18,50 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE2: LV: Found an estimated cost of 25 for VF 2 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE2: LV: Found an estimated cost of 51 for VF 4 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE2: LV: Found an estimated cost of 103 for VF 8 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE2: LV: Found an estimated cost of 207 for VF 16 For instruction: %valB = load i8, ptr %inB, align 1 +; SSE2: Cost of 25 for VF 2: {{.*}}ir<%valB> = load +; SSE2: Cost of 51 for VF 4: {{.*}}ir<%valB> = load +; SSE2: Cost of 103 for VF 8: {{.*}}ir<%valB> = load +; SSE2: Cost of 207 for VF 16: {{.*}}ir<%valB> = load ; ; SSE42-LABEL: 'test' ; SSE42: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE42: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE42: LV: Found an estimated cost of 48 for VF 4 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE42: LV: Found an estimated cost of 96 for VF 8 For instruction: %valB = load i8, ptr %inB, align 1 -; SSE42: LV: Found an estimated cost of 192 for VF 16 For instruction: %valB = load i8, ptr %inB, align 1 +; SSE42: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; SSE42: Cost of 48 for VF 4: {{.*}}ir<%valB> = load +; SSE42: Cost of 96 for VF 8: {{.*}}ir<%valB> = load +; SSE42: Cost of 192 for VF 16: {{.*}}ir<%valB> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 24 for VF 2 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 48 for VF 4 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 96 for VF 8 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 192 for VF 16 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 385 for VF 32 For instruction: %valB = load i8, ptr %inB, align 1 +; AVX1: Cost of 24 for VF 2: {{.*}}ir<%valB> = load +; AVX1: Cost of 48 for VF 4: {{.*}}ir<%valB> = load +; AVX1: Cost of 96 for VF 8: {{.*}}ir<%valB> = load +; AVX1: Cost of 192 for VF 16: {{.*}}ir<%valB> = load +; AVX1: Cost of 385 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-SLOWGATHER-LABEL: 'test' ; AVX2-SLOWGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 8 for VF 4 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 16 for VF 8 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 32 for VF 16 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 65 for VF 32 For instruction: %valB = load i8, ptr %inB, align 1 +; AVX2-SLOWGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 8 for VF 4: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 16 for VF 8: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 32 for VF 16: {{.*}}ir<%valB> = load +; AVX2-SLOWGATHER: Cost of 65 for VF 32: {{.*}}ir<%valB> = load ; ; AVX2-FASTGATHER-LABEL: 'test' ; AVX2-FASTGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-FASTGATHER: LV: Found an estimated cost of 6 for VF 2 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-FASTGATHER: LV: Found an estimated cost of 13 for VF 4 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-FASTGATHER: LV: Found an estimated cost of 26 for VF 8 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-FASTGATHER: LV: Found an estimated cost of 52 for VF 16 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX2-FASTGATHER: LV: Found an estimated cost of 105 for VF 32 For instruction: %valB = load i8, ptr %inB, align 1 +; AVX2-FASTGATHER: Cost of 6 for VF 2: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 13 for VF 4: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 26 for VF 8: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 52 for VF 16: {{.*}}ir<%valB> = load +; AVX2-FASTGATHER: Cost of 105 for VF 32: {{.*}}ir<%valB> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 6 for VF 2 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 13 for VF 4 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 27 for VF 8 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 54 for VF 16 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 109 for VF 32 For instruction: %valB = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 219 for VF 64 For instruction: %valB = load i8, ptr %inB, align 1 +; AVX512: Cost of 6 for VF 2: {{.*}}ir<%valB> = load +; AVX512: Cost of 13 for VF 4: {{.*}}ir<%valB> = load +; AVX512: Cost of 27 for VF 8: {{.*}}ir<%valB> = load +; AVX512: Cost of 54 for VF 16: {{.*}}ir<%valB> = load +; AVX512: Cost of 109 for VF 32: {{.*}}ir<%valB> = load +; AVX512: Cost of 219 for VF 64: {{.*}}ir<%valB> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-2.ll index 1eec906171edd..41ad1ebcf6ffb 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-2.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 28 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 56 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 +; SSE2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 28 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 56 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 30 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 60 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 120 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX1: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 30 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 60 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 120 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 12 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 24 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 24 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 22 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 92 for VF 64 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX512: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 3 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 22 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 92 for VF 64: INTERLEAVE-GROUP with factor 2 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-3.ll index d119ca93f04de..2f6d958e87530 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-3.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 9 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 21 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 42 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 84 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 +; SSE2: Cost of 9 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 21 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 42 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 84 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 11 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 21 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 45 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 90 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 180 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX1: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 21 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 45 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 90 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 180 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 5 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 10 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 20 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 44 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX2: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 10 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 20 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 44 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 6 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 12 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 51 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 210 for VF 64 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX512: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 51 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 210 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-4.ll index c5c6555de0da5..4ae991958deea 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-f32-stride-4.ll @@ -14,34 +14,34 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 12 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 28 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 56 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 112 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 +; SSE2: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 56 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 112 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 12 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 28 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 60 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 120 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 240 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX1: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 60 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 120 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 240 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 10 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 20 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 40 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 84 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX2: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 10 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 20 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 40 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 84 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 4 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 8 for VF 8 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 22 for VF 16 For instruction: %v0 = load float, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 92 for VF 32 For instruction: %v0 = load float, ptr %in0, align 4 +; AVX512: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 22 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 92 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-2.ll index 78389fadd5226..9fcd04bd52def 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-2.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 8 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 34 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 68 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 +; SSE2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 34 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 68 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 34 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 70 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 140 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX1: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 34 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 70 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 140 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 7 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 11 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 22 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 7 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 11 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 22 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 7 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 10 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 20 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 284 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512DQ: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 7 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 10 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 20 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 284 for VF 64: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 5 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 5 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 7 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 34 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512BW: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 5 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 7 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 34 for VF 64: INTERLEAVE-GROUP with factor 2 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-3.ll index edf044dd092e7..9a4f8417921e7 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-3.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 18 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 26 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 51 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 102 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 +; SSE2: Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 26 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 51 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 102 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 15 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 28 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 51 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 105 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 210 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX1: Cost of 15 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 51 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 105 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 210 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 8 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 10 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 11 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 31 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 62 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX2: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 10 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 11 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 31 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 62 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 8 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 10 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 12 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 30 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 59 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 426 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512DQ: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 10 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 12 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 30 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 59 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 426 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 4 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 7 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 7 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 9 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 18 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 81 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512BW: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 7 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 9 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 18 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 81 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-4.ll index 6f22ec2a86080..4a7a5a2dbc9b9 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-4.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 17 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 34 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 68 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 136 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 +; SSE2: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 34 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 68 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 136 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 17 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 34 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 68 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 140 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 280 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX1: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 34 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 68 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 140 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 280 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 7 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 18 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 35 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 79 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 158 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX2: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 35 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 79 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 158 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 7 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 18 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 34 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 77 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 154 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 568 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512DQ: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 34 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 77 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 154 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 568 for VF 64: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 9 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 9 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 12 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 34 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 148 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512BW: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 9 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 9 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 34 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 148 for VF 64: INTERLEAVE-GROUP with factor 4 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-6.ll index 09823572118ad..1e5b242433b3e 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i16-stride-6.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 26 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 51 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 102 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; SSE2: LV: Found an estimated cost of 204 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 +; SSE2: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; SSE2: Cost of 51 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; SSE2: Cost of 102 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; SSE2: Cost of 204 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 28 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 51 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 102 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 210 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX1: LV: Found an estimated cost of 420 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX1: Cost of 28 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX1: Cost of 51 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX1: Cost of 102 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX1: Cost of 210 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX1: Cost of 420 for VF 32: INTERLEAVE-GROUP with factor 6 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 16 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 11 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 42 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 112 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX2: LV: Found an estimated cost of 224 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX2: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX2: Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX2: Cost of 42 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX2: Cost of 112 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX2: Cost of 224 for VF 32: INTERLEAVE-GROUP with factor 6 at %v0 ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 16 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 12 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 41 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 109 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 218 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512DQ: LV: Found an estimated cost of 852 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512DQ: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512DQ: Cost of 12 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512DQ: Cost of 41 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512DQ: Cost of 109 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512DQ: Cost of 218 for VF 32: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512DQ: Cost of 852 for VF 64: INTERLEAVE-GROUP with factor 6 at %v0 ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 13 for VF 2 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 13 for VF 4 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 17 for VF 8 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 33 for VF 16 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 81 for VF 32 For instruction: %v0 = load i16, ptr %in0, align 2 -; AVX512BW: LV: Found an estimated cost of 342 for VF 64 For instruction: %v0 = load i16, ptr %in0, align 2 +; AVX512BW: Cost of 13 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512BW: Cost of 13 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512BW: Cost of 17 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512BW: Cost of 33 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512BW: Cost of 81 for VF 32: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512BW: Cost of 342 for VF 64: INTERLEAVE-GROUP with factor 6 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2-indices-0u.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2-indices-0u.ll index d809761735245..12ffe4b1632ed 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2-indices-0u.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2-indices-0u.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 2 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 30 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 60 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 30 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 60 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 2 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 2 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 21 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 42 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 84 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 21 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 42 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 84 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 2 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 2 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 4 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 16 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 16 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 13 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 50 for VF 64 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 1 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 1 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 1 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 2 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 13 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 50 for VF 64: INTERLEAVE-GROUP with factor 2 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2.ll index a0f4334597103..9c055eabe0816 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-2.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 60 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 120 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 60 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 120 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 38 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 76 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 152 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 38 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 76 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 152 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 12 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 24 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 24 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 22 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 92 for VF 64 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 3 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 22 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512: Cost of 92 for VF 64: INTERLEAVE-GROUP with factor 2 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-01u.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-01u.ll index 000356ad40134..382e5bfcde341 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-01u.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-01u.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 14 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 31 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 62 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 124 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 31 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 62 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 124 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 12 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 19 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 40 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 80 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 160 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 19 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 40 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 80 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 160 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 16 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 34 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 34 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 9 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 36 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 144 for VF 64 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 5 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 9 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 36 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 144 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-0uu.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-0uu.ll index 7b725d5f63ea1..3c6401715311e 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-0uu.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3-indices-0uu.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 8 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 17 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 34 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 68 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 17 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 34 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 68 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 7 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 11 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 23 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 46 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 92 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 23 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 46 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 92 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 4 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 11 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 23 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 4 for VF 2: {{.*}}ir<%v0> = load +; AVX2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 11 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 23 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 3 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 21 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 78 for VF 64 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 1 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 1 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 3 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 21 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 78 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3.ll index 239c9e1e1434e..ee3c510991503 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-3.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 21 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 45 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 90 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 180 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 21 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 45 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 90 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 180 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 16 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 27 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 57 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 114 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 228 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 27 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 57 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 114 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 228 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 5 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 10 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 20 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 44 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 10 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 20 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 44 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 6 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 12 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 51 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 210 for VF 64 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 51 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512: Cost of 210 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-012u.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-012u.ll index 252e0844c0edf..17dad2598dc82 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-012u.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-012u.ll @@ -14,34 +14,34 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 21 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 45 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 90 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 180 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 21 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 45 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 90 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 180 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 14 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 28 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 59 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 118 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 236 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 59 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 118 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 236 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 4 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 16 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 32 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 67 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 16 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 32 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 67 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 6 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 17 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 71 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 17 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 71 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-0uuu.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-0uuu.ll index 119062ff9cae4..55339f958bc2a 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-0uuu.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4-indices-0uuu.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 7 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 15 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 30 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 60 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 15 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 30 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 60 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 6 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 12 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 25 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 50 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 100 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 12 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 25 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 50 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 100 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 2 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 16 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 33 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 16 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 33 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 29 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 80 for VF 64 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 1 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 1 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 29 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 80 for VF 64: {{.*}}ir<%v0> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4.ll index 1f59aab2860f8..d95ab28c1ff74 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-4.ll @@ -14,34 +14,34 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 28 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 60 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 120 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 240 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 28 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 60 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 120 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 240 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 18 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 36 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 76 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 152 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 304 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 76 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 152 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 304 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 10 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 20 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 40 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 84 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 10 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 20 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 40 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 84 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 8 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 22 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 92 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 22 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512: Cost of 92 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-6.ll index 278e4a80073a6..0f1fc532b6df4 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i32-stride-6.ll @@ -14,31 +14,31 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 42 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 90 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; SSE2: LV: Found an estimated cost of 180 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 +; SSE2: Cost of 42 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; SSE2: Cost of 90 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; SSE2: Cost of 180 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 27 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 54 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 114 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX1: LV: Found an estimated cost of 228 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX1: Cost of 27 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX1: Cost of 54 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX1: Cost of 114 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX1: Cost of 228 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 18 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 37 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX2: LV: Found an estimated cost of 76 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX2: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX2: Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX2: Cost of 37 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX2: Cost of 76 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 7 for VF 2 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 11 for VF 4 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 21 for VF 8 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 51 for VF 16 For instruction: %v0 = load i32, ptr %in0, align 4 -; AVX512: LV: Found an estimated cost of 210 for VF 32 For instruction: %v0 = load i32, ptr %in0, align 4 +; AVX512: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512: Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512: Cost of 21 for VF 8: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512: Cost of 51 for VF 16: INTERLEAVE-GROUP with factor 6 at %v0 +; AVX512: Cost of 210 for VF 32: INTERLEAVE-GROUP with factor 6 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-2.ll index 91376c26a7a4c..66430532d863f 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-2.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 14 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 30 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 62 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 126 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 +; SSE2: Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 30 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 62 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; SSE2: Cost of 126 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 9 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 17 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 33 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 66 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 134 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX1: Cost of 9 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 17 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 33 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 66 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX1: Cost of 134 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 3 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 5 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 8 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 3 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX2: Cost of 8 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 3 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 7 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 270 for VF 64 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX512DQ: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 3 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 7 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512DQ: Cost of 270 for VF 64: INTERLEAVE-GROUP with factor 2 at %v0 ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 3 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 3 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 3 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 9 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 17 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 41 for VF 64 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX512BW: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 3 for VF 8: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 9 for VF 16: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 17 for VF 32: INTERLEAVE-GROUP with factor 2 at %v0 +; AVX512BW: Cost of 41 for VF 64: INTERLEAVE-GROUP with factor 2 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-3.ll index 4a2de69f43d43..508a8a6acecec 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-3.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 24 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 50 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 93 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 189 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 +; SSE2: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 50 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 93 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; SSE2: Cost of 189 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 16 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 27 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 52 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 99 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 201 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX1: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 27 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 52 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 99 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX1: Cost of 201 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 7 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 6 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 9 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 13 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 17 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX2: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 9 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 13 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX2: Cost of 17 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 7 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 6 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 9 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 14 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 16 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 405 for VF 64 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX512DQ: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 9 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 14 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 16 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512DQ: Cost of 405 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 4 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 4 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 13 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 13 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 16 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 25 for VF 64 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX512BW: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 13 for VF 8: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 13 for VF 16: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 16 for VF 32: INTERLEAVE-GROUP with factor 3 at %v0 +; AVX512BW: Cost of 25 for VF 64: INTERLEAVE-GROUP with factor 3 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-4.ll index 7bb14702d5b92..509562c19114d 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-load-i8-stride-4.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 28 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 60 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 124 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; SSE2: LV: Found an estimated cost of 252 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 +; SSE2: Cost of 28 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 60 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 124 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; SSE2: Cost of 252 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 17 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 33 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 66 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 132 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX1: LV: Found an estimated cost of 268 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX1: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 33 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 66 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 132 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX1: Cost of 268 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 5 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 13 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 26 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX2: LV: Found an estimated cost of 60 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX2: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 13 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 26 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX2: Cost of 60 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 13 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 25 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 58 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512DQ: LV: Found an estimated cost of 540 for VF 64 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX512DQ: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 13 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 25 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 58 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512DQ: Cost of 540 for VF 64: INTERLEAVE-GROUP with factor 4 at %v0 ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 5 for VF 2 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 5 for VF 4 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 17 for VF 8 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 33 for VF 16 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 80 for VF 32 For instruction: %v0 = load i8, ptr %in0, align 1 -; AVX512BW: LV: Found an estimated cost of 238 for VF 64 For instruction: %v0 = load i8, ptr %in0, align 1 +; AVX512BW: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 17 for VF 8: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 33 for VF 16: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 80 for VF 32: INTERLEAVE-GROUP with factor 4 at %v0 +; AVX512BW: Cost of 238 for VF 64: INTERLEAVE-GROUP with factor 4 at %v0 ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-2.ll index e70a4f09029a0..6076aa274623a 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-2.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 2 for VF 2 For instruction: store float %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 14 for VF 4 For instruction: store float %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 28 for VF 8 For instruction: store float %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 56 for VF 16 For instruction: store float %v1, ptr %out1, align 4 +; SSE2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 14 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 28 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 56 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 2 for VF 2 For instruction: store float %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 14 for VF 4 For instruction: store float %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 30 for VF 8 For instruction: store float %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 60 for VF 16 For instruction: store float %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 120 for VF 32 For instruction: store float %v1, ptr %out1, align 4 +; AVX1: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 14 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 30 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 60 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 120 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 2 for VF 2 For instruction: store float %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 4 For instruction: store float %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 8 For instruction: store float %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 12 for VF 16 For instruction: store float %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 24 for VF 32 For instruction: store float %v1, ptr %out1, align 4 +; AVX2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 24 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 2 For instruction: store float %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 4 For instruction: store float %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 8 For instruction: store float %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 16 For instruction: store float %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 10 for VF 32 For instruction: store float %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 20 for VF 64 For instruction: store float %v1, ptr %out1, align 4 +; AVX512: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 10 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 20 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-3.ll index a80f9fb1a8bde..ce0289998100b 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-3.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 11 for VF 2 For instruction: store float %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 24 for VF 4 For instruction: store float %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 48 for VF 8 For instruction: store float %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 96 for VF 16 For instruction: store float %v2, ptr %out2, align 4 +; SSE2: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 24 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 48 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 96 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 12 for VF 2 For instruction: store float %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 22 for VF 4 For instruction: store float %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 45 for VF 8 For instruction: store float %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 90 for VF 16 For instruction: store float %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 180 for VF 32 For instruction: store float %v2, ptr %out2, align 4 +; AVX1: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 22 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 45 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 90 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 180 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 7 for VF 2 For instruction: store float %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 7 for VF 4 For instruction: store float %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 14 for VF 8 For instruction: store float %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 28 for VF 16 For instruction: store float %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 60 for VF 32 For instruction: store float %v2, ptr %out2, align 4 +; AVX2: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 14 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 28 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 60 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 2 For instruction: store float %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 4 For instruction: store float %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 8 for VF 8 For instruction: store float %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 12 for VF 16 For instruction: store float %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 24 for VF 32 For instruction: store float %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 48 for VF 64 For instruction: store float %v2, ptr %out2, align 4 +; AVX512: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 24 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 48 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-4.ll index 7e56b13cc8b8c..e0fa19298c577 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-4.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 12 for VF 2 For instruction: store float %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 28 for VF 4 For instruction: store float %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 56 for VF 8 For instruction: store float %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 112 for VF 16 For instruction: store float %v3, ptr %out3, align 4 +; SSE2: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 56 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 112 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 12 for VF 2 For instruction: store float %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 28 for VF 4 For instruction: store float %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 60 for VF 8 For instruction: store float %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 120 for VF 16 For instruction: store float %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 240 for VF 32 For instruction: store float %v3, ptr %out3, align 4 +; AVX1: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 60 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 120 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 240 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 2 For instruction: store float %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 4 For instruction: store float %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 20 for VF 8 For instruction: store float %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 40 for VF 16 For instruction: store float %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 80 for VF 32 For instruction: store float %v3, ptr %out3, align 4 +; AVX2: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 20 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 40 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 80 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 2 For instruction: store float %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 4 For instruction: store float %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 11 for VF 8 For instruction: store float %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 22 for VF 16 For instruction: store float %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 44 for VF 32 For instruction: store float %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 88 for VF 64 For instruction: store float %v3, ptr %out3, align 4 +; AVX512: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 11 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 22 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 44 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 88 for VF 64: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-5.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-5.ll index 164849976b67e..940864a59a93a 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-5.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-5.ll @@ -14,32 +14,32 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v4, ptr %out4, align 4 -; SSE2: LV: Found an estimated cost of 20 for VF 2 For instruction: store float %v4, ptr %out4, align 4 -; SSE2: LV: Found an estimated cost of 44 for VF 4 For instruction: store float %v4, ptr %out4, align 4 -; SSE2: LV: Found an estimated cost of 88 for VF 8 For instruction: store float %v4, ptr %out4, align 4 +; SSE2: Cost of 20 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 88 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 16 for VF 2 For instruction: store float %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 36 for VF 4 For instruction: store float %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 75 for VF 8 For instruction: store float %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 150 for VF 16 For instruction: store float %v4, ptr %out4, align 4 +; AVX1: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 75 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 150 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 16 for VF 2 For instruction: store float %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 36 for VF 4 For instruction: store float %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 75 for VF 8 For instruction: store float %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 150 for VF 16 For instruction: store float %v4, ptr %out4, align 4 +; AVX2: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 75 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 150 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 7 for VF 2 For instruction: store float %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 14 for VF 4 For instruction: store float %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 21 for VF 8 For instruction: store float %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 35 for VF 16 For instruction: store float %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 70 for VF 32 For instruction: store float %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 140 for VF 64 For instruction: store float %v4, ptr %out4, align 4 +; AVX512: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 14 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 21 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 35 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 70 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 140 for VF 64: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-6.ll index b166432ff3bd9..3d947e13b3732 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-6.ll @@ -14,32 +14,32 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v5, ptr %out5, align 4 -; SSE2: LV: Found an estimated cost of 21 for VF 2 For instruction: store float %v5, ptr %out5, align 4 -; SSE2: LV: Found an estimated cost of 48 for VF 4 For instruction: store float %v5, ptr %out5, align 4 -; SSE2: LV: Found an estimated cost of 96 for VF 8 For instruction: store float %v5, ptr %out5, align 4 +; SSE2: Cost of 21 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 48 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 96 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 19 for VF 2 For instruction: store float %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 42 for VF 4 For instruction: store float %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 90 for VF 8 For instruction: store float %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 180 for VF 16 For instruction: store float %v5, ptr %out5, align 4 +; AVX1: Cost of 19 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 42 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 90 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 180 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 11 for VF 2 For instruction: store float %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 15 for VF 4 For instruction: store float %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 39 for VF 8 For instruction: store float %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 78 for VF 16 For instruction: store float %v5, ptr %out5, align 4 +; AVX2: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 15 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 39 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 78 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 8 for VF 2 For instruction: store float %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 17 for VF 4 For instruction: store float %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 25 for VF 8 For instruction: store float %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 51 for VF 16 For instruction: store float %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 102 for VF 32 For instruction: store float %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 204 for VF 64 For instruction: store float %v5, ptr %out5, align 4 +; AVX512: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 17 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 25 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 51 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 102 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 204 for VF 64: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-7.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-7.ll index cf5bb64154f4c..ffa4cab905cea 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-7.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f32-stride-7.ll @@ -14,31 +14,31 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v6, ptr %out6, align 4 -; SSE2: LV: Found an estimated cost of 23 for VF 2 For instruction: store float %v6, ptr %out6, align 4 -; SSE2: LV: Found an estimated cost of 52 for VF 4 For instruction: store float %v6, ptr %out6, align 4 -; SSE2: LV: Found an estimated cost of 104 for VF 8 For instruction: store float %v6, ptr %out6, align 4 +; SSE2: Cost of 23 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 52 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 104 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 24 for VF 2 For instruction: store float %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 50 for VF 4 For instruction: store float %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 105 for VF 8 For instruction: store float %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 210 for VF 16 For instruction: store float %v6, ptr %out6, align 4 +; AVX1: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 50 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 105 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 210 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 24 for VF 2 For instruction: store float %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 50 for VF 4 For instruction: store float %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 105 for VF 8 For instruction: store float %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 210 for VF 16 For instruction: store float %v6, ptr %out6, align 4 +; AVX2: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 50 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 105 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 210 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store float %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 10 for VF 2 For instruction: store float %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 20 for VF 4 For instruction: store float %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 40 for VF 8 For instruction: store float %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 70 for VF 16 For instruction: store float %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 140 for VF 32 For instruction: store float %v6, ptr %out6, align 4 +; AVX512: Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 20 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 40 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 70 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 140 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-2.ll index 74eccc0c33218..30faeb74644be 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-2.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 6 for VF 2 For instruction: store double %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 12 for VF 4 For instruction: store double %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 24 for VF 8 For instruction: store double %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 48 for VF 16 For instruction: store double %v1, ptr %out1, align 8 +; SSE2: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 12 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 24 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 48 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 6 for VF 2 For instruction: store double %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 14 for VF 4 For instruction: store double %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 28 for VF 8 For instruction: store double %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 56 for VF 16 For instruction: store double %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 112 for VF 32 For instruction: store double %v1, ptr %out1, align 8 +; AVX1: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 14 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 28 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 56 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 112 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: store double %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 6 for VF 4 For instruction: store double %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 12 for VF 8 For instruction: store double %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 24 for VF 16 For instruction: store double %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 48 for VF 32 For instruction: store double %v1, ptr %out1, align 8 +; AVX2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 12 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 24 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 48 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 2 for VF 2 For instruction: store double %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 2 for VF 4 For instruction: store double %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 5 for VF 8 For instruction: store double %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 10 for VF 16 For instruction: store double %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 20 for VF 32 For instruction: store double %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 40 for VF 64 For instruction: store double %v1, ptr %out1, align 8 +; AVX512: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 5 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 10 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 20 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 40 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-3.ll index b6f76d392bbae..a4405db7e8099 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-3.ll @@ -14,32 +14,32 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v2, ptr %out2, align 8 -; SSE2: LV: Found an estimated cost of 10 for VF 2 For instruction: store double %v2, ptr %out2, align 8 -; SSE2: LV: Found an estimated cost of 20 for VF 4 For instruction: store double %v2, ptr %out2, align 8 -; SSE2: LV: Found an estimated cost of 40 for VF 8 For instruction: store double %v2, ptr %out2, align 8 +; SSE2: Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 20 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 40 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 11 for VF 2 For instruction: store double %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 24 for VF 4 For instruction: store double %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 48 for VF 8 For instruction: store double %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 96 for VF 16 For instruction: store double %v2, ptr %out2, align 8 +; AVX1: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 24 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 48 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 96 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 6 for VF 2 For instruction: store double %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 9 for VF 4 For instruction: store double %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 18 for VF 8 For instruction: store double %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 36 for VF 16 For instruction: store double %v2, ptr %out2, align 8 +; AVX2: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 9 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 18 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 36 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 4 for VF 2 For instruction: store double %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 8 for VF 4 For instruction: store double %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 12 for VF 8 For instruction: store double %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 24 for VF 16 For instruction: store double %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 48 for VF 32 For instruction: store double %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 96 for VF 64 For instruction: store double %v2, ptr %out2, align 8 +; AVX512: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 12 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 24 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 48 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 96 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-4.ll index 14e76623b0506..aea5871ec8b87 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-4.ll @@ -14,31 +14,31 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v3, ptr %out3, align 8 -; SSE2: LV: Found an estimated cost of 12 for VF 2 For instruction: store double %v3, ptr %out3, align 8 -; SSE2: LV: Found an estimated cost of 24 for VF 4 For instruction: store double %v3, ptr %out3, align 8 -; SSE2: LV: Found an estimated cost of 48 for VF 8 For instruction: store double %v3, ptr %out3, align 8 +; SSE2: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 24 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 48 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 12 for VF 2 For instruction: store double %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 28 for VF 4 For instruction: store double %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 56 for VF 8 For instruction: store double %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 112 for VF 16 For instruction: store double %v3, ptr %out3, align 8 +; AVX1: Cost of 12 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 56 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 112 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 8 for VF 2 For instruction: store double %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 12 for VF 4 For instruction: store double %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 28 for VF 8 For instruction: store double %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 56 for VF 16 For instruction: store double %v3, ptr %out3, align 8 +; AVX2: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 12 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 28 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 56 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 5 for VF 2 For instruction: store double %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 11 for VF 4 For instruction: store double %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 22 for VF 8 For instruction: store double %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 44 for VF 16 For instruction: store double %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 88 for VF 32 For instruction: store double %v3, ptr %out3, align 8 +; AVX512: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 22 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 44 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 88 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-5.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-5.ll index 8f10e1b1c2bf3..888ba09ea8452 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-5.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-5.ll @@ -14,28 +14,28 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v4, ptr %out4, align 8 -; SSE2: LV: Found an estimated cost of 18 for VF 2 For instruction: store double %v4, ptr %out4, align 8 -; SSE2: LV: Found an estimated cost of 36 for VF 4 For instruction: store double %v4, ptr %out4, align 8 +; SSE2: Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v4, ptr %out4, align 8 -; AVX1: LV: Found an estimated cost of 20 for VF 2 For instruction: store double %v4, ptr %out4, align 8 -; AVX1: LV: Found an estimated cost of 44 for VF 4 For instruction: store double %v4, ptr %out4, align 8 -; AVX1: LV: Found an estimated cost of 88 for VF 8 For instruction: store double %v4, ptr %out4, align 8 +; AVX1: Cost of 20 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 88 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v4, ptr %out4, align 8 -; AVX2: LV: Found an estimated cost of 20 for VF 2 For instruction: store double %v4, ptr %out4, align 8 -; AVX2: LV: Found an estimated cost of 44 for VF 4 For instruction: store double %v4, ptr %out4, align 8 -; AVX2: LV: Found an estimated cost of 88 for VF 8 For instruction: store double %v4, ptr %out4, align 8 +; AVX2: Cost of 20 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 88 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 14 for VF 2 For instruction: store double %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 21 for VF 4 For instruction: store double %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 35 for VF 8 For instruction: store double %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 70 for VF 16 For instruction: store double %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 140 for VF 32 For instruction: store double %v4, ptr %out4, align 8 +; AVX512: Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 21 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 35 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 70 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 140 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-6.ll index 7bd0d0b497b0f..6200f8fec3201 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-6.ll @@ -14,28 +14,28 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v5, ptr %out5, align 8 -; SSE2: LV: Found an estimated cost of 20 for VF 2 For instruction: store double %v5, ptr %out5, align 8 -; SSE2: LV: Found an estimated cost of 40 for VF 4 For instruction: store double %v5, ptr %out5, align 8 +; SSE2: Cost of 20 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 40 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v5, ptr %out5, align 8 -; AVX1: LV: Found an estimated cost of 21 for VF 2 For instruction: store double %v5, ptr %out5, align 8 -; AVX1: LV: Found an estimated cost of 48 for VF 4 For instruction: store double %v5, ptr %out5, align 8 -; AVX1: LV: Found an estimated cost of 96 for VF 8 For instruction: store double %v5, ptr %out5, align 8 +; AVX1: Cost of 21 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 48 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 96 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v5, ptr %out5, align 8 -; AVX2: LV: Found an estimated cost of 11 for VF 2 For instruction: store double %v5, ptr %out5, align 8 -; AVX2: LV: Found an estimated cost of 21 for VF 4 For instruction: store double %v5, ptr %out5, align 8 -; AVX2: LV: Found an estimated cost of 42 for VF 8 For instruction: store double %v5, ptr %out5, align 8 +; AVX2: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 21 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 42 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 17 for VF 2 For instruction: store double %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 25 for VF 4 For instruction: store double %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 51 for VF 8 For instruction: store double %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 102 for VF 16 For instruction: store double %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 204 for VF 32 For instruction: store double %v5, ptr %out5, align 8 +; AVX512: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 25 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 51 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 102 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 204 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-7.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-7.ll index c06de4819a30f..b8258ae845954 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-7.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-f64-stride-7.ll @@ -14,28 +14,28 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v6, ptr %out6, align 8 -; SSE2: LV: Found an estimated cost of 22 for VF 2 For instruction: store double %v6, ptr %out6, align 8 -; SSE2: LV: Found an estimated cost of 44 for VF 4 For instruction: store double %v6, ptr %out6, align 8 +; SSE2: Cost of 22 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v6, ptr %out6, align 8 -; AVX1: LV: Found an estimated cost of 23 for VF 2 For instruction: store double %v6, ptr %out6, align 8 -; AVX1: LV: Found an estimated cost of 52 for VF 4 For instruction: store double %v6, ptr %out6, align 8 -; AVX1: LV: Found an estimated cost of 104 for VF 8 For instruction: store double %v6, ptr %out6, align 8 +; AVX1: Cost of 23 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 52 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 104 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v6, ptr %out6, align 8 -; AVX2: LV: Found an estimated cost of 23 for VF 2 For instruction: store double %v6, ptr %out6, align 8 -; AVX2: LV: Found an estimated cost of 52 for VF 4 For instruction: store double %v6, ptr %out6, align 8 -; AVX2: LV: Found an estimated cost of 104 for VF 8 For instruction: store double %v6, ptr %out6, align 8 +; AVX2: Cost of 23 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 52 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 104 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store double %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 20 for VF 2 For instruction: store double %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 40 for VF 4 For instruction: store double %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 70 for VF 8 For instruction: store double %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 140 for VF 16 For instruction: store double %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 280 for VF 32 For instruction: store double %v6, ptr %out6, align 8 +; AVX512: Cost of 20 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 40 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 70 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 140 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 280 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-2.ll index d945b852c581c..70aa1a017605e 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-2.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v1, ptr %out1, align 2 -; SSE2: LV: Found an estimated cost of 2 for VF 2 For instruction: store i16 %v1, ptr %out1, align 2 -; SSE2: LV: Found an estimated cost of 2 for VF 4 For instruction: store i16 %v1, ptr %out1, align 2 -; SSE2: LV: Found an estimated cost of 34 for VF 8 For instruction: store i16 %v1, ptr %out1, align 2 -; SSE2: LV: Found an estimated cost of 68 for VF 16 For instruction: store i16 %v1, ptr %out1, align 2 +; SSE2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 34 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 68 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX1: LV: Found an estimated cost of 2 for VF 2 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX1: LV: Found an estimated cost of 2 for VF 4 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX1: LV: Found an estimated cost of 34 for VF 8 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX1: LV: Found an estimated cost of 70 for VF 16 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX1: LV: Found an estimated cost of 140 for VF 32 For instruction: store i16 %v1, ptr %out1, align 2 +; AVX1: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 34 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 70 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 140 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX2: LV: Found an estimated cost of 2 for VF 2 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX2: LV: Found an estimated cost of 2 for VF 4 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX2: LV: Found an estimated cost of 4 for VF 8 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX2: LV: Found an estimated cost of 6 for VF 16 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX2: LV: Found an estimated cost of 12 for VF 32 For instruction: store i16 %v1, ptr %out1, align 2 +; AVX2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 6 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 12 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512DQ: LV: Found an estimated cost of 2 for VF 2 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512DQ: LV: Found an estimated cost of 2 for VF 4 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512DQ: LV: Found an estimated cost of 4 for VF 8 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 16 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512DQ: LV: Found an estimated cost of 10 for VF 32 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512DQ: LV: Found an estimated cost of 284 for VF 64 For instruction: store i16 %v1, ptr %out1, align 2 +; AVX512DQ: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 10 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 284 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512BW: LV: Found an estimated cost of 3 for VF 2 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512BW: LV: Found an estimated cost of 3 for VF 4 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512BW: LV: Found an estimated cost of 3 for VF 8 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512BW: LV: Found an estimated cost of 3 for VF 16 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512BW: LV: Found an estimated cost of 7 for VF 32 For instruction: store i16 %v1, ptr %out1, align 2 -; AVX512BW: LV: Found an estimated cost of 14 for VF 64 For instruction: store i16 %v1, ptr %out1, align 2 +; AVX512BW: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 3 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 3 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 7 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 14 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-3.ll index e9113439b4b0e..03bffeb36eedc 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-3.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v2, ptr %out2, align 2 -; SSE2: LV: Found an estimated cost of 16 for VF 2 For instruction: store i16 %v2, ptr %out2, align 2 -; SSE2: LV: Found an estimated cost of 26 for VF 4 For instruction: store i16 %v2, ptr %out2, align 2 -; SSE2: LV: Found an estimated cost of 51 for VF 8 For instruction: store i16 %v2, ptr %out2, align 2 -; SSE2: LV: Found an estimated cost of 102 for VF 16 For instruction: store i16 %v2, ptr %out2, align 2 +; SSE2: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 26 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 51 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 102 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX1: LV: Found an estimated cost of 15 for VF 2 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX1: LV: Found an estimated cost of 29 for VF 4 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX1: LV: Found an estimated cost of 52 for VF 8 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX1: LV: Found an estimated cost of 105 for VF 16 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX1: LV: Found an estimated cost of 210 for VF 32 For instruction: store i16 %v2, ptr %out2, align 2 +; AVX1: Cost of 15 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 29 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 52 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 105 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 210 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX2: LV: Found an estimated cost of 7 for VF 2 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX2: LV: Found an estimated cost of 9 for VF 4 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX2: LV: Found an estimated cost of 14 for VF 8 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX2: LV: Found an estimated cost of 30 for VF 16 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX2: LV: Found an estimated cost of 60 for VF 32 For instruction: store i16 %v2, ptr %out2, align 2 +; AVX2: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 9 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 14 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 30 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 60 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512DQ: LV: Found an estimated cost of 7 for VF 2 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512DQ: LV: Found an estimated cost of 9 for VF 4 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512DQ: LV: Found an estimated cost of 15 for VF 8 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512DQ: LV: Found an estimated cost of 29 for VF 16 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512DQ: LV: Found an estimated cost of 57 for VF 32 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512DQ: LV: Found an estimated cost of 426 for VF 64 For instruction: store i16 %v2, ptr %out2, align 2 +; AVX512DQ: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 9 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 15 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 29 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 57 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 426 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512BW: LV: Found an estimated cost of 6 for VF 2 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512BW: LV: Found an estimated cost of 6 for VF 4 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512BW: LV: Found an estimated cost of 6 for VF 8 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512BW: LV: Found an estimated cost of 12 for VF 16 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512BW: LV: Found an estimated cost of 18 for VF 32 For instruction: store i16 %v2, ptr %out2, align 2 -; AVX512BW: LV: Found an estimated cost of 36 for VF 64 For instruction: store i16 %v2, ptr %out2, align 2 +; AVX512BW: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 18 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 36 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-4.ll index 90d246ef330a4..58b742521cfaa 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-4.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v3, ptr %out3, align 2 -; SSE2: LV: Found an estimated cost of 17 for VF 2 For instruction: store i16 %v3, ptr %out3, align 2 -; SSE2: LV: Found an estimated cost of 34 for VF 4 For instruction: store i16 %v3, ptr %out3, align 2 -; SSE2: LV: Found an estimated cost of 68 for VF 8 For instruction: store i16 %v3, ptr %out3, align 2 -; SSE2: LV: Found an estimated cost of 136 for VF 16 For instruction: store i16 %v3, ptr %out3, align 2 +; SSE2: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 34 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 68 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 136 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX1: LV: Found an estimated cost of 17 for VF 2 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX1: LV: Found an estimated cost of 34 for VF 4 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX1: LV: Found an estimated cost of 68 for VF 8 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX1: LV: Found an estimated cost of 140 for VF 16 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX1: LV: Found an estimated cost of 280 for VF 32 For instruction: store i16 %v3, ptr %out3, align 2 +; AVX1: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 34 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 68 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 140 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 280 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX2: LV: Found an estimated cost of 7 for VF 4 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX2: LV: Found an estimated cost of 12 for VF 8 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX2: LV: Found an estimated cost of 36 for VF 16 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX2: LV: Found an estimated cost of 72 for VF 32 For instruction: store i16 %v3, ptr %out3, align 2 +; AVX2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 12 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 36 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 72 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512DQ: LV: Found an estimated cost of 3 for VF 2 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512DQ: LV: Found an estimated cost of 7 for VF 4 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512DQ: LV: Found an estimated cost of 11 for VF 8 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512DQ: LV: Found an estimated cost of 34 for VF 16 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512DQ: LV: Found an estimated cost of 68 for VF 32 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512DQ: LV: Found an estimated cost of 568 for VF 64 For instruction: store i16 %v3, ptr %out3, align 2 +; AVX512DQ: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 11 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 34 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 68 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 568 for VF 64: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512BW: LV: Found an estimated cost of 8 for VF 2 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512BW: LV: Found an estimated cost of 8 for VF 4 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512BW: LV: Found an estimated cost of 8 for VF 8 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512BW: LV: Found an estimated cost of 17 for VF 16 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512BW: LV: Found an estimated cost of 34 for VF 32 For instruction: store i16 %v3, ptr %out3, align 2 -; AVX512BW: LV: Found an estimated cost of 68 for VF 64 For instruction: store i16 %v3, ptr %out3, align 2 +; AVX512BW: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 17 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 34 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 68 for VF 64: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-5.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-5.ll index 02684a5ce764c..b12b9ddf09529 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-5.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-5.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v4, ptr %out4, align 2 -; SSE2: LV: Found an estimated cost of 22 for VF 2 For instruction: store i16 %v4, ptr %out4, align 2 -; SSE2: LV: Found an estimated cost of 43 for VF 4 For instruction: store i16 %v4, ptr %out4, align 2 -; SSE2: LV: Found an estimated cost of 85 for VF 8 For instruction: store i16 %v4, ptr %out4, align 2 -; SSE2: LV: Found an estimated cost of 170 for VF 16 For instruction: store i16 %v4, ptr %out4, align 2 +; SSE2: Cost of 22 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 43 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 85 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 170 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX1: LV: Found an estimated cost of 26 for VF 2 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX1: LV: Found an estimated cost of 44 for VF 4 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX1: LV: Found an estimated cost of 86 for VF 8 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX1: LV: Found an estimated cost of 175 for VF 16 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX1: LV: Found an estimated cost of 350 for VF 32 For instruction: store i16 %v4, ptr %out4, align 2 +; AVX1: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 86 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 175 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 350 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX2: LV: Found an estimated cost of 26 for VF 2 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX2: LV: Found an estimated cost of 44 for VF 4 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX2: LV: Found an estimated cost of 86 for VF 8 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX2: LV: Found an estimated cost of 175 for VF 16 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX2: LV: Found an estimated cost of 350 for VF 32 For instruction: store i16 %v4, ptr %out4, align 2 +; AVX2: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 86 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 175 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 350 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512DQ: LV: Found an estimated cost of 26 for VF 2 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512DQ: LV: Found an estimated cost of 47 for VF 4 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512DQ: LV: Found an estimated cost of 86 for VF 8 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512DQ: LV: Found an estimated cost of 176 for VF 16 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512DQ: LV: Found an estimated cost of 355 for VF 32 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512DQ: LV: Found an estimated cost of 710 for VF 64 For instruction: store i16 %v4, ptr %out4, align 2 +; AVX512DQ: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 47 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 86 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 176 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 355 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 710 for VF 64: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512BW: LV: Found an estimated cost of 11 for VF 2 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512BW: LV: Found an estimated cost of 11 for VF 4 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512BW: LV: Found an estimated cost of 22 for VF 8 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512BW: LV: Found an estimated cost of 33 for VF 16 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512BW: LV: Found an estimated cost of 55 for VF 32 For instruction: store i16 %v4, ptr %out4, align 2 -; AVX512BW: LV: Found an estimated cost of 110 for VF 64 For instruction: store i16 %v4, ptr %out4, align 2 +; AVX512BW: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 22 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 33 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 55 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 110 for VF 64: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-6.ll index fe07abaab820d..c41493d916fb9 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-6.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v5, ptr %out5, align 2 -; SSE2: LV: Found an estimated cost of 26 for VF 2 For instruction: store i16 %v5, ptr %out5, align 2 -; SSE2: LV: Found an estimated cost of 51 for VF 4 For instruction: store i16 %v5, ptr %out5, align 2 -; SSE2: LV: Found an estimated cost of 102 for VF 8 For instruction: store i16 %v5, ptr %out5, align 2 -; SSE2: LV: Found an estimated cost of 204 for VF 16 For instruction: store i16 %v5, ptr %out5, align 2 +; SSE2: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 51 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 102 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 204 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX1: LV: Found an estimated cost of 29 for VF 2 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX1: LV: Found an estimated cost of 52 for VF 4 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX1: LV: Found an estimated cost of 102 for VF 8 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX1: LV: Found an estimated cost of 210 for VF 16 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX1: LV: Found an estimated cost of 420 for VF 32 For instruction: store i16 %v5, ptr %out5, align 2 +; AVX1: Cost of 29 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 52 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 102 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 210 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 420 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX2: LV: Found an estimated cost of 13 for VF 2 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX2: LV: Found an estimated cost of 17 for VF 4 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX2: LV: Found an estimated cost of 24 for VF 8 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX2: LV: Found an estimated cost of 64 for VF 16 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX2: LV: Found an estimated cost of 102 for VF 32 For instruction: store i16 %v5, ptr %out5, align 2 +; AVX2: Cost of 13 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 17 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 24 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 64 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 102 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512DQ: LV: Found an estimated cost of 13 for VF 2 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512DQ: LV: Found an estimated cost of 18 for VF 4 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512DQ: LV: Found an estimated cost of 23 for VF 8 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512DQ: LV: Found an estimated cost of 61 for VF 16 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512DQ: LV: Found an estimated cost of 96 for VF 32 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512DQ: LV: Found an estimated cost of 852 for VF 64 For instruction: store i16 %v5, ptr %out5, align 2 +; AVX512DQ: Cost of 13 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 23 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 61 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 96 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 852 for VF 64: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512BW: LV: Found an estimated cost of 13 for VF 2 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512BW: LV: Found an estimated cost of 13 for VF 4 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512BW: LV: Found an estimated cost of 27 for VF 8 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512BW: LV: Found an estimated cost of 40 for VF 16 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512BW: LV: Found an estimated cost of 81 for VF 32 For instruction: store i16 %v5, ptr %out5, align 2 -; AVX512BW: LV: Found an estimated cost of 162 for VF 64 For instruction: store i16 %v5, ptr %out5, align 2 +; AVX512BW: Cost of 13 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 13 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 27 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 40 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 81 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 162 for VF 64: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-7.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-7.ll index d8b9d9716919a..2a4d1bbf77cd5 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-7.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i16-stride-7.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v6, ptr %out6, align 2 -; SSE2: LV: Found an estimated cost of 33 for VF 2 For instruction: store i16 %v6, ptr %out6, align 2 -; SSE2: LV: Found an estimated cost of 60 for VF 4 For instruction: store i16 %v6, ptr %out6, align 2 -; SSE2: LV: Found an estimated cost of 119 for VF 8 For instruction: store i16 %v6, ptr %out6, align 2 -; SSE2: LV: Found an estimated cost of 238 for VF 16 For instruction: store i16 %v6, ptr %out6, align 2 +; SSE2: Cost of 33 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 60 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 119 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 238 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX1: LV: Found an estimated cost of 35 for VF 2 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX1: LV: Found an estimated cost of 63 for VF 4 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX1: LV: Found an estimated cost of 120 for VF 8 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX1: LV: Found an estimated cost of 245 for VF 16 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX1: LV: Found an estimated cost of 490 for VF 32 For instruction: store i16 %v6, ptr %out6, align 2 +; AVX1: Cost of 35 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 63 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 120 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 245 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 490 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX2: LV: Found an estimated cost of 35 for VF 2 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX2: LV: Found an estimated cost of 63 for VF 4 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX2: LV: Found an estimated cost of 120 for VF 8 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX2: LV: Found an estimated cost of 245 for VF 16 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX2: LV: Found an estimated cost of 490 for VF 32 For instruction: store i16 %v6, ptr %out6, align 2 +; AVX2: Cost of 35 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 63 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 120 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 245 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 490 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512DQ: LV: Found an estimated cost of 35 for VF 2 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512DQ: LV: Found an estimated cost of 65 for VF 4 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512DQ: LV: Found an estimated cost of 122 for VF 8 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512DQ: LV: Found an estimated cost of 246 for VF 16 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512DQ: LV: Found an estimated cost of 497 for VF 32 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512DQ: LV: Found an estimated cost of 994 for VF 64 For instruction: store i16 %v6, ptr %out6, align 2 +; AVX512DQ: Cost of 35 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 65 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 122 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 246 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 497 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 994 for VF 64: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512BW: LV: Found an estimated cost of 16 for VF 2 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512BW: LV: Found an estimated cost of 16 for VF 4 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512BW: LV: Found an estimated cost of 32 for VF 8 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512BW: LV: Found an estimated cost of 64 for VF 16 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512BW: LV: Found an estimated cost of 112 for VF 32 For instruction: store i16 %v6, ptr %out6, align 2 -; AVX512BW: LV: Found an estimated cost of 224 for VF 64 For instruction: store i16 %v6, ptr %out6, align 2 +; AVX512BW: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 16 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 32 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 64 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 112 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 224 for VF 64: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-2.ll index 6c3d430413336..cc697305e3b0e 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-2.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 2 for VF 2 For instruction: store i32 %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 30 for VF 4 For instruction: store i32 %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 60 for VF 8 For instruction: store i32 %v1, ptr %out1, align 4 -; SSE2: LV: Found an estimated cost of 120 for VF 16 For instruction: store i32 %v1, ptr %out1, align 4 +; SSE2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 30 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 60 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 120 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 2 for VF 2 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 18 for VF 4 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 38 for VF 8 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 76 for VF 16 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX1: LV: Found an estimated cost of 152 for VF 32 For instruction: store i32 %v1, ptr %out1, align 4 +; AVX1: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 18 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 38 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 76 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 152 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 2 for VF 2 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 4 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 8 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 12 for VF 16 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX2: LV: Found an estimated cost of 24 for VF 32 For instruction: store i32 %v1, ptr %out1, align 4 +; AVX2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 3 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 6 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 24 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 2 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 4 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 8 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 16 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 10 for VF 32 For instruction: store i32 %v1, ptr %out1, align 4 -; AVX512: LV: Found an estimated cost of 20 for VF 64 For instruction: store i32 %v1, ptr %out1, align 4 +; AVX512: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 5 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 10 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 20 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-3.ll index f34ac63fb82a0..47bed35fd42bc 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-3.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 23 for VF 2 For instruction: store i32 %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 48 for VF 4 For instruction: store i32 %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 96 for VF 8 For instruction: store i32 %v2, ptr %out2, align 4 -; SSE2: LV: Found an estimated cost of 192 for VF 16 For instruction: store i32 %v2, ptr %out2, align 4 +; SSE2: Cost of 23 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 48 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 96 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 192 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 17 for VF 2 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 28 for VF 4 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 57 for VF 8 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 114 for VF 16 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX1: LV: Found an estimated cost of 228 for VF 32 For instruction: store i32 %v2, ptr %out2, align 4 +; AVX1: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 57 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 114 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 228 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 7 for VF 2 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 7 for VF 4 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 14 for VF 8 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 28 for VF 16 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX2: LV: Found an estimated cost of 60 for VF 32 For instruction: store i32 %v2, ptr %out2, align 4 +; AVX2: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 14 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 28 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 60 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 2 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 4 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 8 for VF 8 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 12 for VF 16 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 24 for VF 32 For instruction: store i32 %v2, ptr %out2, align 4 -; AVX512: LV: Found an estimated cost of 48 for VF 64 For instruction: store i32 %v2, ptr %out2, align 4 +; AVX512: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 8 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 24 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 48 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-4.ll index 2d38f8fb4c4b3..6e19bc197e240 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-4.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 28 for VF 2 For instruction: store i32 %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 60 for VF 4 For instruction: store i32 %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 120 for VF 8 For instruction: store i32 %v3, ptr %out3, align 4 -; SSE2: LV: Found an estimated cost of 240 for VF 16 For instruction: store i32 %v3, ptr %out3, align 4 +; SSE2: Cost of 28 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 60 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 120 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 240 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 18 for VF 2 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 36 for VF 4 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 76 for VF 8 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 152 for VF 16 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX1: LV: Found an estimated cost of 304 for VF 32 For instruction: store i32 %v3, ptr %out3, align 4 +; AVX1: Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 36 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 76 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 152 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 304 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 6 for VF 2 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 4 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 20 for VF 8 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 40 for VF 16 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX2: LV: Found an estimated cost of 80 for VF 32 For instruction: store i32 %v3, ptr %out3, align 4 +; AVX2: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 20 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 40 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 80 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 2 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 5 for VF 4 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 11 for VF 8 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 22 for VF 16 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 44 for VF 32 For instruction: store i32 %v3, ptr %out3, align 4 -; AVX512: LV: Found an estimated cost of 88 for VF 64 For instruction: store i32 %v3, ptr %out3, align 4 +; AVX512: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 11 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 22 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 44 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 88 for VF 64: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-5.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-5.ll index 472990feb1df1..d109b746efc42 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-5.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-5.ll @@ -14,32 +14,32 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v4, ptr %out4, align 4 -; SSE2: LV: Found an estimated cost of 40 for VF 2 For instruction: store i32 %v4, ptr %out4, align 4 -; SSE2: LV: Found an estimated cost of 84 for VF 4 For instruction: store i32 %v4, ptr %out4, align 4 -; SSE2: LV: Found an estimated cost of 168 for VF 8 For instruction: store i32 %v4, ptr %out4, align 4 +; SSE2: Cost of 40 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 84 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 168 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 24 for VF 2 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 46 for VF 4 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 95 for VF 8 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX1: LV: Found an estimated cost of 190 for VF 16 For instruction: store i32 %v4, ptr %out4, align 4 +; AVX1: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 46 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 95 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 190 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 24 for VF 2 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 46 for VF 4 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 95 for VF 8 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX2: LV: Found an estimated cost of 190 for VF 16 For instruction: store i32 %v4, ptr %out4, align 4 +; AVX2: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 46 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 95 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 190 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 7 for VF 2 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 14 for VF 4 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 21 for VF 8 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 35 for VF 16 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 70 for VF 32 For instruction: store i32 %v4, ptr %out4, align 4 -; AVX512: LV: Found an estimated cost of 140 for VF 64 For instruction: store i32 %v4, ptr %out4, align 4 +; AVX512: Cost of 7 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 14 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 21 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 35 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 70 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 140 for VF 64: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-6.ll index e8d28b5475c9c..93ab0b7e10369 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-6.ll @@ -14,32 +14,32 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v5, ptr %out5, align 4 -; SSE2: LV: Found an estimated cost of 45 for VF 2 For instruction: store i32 %v5, ptr %out5, align 4 -; SSE2: LV: Found an estimated cost of 96 for VF 4 For instruction: store i32 %v5, ptr %out5, align 4 -; SSE2: LV: Found an estimated cost of 192 for VF 8 For instruction: store i32 %v5, ptr %out5, align 4 +; SSE2: Cost of 45 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 96 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 192 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 28 for VF 2 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 54 for VF 4 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 114 for VF 8 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX1: LV: Found an estimated cost of 228 for VF 16 For instruction: store i32 %v5, ptr %out5, align 4 +; AVX1: Cost of 28 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 54 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 114 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 228 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 11 for VF 2 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 15 for VF 4 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 39 for VF 8 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX2: LV: Found an estimated cost of 78 for VF 16 For instruction: store i32 %v5, ptr %out5, align 4 +; AVX2: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 15 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 39 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 78 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 8 for VF 2 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 17 for VF 4 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 25 for VF 8 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 51 for VF 16 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 102 for VF 32 For instruction: store i32 %v5, ptr %out5, align 4 -; AVX512: LV: Found an estimated cost of 204 for VF 64 For instruction: store i32 %v5, ptr %out5, align 4 +; AVX512: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 17 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 25 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 51 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 102 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 204 for VF 64: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-7.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-7.ll index 7901b55d516f4..8a01e2fbceaa2 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-7.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i32-stride-7.ll @@ -14,31 +14,31 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v6, ptr %out6, align 4 -; SSE2: LV: Found an estimated cost of 51 for VF 2 For instruction: store i32 %v6, ptr %out6, align 4 -; SSE2: LV: Found an estimated cost of 108 for VF 4 For instruction: store i32 %v6, ptr %out6, align 4 -; SSE2: LV: Found an estimated cost of 216 for VF 8 For instruction: store i32 %v6, ptr %out6, align 4 +; SSE2: Cost of 51 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 108 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 216 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 35 for VF 2 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 64 for VF 4 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 133 for VF 8 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX1: LV: Found an estimated cost of 266 for VF 16 For instruction: store i32 %v6, ptr %out6, align 4 +; AVX1: Cost of 35 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 64 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 133 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 266 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 35 for VF 2 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 64 for VF 4 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 133 for VF 8 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX2: LV: Found an estimated cost of 266 for VF 16 For instruction: store i32 %v6, ptr %out6, align 4 +; AVX2: Cost of 35 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 64 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 133 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 266 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 10 for VF 2 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 20 for VF 4 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 40 for VF 8 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 70 for VF 16 For instruction: store i32 %v6, ptr %out6, align 4 -; AVX512: LV: Found an estimated cost of 140 for VF 32 For instruction: store i32 %v6, ptr %out6, align 4 +; AVX512: Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 20 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 40 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 70 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 140 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-2.ll index a76b1ba9db8bb..895d7a7623dba 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-2.ll @@ -14,35 +14,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 14 for VF 2 For instruction: store i64 %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 28 for VF 4 For instruction: store i64 %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 56 for VF 8 For instruction: store i64 %v1, ptr %out1, align 8 -; SSE2: LV: Found an estimated cost of 112 for VF 16 For instruction: store i64 %v1, ptr %out1, align 8 +; SSE2: Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 28 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 56 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 112 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 10 for VF 2 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 22 for VF 4 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 44 for VF 8 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 88 for VF 16 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX1: LV: Found an estimated cost of 176 for VF 32 For instruction: store i64 %v1, ptr %out1, align 8 +; AVX1: Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 22 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 44 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 88 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 176 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 6 for VF 4 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 12 for VF 8 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 24 for VF 16 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX2: LV: Found an estimated cost of 48 for VF 32 For instruction: store i64 %v1, ptr %out1, align 8 +; AVX2: Cost of 3 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 6 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 12 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 24 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 48 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 2 for VF 2 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 2 for VF 4 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 5 for VF 8 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 10 for VF 16 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 20 for VF 32 For instruction: store i64 %v1, ptr %out1, align 8 -; AVX512: LV: Found an estimated cost of 40 for VF 64 For instruction: store i64 %v1, ptr %out1, align 8 +; AVX512: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 5 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 10 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 20 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512: Cost of 40 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-3.ll index 12af7eb263ac7..c4cc65212ffa9 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-3.ll @@ -14,32 +14,32 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v2, ptr %out2, align 8 -; SSE2: LV: Found an estimated cost of 22 for VF 2 For instruction: store i64 %v2, ptr %out2, align 8 -; SSE2: LV: Found an estimated cost of 44 for VF 4 For instruction: store i64 %v2, ptr %out2, align 8 -; SSE2: LV: Found an estimated cost of 88 for VF 8 For instruction: store i64 %v2, ptr %out2, align 8 +; SSE2: Cost of 22 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 88 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 16 for VF 2 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 33 for VF 4 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 66 for VF 8 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX1: LV: Found an estimated cost of 132 for VF 16 For instruction: store i64 %v2, ptr %out2, align 8 +; AVX1: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 33 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 66 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 132 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 6 for VF 2 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 9 for VF 4 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 18 for VF 8 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX2: LV: Found an estimated cost of 36 for VF 16 For instruction: store i64 %v2, ptr %out2, align 8 +; AVX2: Cost of 6 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 9 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 18 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 36 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 4 for VF 2 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 8 for VF 4 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 12 for VF 8 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 24 for VF 16 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 48 for VF 32 For instruction: store i64 %v2, ptr %out2, align 8 -; AVX512: LV: Found an estimated cost of 96 for VF 64 For instruction: store i64 %v2, ptr %out2, align 8 +; AVX512: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 12 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 24 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 48 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512: Cost of 96 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-4.ll index fff9767f2500f..6b7be24b54f6b 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-4.ll @@ -14,31 +14,31 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v3, ptr %out3, align 8 -; SSE2: LV: Found an estimated cost of 28 for VF 2 For instruction: store i64 %v3, ptr %out3, align 8 -; SSE2: LV: Found an estimated cost of 56 for VF 4 For instruction: store i64 %v3, ptr %out3, align 8 -; SSE2: LV: Found an estimated cost of 112 for VF 8 For instruction: store i64 %v3, ptr %out3, align 8 +; SSE2: Cost of 28 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 56 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 112 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 20 for VF 2 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 44 for VF 4 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 88 for VF 8 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX1: LV: Found an estimated cost of 176 for VF 16 For instruction: store i64 %v3, ptr %out3, align 8 +; AVX1: Cost of 20 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 44 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 88 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 176 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 8 for VF 2 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 12 for VF 4 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 28 for VF 8 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX2: LV: Found an estimated cost of 56 for VF 16 For instruction: store i64 %v3, ptr %out3, align 8 +; AVX2: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 12 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 28 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 56 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 5 for VF 2 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 11 for VF 4 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 22 for VF 8 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 44 for VF 16 For instruction: store i64 %v3, ptr %out3, align 8 -; AVX512: LV: Found an estimated cost of 88 for VF 32 For instruction: store i64 %v3, ptr %out3, align 8 +; AVX512: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 22 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 44 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512: Cost of 88 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-5.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-5.ll index 068eab2f3909b..52a4d4f9eb658 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-5.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-5.ll @@ -14,28 +14,28 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v4, ptr %out4, align 8 -; SSE2: LV: Found an estimated cost of 38 for VF 2 For instruction: store i64 %v4, ptr %out4, align 8 -; SSE2: LV: Found an estimated cost of 76 for VF 4 For instruction: store i64 %v4, ptr %out4, align 8 +; SSE2: Cost of 38 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 76 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX1: LV: Found an estimated cost of 26 for VF 2 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX1: LV: Found an estimated cost of 55 for VF 4 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX1: LV: Found an estimated cost of 110 for VF 8 For instruction: store i64 %v4, ptr %out4, align 8 +; AVX1: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 55 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 110 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX2: LV: Found an estimated cost of 26 for VF 2 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX2: LV: Found an estimated cost of 55 for VF 4 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX2: LV: Found an estimated cost of 110 for VF 8 For instruction: store i64 %v4, ptr %out4, align 8 +; AVX2: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 55 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 110 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 14 for VF 2 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 21 for VF 4 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 35 for VF 8 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 70 for VF 16 For instruction: store i64 %v4, ptr %out4, align 8 -; AVX512: LV: Found an estimated cost of 140 for VF 32 For instruction: store i64 %v4, ptr %out4, align 8 +; AVX512: Cost of 14 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 21 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 35 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 70 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512: Cost of 140 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-6.ll index 7de288fb52b37..14f36529a13b3 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-6.ll @@ -14,28 +14,28 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v5, ptr %out5, align 8 -; SSE2: LV: Found an estimated cost of 44 for VF 2 For instruction: store i64 %v5, ptr %out5, align 8 -; SSE2: LV: Found an estimated cost of 88 for VF 4 For instruction: store i64 %v5, ptr %out5, align 8 +; SSE2: Cost of 44 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 88 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX1: LV: Found an estimated cost of 30 for VF 2 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX1: LV: Found an estimated cost of 66 for VF 4 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX1: LV: Found an estimated cost of 132 for VF 8 For instruction: store i64 %v5, ptr %out5, align 8 +; AVX1: Cost of 30 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 66 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 132 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX2: LV: Found an estimated cost of 11 for VF 2 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX2: LV: Found an estimated cost of 21 for VF 4 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX2: LV: Found an estimated cost of 42 for VF 8 For instruction: store i64 %v5, ptr %out5, align 8 +; AVX2: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 21 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 42 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 17 for VF 2 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 25 for VF 4 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 51 for VF 8 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 102 for VF 16 For instruction: store i64 %v5, ptr %out5, align 8 -; AVX512: LV: Found an estimated cost of 204 for VF 32 For instruction: store i64 %v5, ptr %out5, align 8 +; AVX512: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 25 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 51 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 102 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512: Cost of 204 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-7.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-7.ll index 0a48220c57fa5..41a45a3072c95 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-7.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i64-stride-7.ll @@ -14,28 +14,28 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v6, ptr %out6, align 8 -; SSE2: LV: Found an estimated cost of 50 for VF 2 For instruction: store i64 %v6, ptr %out6, align 8 -; SSE2: LV: Found an estimated cost of 100 for VF 4 For instruction: store i64 %v6, ptr %out6, align 8 +; SSE2: Cost of 50 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 100 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX1: LV: Found an estimated cost of 36 for VF 2 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX1: LV: Found an estimated cost of 77 for VF 4 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX1: LV: Found an estimated cost of 154 for VF 8 For instruction: store i64 %v6, ptr %out6, align 8 +; AVX1: Cost of 36 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 77 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 154 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX2: LV: Found an estimated cost of 36 for VF 2 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX2: LV: Found an estimated cost of 77 for VF 4 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX2: LV: Found an estimated cost of 154 for VF 8 For instruction: store i64 %v6, ptr %out6, align 8 +; AVX2: Cost of 36 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 77 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 154 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 20 for VF 2 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 40 for VF 4 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 70 for VF 8 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 140 for VF 16 For instruction: store i64 %v6, ptr %out6, align 8 -; AVX512: LV: Found an estimated cost of 280 for VF 32 For instruction: store i64 %v6, ptr %out6, align 8 +; AVX512: Cost of 20 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 40 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 70 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 140 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512: Cost of 280 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-2.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-2.ll index 87fc6e1c581ac..78105db5e5ad3 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-2.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-2.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v1, ptr %out1, align 1 -; SSE2: LV: Found an estimated cost of 2 for VF 2 For instruction: store i8 %v1, ptr %out1, align 1 -; SSE2: LV: Found an estimated cost of 2 for VF 4 For instruction: store i8 %v1, ptr %out1, align 1 -; SSE2: LV: Found an estimated cost of 2 for VF 8 For instruction: store i8 %v1, ptr %out1, align 1 -; SSE2: LV: Found an estimated cost of 126 for VF 16 For instruction: store i8 %v1, ptr %out1, align 1 +; SSE2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; SSE2: Cost of 126 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX1: LV: Found an estimated cost of 2 for VF 2 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX1: LV: Found an estimated cost of 2 for VF 4 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX1: LV: Found an estimated cost of 2 for VF 8 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX1: LV: Found an estimated cost of 66 for VF 16 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX1: LV: Found an estimated cost of 134 for VF 32 For instruction: store i8 %v1, ptr %out1, align 1 +; AVX1: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 66 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX1: Cost of 134 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX2: LV: Found an estimated cost of 2 for VF 2 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX2: LV: Found an estimated cost of 2 for VF 4 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX2: LV: Found an estimated cost of 2 for VF 8 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX2: LV: Found an estimated cost of 4 for VF 16 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX2: LV: Found an estimated cost of 6 for VF 32 For instruction: store i8 %v1, ptr %out1, align 1 +; AVX2: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX2: Cost of 6 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512DQ: LV: Found an estimated cost of 2 for VF 2 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512DQ: LV: Found an estimated cost of 2 for VF 4 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512DQ: LV: Found an estimated cost of 2 for VF 8 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512DQ: LV: Found an estimated cost of 4 for VF 16 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 32 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512DQ: LV: Found an estimated cost of 270 for VF 64 For instruction: store i8 %v1, ptr %out1, align 1 +; AVX512DQ: Cost of 2 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 2 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 2 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 4 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 5 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512DQ: Cost of 270 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512BW: LV: Found an estimated cost of 4 for VF 2 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512BW: LV: Found an estimated cost of 4 for VF 4 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512BW: LV: Found an estimated cost of 4 for VF 8 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512BW: LV: Found an estimated cost of 8 for VF 16 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512BW: LV: Found an estimated cost of 20 for VF 32 For instruction: store i8 %v1, ptr %out1, align 1 -; AVX512BW: LV: Found an estimated cost of 41 for VF 64 For instruction: store i8 %v1, ptr %out1, align 1 +; AVX512BW: Cost of 4 for VF 2: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 4 for VF 4: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 4 for VF 8: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 8 for VF 16: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 20 for VF 32: INTERLEAVE-GROUP with factor 2 at , ir<%out0> +; AVX512BW: Cost of 41 for VF 64: INTERLEAVE-GROUP with factor 2 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-3.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-3.ll index 2cfd81ac65d5b..8e6892d0158e7 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-3.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-3.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v2, ptr %out2, align 1 -; SSE2: LV: Found an estimated cost of 26 for VF 2 For instruction: store i8 %v2, ptr %out2, align 1 -; SSE2: LV: Found an estimated cost of 52 for VF 4 For instruction: store i8 %v2, ptr %out2, align 1 -; SSE2: LV: Found an estimated cost of 101 for VF 8 For instruction: store i8 %v2, ptr %out2, align 1 -; SSE2: LV: Found an estimated cost of 204 for VF 16 For instruction: store i8 %v2, ptr %out2, align 1 +; SSE2: Cost of 26 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 52 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 101 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; SSE2: Cost of 204 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX1: LV: Found an estimated cost of 16 for VF 2 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX1: LV: Found an estimated cost of 27 for VF 4 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX1: LV: Found an estimated cost of 53 for VF 8 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX1: LV: Found an estimated cost of 100 for VF 16 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX1: LV: Found an estimated cost of 201 for VF 32 For instruction: store i8 %v2, ptr %out2, align 1 +; AVX1: Cost of 16 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 27 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 53 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 100 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX1: Cost of 201 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX2: LV: Found an estimated cost of 8 for VF 2 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX2: LV: Found an estimated cost of 7 for VF 4 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX2: LV: Found an estimated cost of 9 for VF 8 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX2: LV: Found an estimated cost of 13 for VF 16 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX2: LV: Found an estimated cost of 16 for VF 32 For instruction: store i8 %v2, ptr %out2, align 1 +; AVX2: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 9 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 13 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX2: Cost of 16 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512DQ: LV: Found an estimated cost of 8 for VF 2 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512DQ: LV: Found an estimated cost of 7 for VF 4 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512DQ: LV: Found an estimated cost of 9 for VF 8 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512DQ: LV: Found an estimated cost of 14 for VF 16 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512DQ: LV: Found an estimated cost of 15 for VF 32 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512DQ: LV: Found an estimated cost of 405 for VF 64 For instruction: store i8 %v2, ptr %out2, align 1 +; AVX512DQ: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 7 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 9 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 14 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 15 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512DQ: Cost of 405 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512BW: LV: Found an estimated cost of 8 for VF 2 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512BW: LV: Found an estimated cost of 8 for VF 4 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512BW: LV: Found an estimated cost of 16 for VF 8 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512BW: LV: Found an estimated cost of 13 for VF 16 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512BW: LV: Found an estimated cost of 16 for VF 32 For instruction: store i8 %v2, ptr %out2, align 1 -; AVX512BW: LV: Found an estimated cost of 29 for VF 64 For instruction: store i8 %v2, ptr %out2, align 1 +; AVX512BW: Cost of 8 for VF 2: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 8 for VF 4: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 16 for VF 8: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 13 for VF 16: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 16 for VF 32: INTERLEAVE-GROUP with factor 3 at , ir<%out0> +; AVX512BW: Cost of 29 for VF 64: INTERLEAVE-GROUP with factor 3 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-4.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-4.ll index 8365716ddbc14..3083dde7ac66f 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-4.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-4.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v3, ptr %out3, align 1 -; SSE2: LV: Found an estimated cost of 28 for VF 2 For instruction: store i8 %v3, ptr %out3, align 1 -; SSE2: LV: Found an estimated cost of 60 for VF 4 For instruction: store i8 %v3, ptr %out3, align 1 -; SSE2: LV: Found an estimated cost of 124 for VF 8 For instruction: store i8 %v3, ptr %out3, align 1 -; SSE2: LV: Found an estimated cost of 252 for VF 16 For instruction: store i8 %v3, ptr %out3, align 1 +; SSE2: Cost of 28 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 60 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 124 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; SSE2: Cost of 252 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX1: LV: Found an estimated cost of 17 for VF 2 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX1: LV: Found an estimated cost of 33 for VF 4 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX1: LV: Found an estimated cost of 66 for VF 8 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX1: LV: Found an estimated cost of 132 for VF 16 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX1: LV: Found an estimated cost of 268 for VF 32 For instruction: store i8 %v3, ptr %out3, align 1 +; AVX1: Cost of 17 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 33 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 66 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 132 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX1: Cost of 268 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX2: LV: Found an estimated cost of 5 for VF 2 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX2: LV: Found an estimated cost of 5 for VF 4 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX2: LV: Found an estimated cost of 5 for VF 8 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX2: LV: Found an estimated cost of 10 for VF 16 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX2: LV: Found an estimated cost of 16 for VF 32 For instruction: store i8 %v3, ptr %out3, align 1 +; AVX2: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 5 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 10 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX2: Cost of 16 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 2 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 4 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512DQ: LV: Found an estimated cost of 5 for VF 8 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512DQ: LV: Found an estimated cost of 9 for VF 16 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512DQ: LV: Found an estimated cost of 14 for VF 32 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512DQ: LV: Found an estimated cost of 540 for VF 64 For instruction: store i8 %v3, ptr %out3, align 1 +; AVX512DQ: Cost of 5 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 5 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 5 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 9 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 14 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512DQ: Cost of 540 for VF 64: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512BW: LV: Found an estimated cost of 11 for VF 2 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512BW: LV: Found an estimated cost of 11 for VF 4 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512BW: LV: Found an estimated cost of 11 for VF 8 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512BW: LV: Found an estimated cost of 12 for VF 16 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512BW: LV: Found an estimated cost of 16 for VF 32 For instruction: store i8 %v3, ptr %out3, align 1 -; AVX512BW: LV: Found an estimated cost of 28 for VF 64 For instruction: store i8 %v3, ptr %out3, align 1 +; AVX512BW: Cost of 11 for VF 2: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 11 for VF 4: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 11 for VF 8: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 12 for VF 16: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 16 for VF 32: INTERLEAVE-GROUP with factor 4 at , ir<%out0> +; AVX512BW: Cost of 28 for VF 64: INTERLEAVE-GROUP with factor 4 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-5.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-5.ll index eef594d855d3d..d788a7b8d469e 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-5.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-5.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v4, ptr %out4, align 1 -; SSE2: LV: Found an estimated cost of 44 for VF 2 For instruction: store i8 %v4, ptr %out4, align 1 -; SSE2: LV: Found an estimated cost of 87 for VF 4 For instruction: store i8 %v4, ptr %out4, align 1 -; SSE2: LV: Found an estimated cost of 178 for VF 8 For instruction: store i8 %v4, ptr %out4, align 1 -; SSE2: LV: Found an estimated cost of 360 for VF 16 For instruction: store i8 %v4, ptr %out4, align 1 +; SSE2: Cost of 44 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 87 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 178 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; SSE2: Cost of 360 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX1: LV: Found an estimated cost of 24 for VF 2 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX1: LV: Found an estimated cost of 46 for VF 4 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX1: LV: Found an estimated cost of 84 for VF 8 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX1: LV: Found an estimated cost of 166 for VF 16 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX1: LV: Found an estimated cost of 335 for VF 32 For instruction: store i8 %v4, ptr %out4, align 1 +; AVX1: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 46 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 84 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 166 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX1: Cost of 335 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX2: LV: Found an estimated cost of 24 for VF 2 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX2: LV: Found an estimated cost of 46 for VF 4 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX2: LV: Found an estimated cost of 84 for VF 8 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX2: LV: Found an estimated cost of 166 for VF 16 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX2: LV: Found an estimated cost of 335 for VF 32 For instruction: store i8 %v4, ptr %out4, align 1 +; AVX2: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 46 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 84 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 166 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX2: Cost of 335 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512DQ: LV: Found an estimated cost of 24 for VF 2 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512DQ: LV: Found an estimated cost of 46 for VF 4 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512DQ: LV: Found an estimated cost of 87 for VF 8 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512DQ: LV: Found an estimated cost of 166 for VF 16 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512DQ: LV: Found an estimated cost of 336 for VF 32 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512DQ: LV: Found an estimated cost of 675 for VF 64 For instruction: store i8 %v4, ptr %out4, align 1 +; AVX512DQ: Cost of 24 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 46 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 87 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 166 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 336 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512DQ: Cost of 675 for VF 64: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512BW: LV: Found an estimated cost of 15 for VF 2 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512BW: LV: Found an estimated cost of 31 for VF 4 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512BW: LV: Found an estimated cost of 79 for VF 8 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512BW: LV: Found an estimated cost of 158 for VF 16 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512BW: LV: Found an estimated cost of 237 for VF 32 For instruction: store i8 %v4, ptr %out4, align 1 -; AVX512BW: LV: Found an estimated cost of 395 for VF 64 For instruction: store i8 %v4, ptr %out4, align 1 +; AVX512BW: Cost of 15 for VF 2: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 31 for VF 4: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 79 for VF 8: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 158 for VF 16: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 237 for VF 32: INTERLEAVE-GROUP with factor 5 at , ir<%out0> +; AVX512BW: Cost of 395 for VF 64: INTERLEAVE-GROUP with factor 5 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-6.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-6.ll index 4d91fa0dd83bf..f3ec189573a77 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-6.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-6.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v5, ptr %out5, align 1 -; SSE2: LV: Found an estimated cost of 49 for VF 2 For instruction: store i8 %v5, ptr %out5, align 1 -; SSE2: LV: Found an estimated cost of 98 for VF 4 For instruction: store i8 %v5, ptr %out5, align 1 -; SSE2: LV: Found an estimated cost of 201 for VF 8 For instruction: store i8 %v5, ptr %out5, align 1 -; SSE2: LV: Found an estimated cost of 408 for VF 16 For instruction: store i8 %v5, ptr %out5, align 1 +; SSE2: Cost of 49 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 98 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 201 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; SSE2: Cost of 408 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX1: LV: Found an estimated cost of 27 for VF 2 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX1: LV: Found an estimated cost of 53 for VF 4 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX1: LV: Found an estimated cost of 100 for VF 8 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX1: LV: Found an estimated cost of 198 for VF 16 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX1: LV: Found an estimated cost of 402 for VF 32 For instruction: store i8 %v5, ptr %out5, align 1 +; AVX1: Cost of 27 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 53 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 100 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 198 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX1: Cost of 402 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX2: LV: Found an estimated cost of 10 for VF 2 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX2: LV: Found an estimated cost of 12 for VF 4 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX2: LV: Found an estimated cost of 18 for VF 8 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX2: LV: Found an estimated cost of 30 for VF 16 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX2: LV: Found an estimated cost of 96 for VF 32 For instruction: store i8 %v5, ptr %out5, align 1 +; AVX2: Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 12 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 18 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 30 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX2: Cost of 96 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512DQ: LV: Found an estimated cost of 10 for VF 2 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512DQ: LV: Found an estimated cost of 12 for VF 4 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512DQ: LV: Found an estimated cost of 19 for VF 8 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512DQ: LV: Found an estimated cost of 29 for VF 16 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512DQ: LV: Found an estimated cost of 93 for VF 32 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512DQ: LV: Found an estimated cost of 810 for VF 64 For instruction: store i8 %v5, ptr %out5, align 1 +; AVX512DQ: Cost of 10 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 12 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 19 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 29 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 93 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512DQ: Cost of 810 for VF 64: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512BW: LV: Found an estimated cost of 18 for VF 2 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512BW: LV: Found an estimated cost of 38 for VF 4 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512BW: LV: Found an estimated cost of 98 for VF 8 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512BW: LV: Found an estimated cost of 197 for VF 16 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512BW: LV: Found an estimated cost of 295 for VF 32 For instruction: store i8 %v5, ptr %out5, align 1 -; AVX512BW: LV: Found an estimated cost of 591 for VF 64 For instruction: store i8 %v5, ptr %out5, align 1 +; AVX512BW: Cost of 18 for VF 2: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 38 for VF 4: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 98 for VF 8: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 197 for VF 16: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 295 for VF 32: INTERLEAVE-GROUP with factor 6 at , ir<%out0> +; AVX512BW: Cost of 591 for VF 64: INTERLEAVE-GROUP with factor 6 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-7.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-7.ll index 5c7a6a8796234..ed04d806bf415 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-7.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/interleaved-store-i8-stride-7.ll @@ -15,44 +15,44 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE2-LABEL: 'test' ; SSE2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v6, ptr %out6, align 1 -; SSE2: LV: Found an estimated cost of 57 for VF 2 For instruction: store i8 %v6, ptr %out6, align 1 -; SSE2: LV: Found an estimated cost of 112 for VF 4 For instruction: store i8 %v6, ptr %out6, align 1 -; SSE2: LV: Found an estimated cost of 225 for VF 8 For instruction: store i8 %v6, ptr %out6, align 1 -; SSE2: LV: Found an estimated cost of 456 for VF 16 For instruction: store i8 %v6, ptr %out6, align 1 +; SSE2: Cost of 57 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 112 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 225 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; SSE2: Cost of 456 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX1: LV: Found an estimated cost of 34 for VF 2 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX1: LV: Found an estimated cost of 63 for VF 4 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX1: LV: Found an estimated cost of 119 for VF 8 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX1: LV: Found an estimated cost of 232 for VF 16 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX1: LV: Found an estimated cost of 469 for VF 32 For instruction: store i8 %v6, ptr %out6, align 1 +; AVX1: Cost of 34 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 63 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 119 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 232 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX1: Cost of 469 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX2: LV: Found an estimated cost of 34 for VF 2 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX2: LV: Found an estimated cost of 63 for VF 4 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX2: LV: Found an estimated cost of 119 for VF 8 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX2: LV: Found an estimated cost of 232 for VF 16 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX2: LV: Found an estimated cost of 469 for VF 32 For instruction: store i8 %v6, ptr %out6, align 1 +; AVX2: Cost of 34 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 63 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 119 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 232 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX2: Cost of 469 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512DQ-LABEL: 'test' ; AVX512DQ: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512DQ: LV: Found an estimated cost of 34 for VF 2 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512DQ: LV: Found an estimated cost of 63 for VF 4 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512DQ: LV: Found an estimated cost of 121 for VF 8 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512DQ: LV: Found an estimated cost of 234 for VF 16 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512DQ: LV: Found an estimated cost of 470 for VF 32 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512DQ: LV: Found an estimated cost of 945 for VF 64 For instruction: store i8 %v6, ptr %out6, align 1 +; AVX512DQ: Cost of 34 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 63 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 121 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 234 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 470 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512DQ: Cost of 945 for VF 64: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; ; AVX512BW-LABEL: 'test' ; AVX512BW: LV: Found an estimated cost of 1 for VF 1 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512BW: LV: Found an estimated cost of 22 for VF 2 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512BW: LV: Found an estimated cost of 46 for VF 4 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512BW: LV: Found an estimated cost of 118 for VF 8 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512BW: LV: Found an estimated cost of 236 for VF 16 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512BW: LV: Found an estimated cost of 472 for VF 32 For instruction: store i8 %v6, ptr %out6, align 1 -; AVX512BW: LV: Found an estimated cost of 826 for VF 64 For instruction: store i8 %v6, ptr %out6, align 1 +; AVX512BW: Cost of 22 for VF 2: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 46 for VF 4: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 118 for VF 8: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 236 for VF 16: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 472 for VF 32: INTERLEAVE-GROUP with factor 7 at , ir<%out0> +; AVX512BW: Cost of 826 for VF 64: INTERLEAVE-GROUP with factor 7 at , ir<%out0> ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i32-with-i8-index.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i32-with-i8-index.ll index b62d3fb250915..d3d439f37c440 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i32-with-i8-index.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i32-with-i8-index.ll @@ -18,43 +18,43 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE-LABEL: 'test' ; SSE: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; SSE: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; AVX1: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-SLOWGATHER-LABEL: 'test' ; AVX2-SLOWGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; AVX2-SLOWGATHER: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-FASTGATHER-LABEL: 'test' ; AVX2-FASTGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 6 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 12 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 24 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2-FASTGATHER: LV: Found an estimated cost of 48 for VF 32 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; AVX2-FASTGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 6 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 12 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 24 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 48 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 8 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 17 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 10 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 18 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 36 for VF 32 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 72 for VF 64 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; AVX512: Cost of 8 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 17 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 10 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 18 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 36 for VF 32: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 72 for VF 64: {{.*}}ir<%valB.loaded> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i64-with-i8-index.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i64-with-i8-index.ll index 1d3e45765e511..f1dec928391eb 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i64-with-i8-index.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-gather-i64-with-i8-index.ll @@ -18,43 +18,43 @@ target triple = "x86_64-unknown-linux-gnu" define void @test() { ; SSE-LABEL: 'test' ; SSE: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; SSE: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; AVX1: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-SLOWGATHER-LABEL: 'test' ; AVX2-SLOWGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-SLOWGATHER: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; AVX2-SLOWGATHER: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2-SLOWGATHER: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-FASTGATHER-LABEL: 'test' ; AVX2-FASTGATHER: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 4 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 6 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 12 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 24 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2-FASTGATHER: LV: Found an estimated cost of 48 for VF 32 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; AVX2-FASTGATHER: Cost of 4 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 6 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 12 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 24 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2-FASTGATHER: Cost of 48 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 8 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 18 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 10 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 20 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 40 for VF 32 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 80 for VF 64 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; AVX512: Cost of 8 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 18 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 10 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 20 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 40 for VF 32: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 80 for VF 64: {{.*}}ir<%valB.loaded> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll index 2b34f5a9a6967..5f910a6dfaa61 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i16.ll @@ -17,35 +17,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test(ptr %B) { ; SSE-LABEL: 'test' ; SSE: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; SSE: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i16, ptr %inB, align 2 +; SSE: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX1: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i16, ptr %inB, align 2 +; AVX1: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX2: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX2: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX2: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX2: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX2: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i16, ptr %inB, align 2 +; AVX2: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 2 for VF 2 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 2 for VF 4 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 1 for VF 8 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 1 for VF 16 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 1 for VF 32 For instruction: %valB.loaded = load i16, ptr %inB, align 2 -; AVX512: LV: Found an estimated cost of 2 for VF 64 For instruction: %valB.loaded = load i16, ptr %inB, align 2 +; AVX512: Cost of 2 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 2 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 32: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 2 for VF 64: {{.*}}ir<%valB.loaded> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll index 62e7b1eb1000a..095444a727fe8 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i32.ll @@ -17,35 +17,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test(ptr %B) { ; SSE-LABEL: 'test' ; SSE: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; SSE: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; SSE: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 3 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 2 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 2 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 4 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX1: LV: Found an estimated cost of 8 for VF 32 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; AVX1: Cost of 3 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 2 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 2 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 4 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 8 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2: LV: Found an estimated cost of 3 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2: LV: Found an estimated cost of 2 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2: LV: Found an estimated cost of 2 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2: LV: Found an estimated cost of 4 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX2: LV: Found an estimated cost of 8 for VF 32 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; AVX2: Cost of 3 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 2 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 2 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 4 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 8 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 2 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 4 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 8 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 1 for VF 16 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 2 for VF 32 For instruction: %valB.loaded = load i32, ptr %inB, align 4 -; AVX512: LV: Found an estimated cost of 4 for VF 64 For instruction: %valB.loaded = load i32, ptr %inB, align 4 +; AVX512: Cost of 2 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 2 for VF 32: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 4 for VF 64: {{.*}}ir<%valB.loaded> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll index bc7adc9b9cff1..cd161fcdeaeae 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i64.ll @@ -17,35 +17,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test(ptr %B) { ; SSE-LABEL: 'test' ; SSE: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; SSE: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; SSE: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 2 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 2 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 4 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 8 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX1: LV: Found an estimated cost of 16 for VF 32 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; AVX1: Cost of 2 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 2 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 4 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 8 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 16 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2: LV: Found an estimated cost of 2 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2: LV: Found an estimated cost of 2 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2: LV: Found an estimated cost of 4 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2: LV: Found an estimated cost of 8 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX2: LV: Found an estimated cost of 16 for VF 32 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; AVX2: Cost of 2 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 2 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 4 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 8 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 16 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 1 for VF 2 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 1 for VF 4 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 1 for VF 8 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 2 for VF 16 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 4 for VF 32 For instruction: %valB.loaded = load i64, ptr %inB, align 8 -; AVX512: LV: Found an estimated cost of 8 for VF 64 For instruction: %valB.loaded = load i64, ptr %inB, align 8 +; AVX512: Cost of 1 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 2 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 4 for VF 32: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 8 for VF 64: {{.*}}ir<%valB.loaded> = load ; entry: br label %for.body diff --git a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll index e623047cf8c8d..4c2cbc41e53ff 100644 --- a/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll +++ b/llvm/test/Transforms/LoopVectorize/X86/CostModel/masked-load-i8.ll @@ -17,35 +17,35 @@ target triple = "x86_64-unknown-linux-gnu" define void @test(ptr %B) { ; SSE-LABEL: 'test' ; SSE: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; SSE: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; SSE: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; SSE: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; SSE: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i8, ptr %inB, align 1 +; SSE: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; SSE: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load ; ; AVX1-LABEL: 'test' ; AVX1: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX1: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i8, ptr %inB, align 1 +; AVX1: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX1: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX2-LABEL: 'test' ; AVX2: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX2: LV: Found an estimated cost of 3000000 for VF 2 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX2: LV: Found an estimated cost of 3000000 for VF 4 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX2: LV: Found an estimated cost of 3000000 for VF 8 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX2: LV: Found an estimated cost of 3000000 for VF 16 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX2: LV: Found an estimated cost of 3000000 for VF 32 For instruction: %valB.loaded = load i8, ptr %inB, align 1 +; AVX2: Cost of 3000000 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX2: Cost of 3000000 for VF 32: {{.*}}ir<%valB.loaded> = load ; ; AVX512-LABEL: 'test' ; AVX512: LV: Found an estimated cost of 1 for VF 1 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 2 for VF 2 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 2 for VF 4 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 2 for VF 8 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 1 for VF 16 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 1 for VF 32 For instruction: %valB.loaded = load i8, ptr %inB, align 1 -; AVX512: LV: Found an estimated cost of 1 for VF 64 For instruction: %valB.loaded = load i8, ptr %inB, align 1 +; AVX512: Cost of 2 for VF 2: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 2 for VF 4: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 2 for VF 8: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 16: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 32: {{.*}}ir<%valB.loaded> = load +; AVX512: Cost of 1 for VF 64: {{.*}}ir<%valB.loaded> = load ; entry: br label %for.body