; 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 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+avx512f,+avx512bw,+avx512vbmi | FileCheck %s --check-prefixes=AVX512VBMIVEC512 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+avx512f,+avx512bw,+avx512vbmi,+avx512vl,+prefer-256-bit | FileCheck %s --check-prefixes=AVX512VBMIVEC256 define void @replication_i8_stride2() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i8_stride2' ; SSE2-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; SSE2-NEXT: Cost Model: Found costs of 22 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; SSE2-NEXT: Cost Model: Found costs of 46 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 93 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 186 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 372 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; SSE2-NEXT: Cost Model: Found costs of 744 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> 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_i8_stride2' ; SSE3-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; SSE3-NEXT: Cost Model: Found costs of 22 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; SSE3-NEXT: Cost Model: Found costs of 46 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 93 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 186 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 372 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; SSE3-NEXT: Cost Model: Found costs of 744 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> 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_i8_stride2' ; SSSE3-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 22 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 46 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 93 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 186 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 372 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 744 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> 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_i8_stride2' ; SSE41-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; SSE41-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; SSE41-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 192 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; SSE41-NEXT: Cost Model: Found costs of 384 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> 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_i8_stride2' ; SSE42-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; SSE42-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; SSE42-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 192 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; SSE42-NEXT: Cost Model: Found costs of 384 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> 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_i8_stride2' ; AVX-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; AVX-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; AVX-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 49 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 99 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 198 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; AVX-NEXT: Cost Model: Found costs of 396 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> 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_i8_stride2' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:15 CodeSize:9 Lat:17 SizeLat:9 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:31 CodeSize:17 Lat:33 SizeLat:17 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:62 CodeSize:33 Lat:65 SizeLat:33 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> 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_i8_stride2' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:7 CodeSize:4 Lat:8 SizeLat:4 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:15 CodeSize:7 Lat:15 SizeLat:7 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:31 CodeSize:10 Lat:26 SizeLat:10 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:62 CodeSize:18 Lat:50 SizeLat:18 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:124 CodeSize:34 Lat:98 SizeLat:34 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <256 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC512-LABEL: 'replication_i8_stride2' ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 2 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 4 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <256 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC256-LABEL: 'replication_i8_stride2' ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 1 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 2 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 4 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 8 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <256 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <4 x i32> %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <8 x i32> %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <16 x i32> %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <32 x i32> %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <64 x i32> %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <128 x i32> %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <256 x i32> ret void } define void @replication_i8_stride3() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i8_stride3' ; SSE2-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; SSE2-NEXT: Cost Model: Found costs of 34 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; SSE2-NEXT: Cost Model: Found costs of 69 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; SSE2-NEXT: Cost Model: Found costs of 139 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; SSE2-NEXT: Cost Model: Found costs of 278 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; SSE2-NEXT: Cost Model: Found costs of 556 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; SSE2-NEXT: Cost Model: Found costs of 1112 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i8_stride3' ; SSE3-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; SSE3-NEXT: Cost Model: Found costs of 34 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; SSE3-NEXT: Cost Model: Found costs of 69 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; SSE3-NEXT: Cost Model: Found costs of 139 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; SSE3-NEXT: Cost Model: Found costs of 278 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; SSE3-NEXT: Cost Model: Found costs of 556 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; SSE3-NEXT: Cost Model: Found costs of 1112 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i8_stride3' ; SSSE3-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 34 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 69 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 139 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 278 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 556 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 1112 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i8_stride3' ; SSE41-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; SSE41-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; SSE41-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; SSE41-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; SSE41-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; SSE41-NEXT: Cost Model: Found costs of 256 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; SSE41-NEXT: Cost Model: Found costs of 512 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i8_stride3' ; SSE42-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; SSE42-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; SSE42-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; SSE42-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; SSE42-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; SSE42-NEXT: Cost Model: Found costs of 256 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; SSE42-NEXT: Cost Model: Found costs of 512 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i8_stride3' ; AVX-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; AVX-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; AVX-NEXT: Cost Model: Found costs of 34 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; AVX-NEXT: Cost Model: Found costs of 66 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; AVX-NEXT: Cost Model: Found costs of 132 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; AVX-NEXT: Cost Model: Found costs of 264 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; AVX-NEXT: Cost Model: Found costs of 528 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i8_stride3' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:12 CodeSize:8 Lat:14 SizeLat:8 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:25 CodeSize:15 Lat:27 SizeLat:15 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:51 CodeSize:29 Lat:53 SizeLat:29 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:102 CodeSize:57 Lat:105 SizeLat:57 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i8_stride3' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:6 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:11 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:55 CodeSize:5 Lat:11 SizeLat:5 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:107 CodeSize:9 Lat:21 SizeLat:9 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:215 CodeSize:14 Lat:38 SizeLat:14 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:430 CodeSize:26 Lat:74 SizeLat:26 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:860 CodeSize:50 Lat:146 SizeLat:50 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC512-LABEL: 'replication_i8_stride3' ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 2 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 3 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 6 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC256-LABEL: 'replication_i8_stride3' ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 2 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 3 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 6 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 12 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <6 x i32> %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <12 x i32> %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <24 x i32> %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <48 x i32> %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <96 x i32> %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <192 x i32> %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <384 x i32> ret void } define void @replication_i8_stride4() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i8_stride4' ; SSE2-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; SSE2-NEXT: Cost Model: Found costs of 38 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 77 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 155 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 310 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; SSE2-NEXT: Cost Model: Found costs of 620 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; SSE2-NEXT: Cost Model: Found costs of 1240 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i8_stride4' ; SSE3-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; SSE3-NEXT: Cost Model: Found costs of 38 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 77 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 155 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 310 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; SSE3-NEXT: Cost Model: Found costs of 620 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; SSE3-NEXT: Cost Model: Found costs of 1240 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i8_stride4' ; SSSE3-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 38 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 77 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 155 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 310 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 620 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 1240 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i8_stride4' ; SSE41-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; SSE41-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; SSE41-NEXT: Cost Model: Found costs of 320 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; SSE41-NEXT: Cost Model: Found costs of 640 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i8_stride4' ; SSE42-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; SSE42-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; SSE42-NEXT: Cost Model: Found costs of 320 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; SSE42-NEXT: Cost Model: Found costs of 640 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i8_stride4' ; AVX-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; AVX-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 41 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 82 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 165 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; AVX-NEXT: Cost Model: Found costs of 330 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; AVX-NEXT: Cost Model: Found costs of 660 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i8_stride4' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:13 CodeSize:9 Lat:17 SizeLat:9 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:27 CodeSize:17 Lat:33 SizeLat:17 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:55 CodeSize:33 Lat:65 SizeLat:33 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:110 CodeSize:65 Lat:129 SizeLat:65 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i8_stride4' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:7 CodeSize:4 Lat:8 SizeLat:4 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:14 CodeSize:6 Lat:14 SizeLat:6 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:28 CodeSize:11 Lat:27 SizeLat:11 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:57 CodeSize:18 Lat:50 SizeLat:18 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:114 CodeSize:34 Lat:98 SizeLat:34 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:228 CodeSize:66 Lat:194 SizeLat:66 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC512-LABEL: 'replication_i8_stride4' ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 2 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 4 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 8 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC256-LABEL: 'replication_i8_stride4' ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 2 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 4 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 8 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 16 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <8 x i32> %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <16 x i32> %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <32 x i32> %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <64 x i32> %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <128 x i32> %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <256 x i32> %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <512 x i32> ret void } define void @replication_i8_stride5() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i8_stride5' ; SSE2-NEXT: Cost Model: Found costs of 28 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; SSE2-NEXT: Cost Model: Found costs of 57 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; SSE2-NEXT: Cost Model: Found costs of 115 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; SSE2-NEXT: Cost Model: Found costs of 231 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; SSE2-NEXT: Cost Model: Found costs of 462 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; SSE2-NEXT: Cost Model: Found costs of 924 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; SSE2-NEXT: Cost Model: Found costs of 1848 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i8_stride5' ; SSE3-NEXT: Cost Model: Found costs of 28 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; SSE3-NEXT: Cost Model: Found costs of 57 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; SSE3-NEXT: Cost Model: Found costs of 115 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; SSE3-NEXT: Cost Model: Found costs of 231 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; SSE3-NEXT: Cost Model: Found costs of 462 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; SSE3-NEXT: Cost Model: Found costs of 924 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; SSE3-NEXT: Cost Model: Found costs of 1848 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i8_stride5' ; SSSE3-NEXT: Cost Model: Found costs of 28 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 57 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 115 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 231 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 462 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 924 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 1848 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i8_stride5' ; SSE41-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; SSE41-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; SSE41-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; SSE41-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; SSE41-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; SSE41-NEXT: Cost Model: Found costs of 384 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; SSE41-NEXT: Cost Model: Found costs of 768 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i8_stride5' ; SSE42-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; SSE42-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; SSE42-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; SSE42-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; SSE42-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; SSE42-NEXT: Cost Model: Found costs of 384 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; SSE42-NEXT: Cost Model: Found costs of 768 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i8_stride5' ; AVX-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; AVX-NEXT: Cost Model: Found costs of 26 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; AVX-NEXT: Cost Model: Found costs of 50 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; AVX-NEXT: Cost Model: Found costs of 99 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; AVX-NEXT: Cost Model: Found costs of 198 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; AVX-NEXT: Cost Model: Found costs of 396 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; AVX-NEXT: Cost Model: Found costs of 792 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i8_stride5' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:12 CodeSize:8 Lat:14 SizeLat:8 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:22 CodeSize:14 Lat:24 SizeLat:14 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:45 CodeSize:27 Lat:47 SizeLat:27 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:91 CodeSize:53 Lat:93 SizeLat:53 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:182 CodeSize:105 Lat:185 SizeLat:105 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i8_stride5' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:11 CodeSize:5 Lat:9 SizeLat:5 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:47 CodeSize:5 Lat:11 SizeLat:5 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:89 CodeSize:7 Lat:17 SizeLat:7 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:177 CodeSize:13 Lat:33 SizeLat:13 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:355 CodeSize:22 Lat:62 SizeLat:22 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:710 CodeSize:42 Lat:122 SizeLat:42 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1420 CodeSize:82 Lat:242 SizeLat:82 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC512-LABEL: 'replication_i8_stride5' ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 2 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 3 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 5 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 10 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC256-LABEL: 'replication_i8_stride5' ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 3 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 5 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 10 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 20 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <10 x i32> %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <20 x i32> %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <40 x i32> %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <80 x i32> %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <160 x i32> %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <320 x i32> %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <640 x i32> ret void } define void @replication_i8_stride6() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i8_stride6' ; SSE2-NEXT: Cost Model: Found costs of 30 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; SSE2-NEXT: Cost Model: Found costs of 61 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; SSE2-NEXT: Cost Model: Found costs of 123 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; SSE2-NEXT: Cost Model: Found costs of 247 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; SSE2-NEXT: Cost Model: Found costs of 494 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; SSE2-NEXT: Cost Model: Found costs of 988 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; SSE2-NEXT: Cost Model: Found costs of 1976 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i8_stride6' ; SSE3-NEXT: Cost Model: Found costs of 30 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; SSE3-NEXT: Cost Model: Found costs of 61 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; SSE3-NEXT: Cost Model: Found costs of 123 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; SSE3-NEXT: Cost Model: Found costs of 247 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; SSE3-NEXT: Cost Model: Found costs of 494 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; SSE3-NEXT: Cost Model: Found costs of 988 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; SSE3-NEXT: Cost Model: Found costs of 1976 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i8_stride6' ; SSSE3-NEXT: Cost Model: Found costs of 30 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 61 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 123 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 247 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 494 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 988 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 1976 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i8_stride6' ; SSE41-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; SSE41-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; SSE41-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; SSE41-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; SSE41-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; SSE41-NEXT: Cost Model: Found costs of 448 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; SSE41-NEXT: Cost Model: Found costs of 896 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i8_stride6' ; SSE42-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; SSE42-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; SSE42-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; SSE42-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; SSE42-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; SSE42-NEXT: Cost Model: Found costs of 448 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; SSE42-NEXT: Cost Model: Found costs of 896 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i8_stride6' ; AVX-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; AVX-NEXT: Cost Model: Found costs of 30 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; AVX-NEXT: Cost Model: Found costs of 58 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; AVX-NEXT: Cost Model: Found costs of 115 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; AVX-NEXT: Cost Model: Found costs of 231 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; AVX-NEXT: Cost Model: Found costs of 462 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; AVX-NEXT: Cost Model: Found costs of 924 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i8_stride6' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:12 CodeSize:8 Lat:14 SizeLat:8 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:23 CodeSize:15 Lat:27 SizeLat:15 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:47 CodeSize:29 Lat:53 SizeLat:29 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:95 CodeSize:57 Lat:105 SizeLat:57 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:190 CodeSize:113 Lat:209 SizeLat:113 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i8_stride6' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:11 CodeSize:5 Lat:9 SizeLat:5 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:55 CodeSize:5 Lat:11 SizeLat:5 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:106 CodeSize:8 Lat:20 SizeLat:8 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:212 CodeSize:15 Lat:39 SizeLat:15 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:425 CodeSize:26 Lat:74 SizeLat:26 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:850 CodeSize:50 Lat:146 SizeLat:50 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1700 CodeSize:98 Lat:290 SizeLat:98 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC512-LABEL: 'replication_i8_stride6' ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 2 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 3 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 6 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 12 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC256-LABEL: 'replication_i8_stride6' ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 3 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 6 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 12 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 24 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <12 x i32> %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <24 x i32> %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <48 x i32> %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <96 x i32> %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <192 x i32> %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <384 x i32> %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <768 x i32> ret void } define void @replication_i8_stride7() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i8_stride7' ; SSE2-NEXT: Cost Model: Found costs of 32 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; SSE2-NEXT: Cost Model: Found costs of 65 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; SSE2-NEXT: Cost Model: Found costs of 131 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; SSE2-NEXT: Cost Model: Found costs of 263 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; SSE2-NEXT: Cost Model: Found costs of 526 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; SSE2-NEXT: Cost Model: Found costs of 1052 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; SSE2-NEXT: Cost Model: Found costs of 2104 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i8_stride7' ; SSE3-NEXT: Cost Model: Found costs of 32 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; SSE3-NEXT: Cost Model: Found costs of 65 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; SSE3-NEXT: Cost Model: Found costs of 131 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; SSE3-NEXT: Cost Model: Found costs of 263 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; SSE3-NEXT: Cost Model: Found costs of 526 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; SSE3-NEXT: Cost Model: Found costs of 1052 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; SSE3-NEXT: Cost Model: Found costs of 2104 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i8_stride7' ; SSSE3-NEXT: Cost Model: Found costs of 32 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 65 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 131 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 263 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 526 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 1052 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 2104 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i8_stride7' ; SSE41-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; SSE41-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; SSE41-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; SSE41-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; SSE41-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; SSE41-NEXT: Cost Model: Found costs of 512 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; SSE41-NEXT: Cost Model: Found costs of 1024 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i8_stride7' ; SSE42-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; SSE42-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; SSE42-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; SSE42-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; SSE42-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; SSE42-NEXT: Cost Model: Found costs of 512 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; SSE42-NEXT: Cost Model: Found costs of 1024 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i8_stride7' ; AVX-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; AVX-NEXT: Cost Model: Found costs of 34 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; AVX-NEXT: Cost Model: Found costs of 67 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; AVX-NEXT: Cost Model: Found costs of 132 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; AVX-NEXT: Cost Model: Found costs of 264 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; AVX-NEXT: Cost Model: Found costs of 528 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; AVX-NEXT: Cost Model: Found costs of 1056 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i8_stride7' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:13 CodeSize:9 Lat:17 SizeLat:9 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:24 CodeSize:16 Lat:30 SizeLat:16 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:49 CodeSize:31 Lat:59 SizeLat:31 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:99 CodeSize:61 Lat:117 SizeLat:61 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:198 CodeSize:121 Lat:233 SizeLat:121 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i8_stride7' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:11 CodeSize:5 Lat:9 SizeLat:5 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:64 CodeSize:6 Lat:14 SizeLat:6 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:125 CodeSize:9 Lat:23 SizeLat:9 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:247 CodeSize:17 Lat:45 SizeLat:17 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:495 CodeSize:30 Lat:86 SizeLat:30 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:990 CodeSize:58 Lat:170 SizeLat:58 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1980 CodeSize:114 Lat:338 SizeLat:114 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC512-LABEL: 'replication_i8_stride7' ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 2 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 4 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 7 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 14 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC256-LABEL: 'replication_i8_stride7' ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 4 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 7 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 14 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 28 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <14 x i32> %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <28 x i32> %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <56 x i32> %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <112 x i32> %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <224 x i32> %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <448 x i32> %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <896 x i32> ret void } define void @replication_i8_stride8() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i8_stride8' ; SSE2-NEXT: Cost Model: Found costs of 34 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 69 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 139 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 279 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; SSE2-NEXT: Cost Model: Found costs of 558 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; SSE2-NEXT: Cost Model: Found costs of 1116 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; SSE2-NEXT: Cost Model: Found costs of 2232 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i8_stride8' ; SSE3-NEXT: Cost Model: Found costs of 34 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 69 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 139 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 279 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; SSE3-NEXT: Cost Model: Found costs of 558 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; SSE3-NEXT: Cost Model: Found costs of 1116 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; SSE3-NEXT: Cost Model: Found costs of 2232 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i8_stride8' ; SSSE3-NEXT: Cost Model: Found costs of 34 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 69 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 139 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 279 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 558 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 1116 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 2232 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i8_stride8' ; SSE41-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; SSE41-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; SSE41-NEXT: Cost Model: Found costs of 576 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; SSE41-NEXT: Cost Model: Found costs of 1152 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i8_stride8' ; SSE42-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; SSE42-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; SSE42-NEXT: Cost Model: Found costs of 576 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; SSE42-NEXT: Cost Model: Found costs of 1152 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i8_stride8' ; AVX-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 37 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 74 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 148 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; AVX-NEXT: Cost Model: Found costs of 297 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; AVX-NEXT: Cost Model: Found costs of 594 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; AVX-NEXT: Cost Model: Found costs of 1188 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i8_stride8' ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:13 CodeSize:9 Lat:17 SizeLat:9 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:25 CodeSize:17 Lat:33 SizeLat:17 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:51 CodeSize:33 Lat:65 SizeLat:33 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:103 CodeSize:65 Lat:129 SizeLat:65 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:206 CodeSize:129 Lat:257 SizeLat:129 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i8_stride8' ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:7 CodeSize:4 Lat:8 SizeLat:4 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:14 CodeSize:6 Lat:14 SizeLat:6 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:27 CodeSize:10 Lat:26 SizeLat:10 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:54 CodeSize:19 Lat:51 SizeLat:19 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:109 CodeSize:34 Lat:98 SizeLat:34 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:218 CodeSize:66 Lat:194 SizeLat:66 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:436 CodeSize:130 Lat:386 SizeLat:130 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC512-LABEL: 'replication_i8_stride8' ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 1 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 2 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 4 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 8 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of 16 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; AVX512VBMIVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512VBMIVEC256-LABEL: 'replication_i8_stride8' ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:1 CodeSize:1 Lat:3 SizeLat:1 for: %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 4 for: %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 8 for: %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 16 for: %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of 32 for: %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ; AVX512VBMIVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf2 = shufflevector <2 x i8> undef, <2 x i8> poison, <16 x i32> %vf4 = shufflevector <4 x i8> undef, <4 x i8> poison, <32 x i32> %vf8 = shufflevector <8 x i8> undef, <8 x i8> poison, <64 x i32> %vf16 = shufflevector <16 x i8> undef, <16 x i8> poison, <128 x i32> %vf32 = shufflevector <32 x i8> undef, <32 x i8> poison, <256 x i32> %vf64 = shufflevector <64 x i8> undef, <64 x i8> poison, <512 x i32> %vf128 = shufflevector <128 x i8> undef, <128 x i8> poison, <1024 x i32> ret void }