; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+sse2 | FileCheck %s --check-prefixes=SSE2 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+sse3 | FileCheck %s --check-prefixes=SSE3 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+ssse3 | FileCheck %s --check-prefixes=SSSE3 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+sse4.1| FileCheck %s --check-prefixes=SSE41 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+sse4.2 | FileCheck %s --check-prefixes=SSE42 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+avx | FileCheck %s --check-prefixes=AVX ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+avx2 | FileCheck %s --check-prefixes=AVX ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+avx512f | FileCheck %s --check-prefixes=AVX512FVEC512 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+avx512f,+avx512vl,+prefer-256-bit | FileCheck %s --check-prefixes=AVX512FVEC256 define void @replication_i32_stride2() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i32_stride2' ; SSE2-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; SSE2-NEXT: Cost Model: Found costs of 21 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; SSE2-NEXT: Cost Model: Found costs of 42 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 84 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 168 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i32_stride2' ; SSE3-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; SSE3-NEXT: Cost Model: Found costs of 21 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; SSE3-NEXT: Cost Model: Found costs of 42 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 84 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 168 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i32_stride2' ; SSSE3-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 21 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 42 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 84 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 168 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i32_stride2' ; SSE41-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; SSE41-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; SSE41-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i32_stride2' ; SSE42-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; SSE42-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; SSE42-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i32_stride2' ; AVX-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; AVX-NEXT: Cost Model: Found costs of 13 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; AVX-NEXT: Cost Model: Found costs of 27 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 54 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 108 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i32_stride2' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i32_stride2' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:24 SizeLat:8 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <4 x i32> %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <8 x i32> %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <16 x i32> %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <32 x i32> %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <64 x i32> ret void } define void @replication_i32_stride3() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i32_stride3' ; SSE2-NEXT: Cost Model: Found costs of 15 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; SSE2-NEXT: Cost Model: Found costs of 31 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; SSE2-NEXT: Cost Model: Found costs of 62 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; SSE2-NEXT: Cost Model: Found costs of 124 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; SSE2-NEXT: Cost Model: Found costs of 248 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i32_stride3' ; SSE3-NEXT: Cost Model: Found costs of 15 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; SSE3-NEXT: Cost Model: Found costs of 31 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; SSE3-NEXT: Cost Model: Found costs of 62 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; SSE3-NEXT: Cost Model: Found costs of 124 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; SSE3-NEXT: Cost Model: Found costs of 248 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i32_stride3' ; SSSE3-NEXT: Cost Model: Found costs of 15 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 31 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 62 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 124 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 248 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i32_stride3' ; SSE41-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; SSE41-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; SSE41-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; SSE41-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; SSE41-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i32_stride3' ; SSE42-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; SSE42-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; SSE42-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; SSE42-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; SSE42-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i32_stride3' ; AVX-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; AVX-NEXT: Cost Model: Found costs of 18 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; AVX-NEXT: Cost Model: Found costs of 36 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; AVX-NEXT: Cost Model: Found costs of 72 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; AVX-NEXT: Cost Model: Found costs of 144 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i32_stride3' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:9 SizeLat:3 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:6 CodeSize:6 Lat:18 SizeLat:6 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i32_stride3' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:9 SizeLat:3 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:6 CodeSize:6 Lat:18 SizeLat:6 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:12 CodeSize:12 Lat:36 SizeLat:12 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <6 x i32> %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <12 x i32> %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <24 x i32> %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <48 x i32> %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <96 x i32> ret void } define void @replication_i32_stride4() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i32_stride4' ; SSE2-NEXT: Cost Model: Found costs of 17 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; SSE2-NEXT: Cost Model: Found costs of 35 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 70 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 140 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 280 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i32_stride4' ; SSE3-NEXT: Cost Model: Found costs of 17 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; SSE3-NEXT: Cost Model: Found costs of 35 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 70 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 140 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 280 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i32_stride4' ; SSSE3-NEXT: Cost Model: Found costs of 17 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 35 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 70 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 140 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 280 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i32_stride4' ; SSE41-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; SSE41-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i32_stride4' ; SSE42-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; SSE42-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i32_stride4' ; AVX-NEXT: Cost Model: Found costs of 11 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; AVX-NEXT: Cost Model: Found costs of 22 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 45 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 90 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 180 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i32_stride4' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:24 SizeLat:8 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i32_stride4' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:24 SizeLat:8 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:48 SizeLat:16 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <8 x i32> %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <16 x i32> %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <32 x i32> %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <64 x i32> %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <128 x i32> ret void } define void @replication_i32_stride5() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i32_stride5' ; SSE2-NEXT: Cost Model: Found costs of 25 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; SSE2-NEXT: Cost Model: Found costs of 51 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; SSE2-NEXT: Cost Model: Found costs of 102 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; SSE2-NEXT: Cost Model: Found costs of 204 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; SSE2-NEXT: Cost Model: Found costs of 408 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i32_stride5' ; SSE3-NEXT: Cost Model: Found costs of 25 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; SSE3-NEXT: Cost Model: Found costs of 51 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; SSE3-NEXT: Cost Model: Found costs of 102 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; SSE3-NEXT: Cost Model: Found costs of 204 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; SSE3-NEXT: Cost Model: Found costs of 408 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i32_stride5' ; SSSE3-NEXT: Cost Model: Found costs of 25 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 51 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 102 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 204 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 408 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i32_stride5' ; SSE41-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; SSE41-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; SSE41-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; SSE41-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; SSE41-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i32_stride5' ; SSE42-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; SSE42-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; SSE42-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; SSE42-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; SSE42-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i32_stride5' ; AVX-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; AVX-NEXT: Cost Model: Found costs of 27 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; AVX-NEXT: Cost Model: Found costs of 54 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; AVX-NEXT: Cost Model: Found costs of 108 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; AVX-NEXT: Cost Model: Found costs of 216 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i32_stride5' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:9 SizeLat:3 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:5 CodeSize:5 Lat:15 SizeLat:5 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:10 CodeSize:10 Lat:30 SizeLat:10 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i32_stride5' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:9 SizeLat:3 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:5 CodeSize:5 Lat:15 SizeLat:5 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:10 CodeSize:10 Lat:30 SizeLat:10 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:20 CodeSize:20 Lat:60 SizeLat:20 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <10 x i32> %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <20 x i32> %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <40 x i32> %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <80 x i32> %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <160 x i32> ret void } define void @replication_i32_stride6() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i32_stride6' ; SSE2-NEXT: Cost Model: Found costs of 27 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; SSE2-NEXT: Cost Model: Found costs of 55 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; SSE2-NEXT: Cost Model: Found costs of 110 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; SSE2-NEXT: Cost Model: Found costs of 220 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; SSE2-NEXT: Cost Model: Found costs of 440 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i32_stride6' ; SSE3-NEXT: Cost Model: Found costs of 27 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; SSE3-NEXT: Cost Model: Found costs of 55 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; SSE3-NEXT: Cost Model: Found costs of 110 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; SSE3-NEXT: Cost Model: Found costs of 220 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; SSE3-NEXT: Cost Model: Found costs of 440 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i32_stride6' ; SSSE3-NEXT: Cost Model: Found costs of 27 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 55 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 110 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 220 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 440 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i32_stride6' ; SSE41-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; SSE41-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; SSE41-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; SSE41-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; SSE41-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i32_stride6' ; SSE42-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; SSE42-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; SSE42-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; SSE42-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; SSE42-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i32_stride6' ; AVX-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; AVX-NEXT: Cost Model: Found costs of 31 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; AVX-NEXT: Cost Model: Found costs of 63 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; AVX-NEXT: Cost Model: Found costs of 126 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; AVX-NEXT: Cost Model: Found costs of 252 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i32_stride6' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:9 SizeLat:3 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:6 CodeSize:6 Lat:18 SizeLat:6 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:12 CodeSize:12 Lat:36 SizeLat:12 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i32_stride6' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:9 SizeLat:3 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:6 CodeSize:6 Lat:18 SizeLat:6 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:12 CodeSize:12 Lat:36 SizeLat:12 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:24 CodeSize:24 Lat:72 SizeLat:24 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <12 x i32> %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <24 x i32> %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <48 x i32> %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <96 x i32> %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <192 x i32> ret void } define void @replication_i32_stride7() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i32_stride7' ; SSE2-NEXT: Cost Model: Found costs of 29 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; SSE2-NEXT: Cost Model: Found costs of 59 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; SSE2-NEXT: Cost Model: Found costs of 118 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; SSE2-NEXT: Cost Model: Found costs of 236 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; SSE2-NEXT: Cost Model: Found costs of 472 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i32_stride7' ; SSE3-NEXT: Cost Model: Found costs of 29 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; SSE3-NEXT: Cost Model: Found costs of 59 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; SSE3-NEXT: Cost Model: Found costs of 118 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; SSE3-NEXT: Cost Model: Found costs of 236 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; SSE3-NEXT: Cost Model: Found costs of 472 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i32_stride7' ; SSSE3-NEXT: Cost Model: Found costs of 29 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 59 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 118 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 236 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 472 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i32_stride7' ; SSE41-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; SSE41-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; SSE41-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; SSE41-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; SSE41-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i32_stride7' ; SSE42-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; SSE42-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; SSE42-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; SSE42-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; SSE42-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i32_stride7' ; AVX-NEXT: Cost Model: Found costs of 19 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; AVX-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; AVX-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; AVX-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; AVX-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i32_stride7' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:7 Lat:21 SizeLat:7 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:14 CodeSize:14 Lat:42 SizeLat:14 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i32_stride7' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:7 CodeSize:7 Lat:21 SizeLat:7 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:14 CodeSize:14 Lat:42 SizeLat:14 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:28 CodeSize:28 Lat:84 SizeLat:28 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <14 x i32> %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <28 x i32> %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <56 x i32> %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <112 x i32> %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <224 x i32> ret void } define void @replication_i32_stride8() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i32_stride8' ; SSE2-NEXT: Cost Model: Found costs of 31 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 63 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 126 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 252 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; SSE2-NEXT: Cost Model: Found costs of 504 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i32_stride8' ; SSE3-NEXT: Cost Model: Found costs of 31 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 63 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 126 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 252 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; SSE3-NEXT: Cost Model: Found costs of 504 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i32_stride8' ; SSSE3-NEXT: Cost Model: Found costs of 31 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 63 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 126 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 252 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 504 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i32_stride8' ; SSE41-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; SSE41-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i32_stride8' ; SSE42-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; SSE42-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i32_stride8' ; AVX-NEXT: Cost Model: Found costs of 20 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 40 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 81 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 162 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; AVX-NEXT: Cost Model: Found costs of 324 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i32_stride8' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:24 SizeLat:8 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:48 SizeLat:16 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i32_stride8' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:2 CodeSize:2 Lat:6 SizeLat:2 for: %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:4 Lat:12 SizeLat:4 for: %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:8 CodeSize:8 Lat:24 SizeLat:8 for: %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:16 CodeSize:16 Lat:48 SizeLat:16 for: %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:32 CodeSize:32 Lat:96 SizeLat:32 for: %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i32> undef, <2 x i32> poison, <16 x i32> %vf4 = shufflevector <4 x i32> undef, <4 x i32> poison, <32 x i32> %vf8 = shufflevector <8 x i32> undef, <8 x i32> poison, <64 x i32> %vf16 = shufflevector <16 x i32> undef, <16 x i32> poison, <128 x i32> %vf32 = shufflevector <32 x i32> undef, <32 x i32> poison, <256 x i32> ret void }