; 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 | FileCheck %s --check-prefixes=AVX512BWVEC512 ; RUN: opt < %s -passes="print" -mtriple=x86_64-pc-linux-gnu 2>&1 -disable-output -cost-kind=all -mattr=+avx512f,+avx512bw,+avx512vl,+prefer-256-bit | FileCheck %s --check-prefixes=AVX512BWVEC256 define void @replication_i16_stride2() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i16_stride2' ; SSE2-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; SSE2-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; SSE2-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; SSE2-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 192 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride2' ; SSE3-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; SSE3-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; SSE3-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; SSE3-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 192 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride2' ; SSSE3-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; SSSE3-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 192 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride2' ; SSE41-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; SSE41-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; SSE41-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; SSE41-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 192 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride2' ; SSE42-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; SSE42-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; SSE42-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; SSE42-NEXT: Cost Model: Found costs of 24 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 48 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 96 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 192 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride2' ; AVX-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; AVX-NEXT: Cost Model: Found costs of 6 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; AVX-NEXT: Cost Model: Found costs of 12 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; AVX-NEXT: Cost Model: Found costs of 25 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 51 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 102 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 204 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride2' ; AVX512FVEC512-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:15 CodeSize:9 Lat:17 SizeLat:9 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:30 CodeSize:17 Lat:33 SizeLat:17 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride2' ; AVX512FVEC256-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:3 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:7 CodeSize:4 Lat:8 SizeLat:4 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:15 CodeSize:6 Lat:14 SizeLat:6 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:30 CodeSize:10 Lat:26 SizeLat:10 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:60 CodeSize:18 Lat:50 SizeLat:18 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC512-LABEL: 'replication_i16_stride2' ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 1 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 8 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <128 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC256-LABEL: 'replication_i16_stride2' ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 1 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 1 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 8 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 16 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <128 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <2 x i32> zeroinitializer %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <4 x i32> %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <8 x i32> %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <16 x i32> %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <32 x i32> %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <64 x i32> %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <128 x i32> ret void } define void @replication_i16_stride3() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i16_stride3' ; SSE2-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; SSE2-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; SSE2-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; SSE2-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; SSE2-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; SSE2-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; SSE2-NEXT: Cost Model: Found costs of 256 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride3' ; SSE3-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; SSE3-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; SSE3-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; SSE3-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; SSE3-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; SSE3-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; SSE3-NEXT: Cost Model: Found costs of 256 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride3' ; SSSE3-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; SSSE3-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 256 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride3' ; SSE41-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; SSE41-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; SSE41-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; SSE41-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; SSE41-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; SSE41-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; SSE41-NEXT: Cost Model: Found costs of 256 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride3' ; SSE42-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; SSE42-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; SSE42-NEXT: Cost Model: Found costs of 16 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; SSE42-NEXT: Cost Model: Found costs of 32 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; SSE42-NEXT: Cost Model: Found costs of 64 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; SSE42-NEXT: Cost Model: Found costs of 128 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; SSE42-NEXT: Cost Model: Found costs of 256 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride3' ; AVX-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; AVX-NEXT: Cost Model: Found costs of 8 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; AVX-NEXT: Cost Model: Found costs of 18 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; AVX-NEXT: Cost Model: Found costs of 34 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; AVX-NEXT: Cost Model: Found costs of 68 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; AVX-NEXT: Cost Model: Found costs of 136 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; AVX-NEXT: Cost Model: Found costs of 272 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride3' ; AVX512FVEC512-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:12 CodeSize:8 Lat:14 SizeLat:8 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:25 CodeSize:15 Lat:27 SizeLat:15 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:50 CodeSize:29 Lat:53 SizeLat:29 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride3' ; AVX512FVEC256-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:30 CodeSize:4 Lat:8 SizeLat:4 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:55 CodeSize:5 Lat:11 SizeLat:5 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:111 CodeSize:8 Lat:20 SizeLat:8 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:222 CodeSize:14 Lat:38 SizeLat:14 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:444 CodeSize:26 Lat:74 SizeLat:26 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <192 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC512-LABEL: 'replication_i16_stride3' ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 1 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 6 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 12 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <192 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC256-LABEL: 'replication_i16_stride3' ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 3 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 1 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 6 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 12 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 24 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <192 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <3 x i32> zeroinitializer %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <6 x i32> %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <12 x i32> %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <24 x i32> %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <48 x i32> %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <96 x i32> %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <192 x i32> ret void } define void @replication_i16_stride4() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i16_stride4' ; SSE2-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; SSE2-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; SSE2-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; SSE2-NEXT: Cost Model: Found costs of 320 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride4' ; SSE3-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; SSE3-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; SSE3-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; SSE3-NEXT: Cost Model: Found costs of 320 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride4' ; SSSE3-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; SSSE3-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 320 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride4' ; SSE41-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; SSE41-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; SSE41-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; SSE41-NEXT: Cost Model: Found costs of 320 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride4' ; SSE42-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; SSE42-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; SSE42-NEXT: Cost Model: Found costs of 20 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 40 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 80 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 160 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; SSE42-NEXT: Cost Model: Found costs of 320 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride4' ; AVX-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; AVX-NEXT: Cost Model: Found costs of 10 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; AVX-NEXT: Cost Model: Found costs of 21 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 42 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 85 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 170 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; AVX-NEXT: Cost Model: Found costs of 340 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride4' ; AVX512FVEC512-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:13 CodeSize:9 Lat:17 SizeLat:9 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:27 CodeSize:17 Lat:33 SizeLat:17 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:54 CodeSize:33 Lat:65 SizeLat:33 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride4' ; AVX512FVEC256-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:7 CodeSize:4 Lat:8 SizeLat:4 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:13 CodeSize:6 Lat:14 SizeLat:6 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:27 CodeSize:10 Lat:26 SizeLat:10 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:54 CodeSize:18 Lat:50 SizeLat:18 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:108 CodeSize:34 Lat:98 SizeLat:34 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <256 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC512-LABEL: 'replication_i16_stride4' ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 1 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 8 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 16 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <256 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC256-LABEL: 'replication_i16_stride4' ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 1 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 8 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 16 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 32 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <256 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <4 x i32> zeroinitializer %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <8 x i32> %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <16 x i32> %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <32 x i32> %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <64 x i32> %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <128 x i32> %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <256 x i32> ret void } define void @replication_i16_stride5() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i16_stride5' ; SSE2-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; SSE2-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; SSE2-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; SSE2-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; SSE2-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; SSE2-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; SSE2-NEXT: Cost Model: Found costs of 384 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i16_stride5' ; SSE3-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; SSE3-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; SSE3-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; SSE3-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; SSE3-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; SSE3-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; SSE3-NEXT: Cost Model: Found costs of 384 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i16_stride5' ; SSSE3-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; SSSE3-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 384 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i16_stride5' ; SSE41-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; SSE41-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; SSE41-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; SSE41-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; SSE41-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; SSE41-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; SSE41-NEXT: Cost Model: Found costs of 384 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i16_stride5' ; SSE42-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; SSE42-NEXT: Cost Model: Found costs of 12 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; SSE42-NEXT: Cost Model: Found costs of 24 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; SSE42-NEXT: Cost Model: Found costs of 48 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; SSE42-NEXT: Cost Model: Found costs of 96 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; SSE42-NEXT: Cost Model: Found costs of 192 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; SSE42-NEXT: Cost Model: Found costs of 384 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i16_stride5' ; AVX-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; AVX-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; AVX-NEXT: Cost Model: Found costs of 26 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; AVX-NEXT: Cost Model: Found costs of 51 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; AVX-NEXT: Cost Model: Found costs of 102 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; AVX-NEXT: Cost Model: Found costs of 204 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; AVX-NEXT: Cost Model: Found costs of 408 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i16_stride5' ; AVX512FVEC512-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:12 CodeSize:8 Lat:14 SizeLat:8 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:22 CodeSize:14 Lat:24 SizeLat:14 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:45 CodeSize:27 Lat:47 SizeLat:27 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:90 CodeSize:53 Lat:93 SizeLat:53 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i16_stride5' ; AVX512FVEC256-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:26 CodeSize:4 Lat:8 SizeLat:4 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:47 CodeSize:5 Lat:11 SizeLat:5 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:91 CodeSize:7 Lat:17 SizeLat:7 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:183 CodeSize:12 Lat:32 SizeLat:12 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:366 CodeSize:22 Lat:62 SizeLat:22 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:732 CodeSize:42 Lat:122 SizeLat:42 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC512-LABEL: 'replication_i16_stride5' ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 6 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 10 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 20 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC256-LABEL: 'replication_i16_stride5' ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 5 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 6 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 10 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 20 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 40 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <5 x i32> zeroinitializer %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <10 x i32> %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <20 x i32> %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <40 x i32> %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <80 x i32> %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <160 x i32> %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <320 x i32> ret void } define void @replication_i16_stride6() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i16_stride6' ; SSE2-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; SSE2-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; SSE2-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; SSE2-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; SSE2-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; SSE2-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; SSE2-NEXT: Cost Model: Found costs of 448 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride6' ; SSE3-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; SSE3-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; SSE3-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; SSE3-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; SSE3-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; SSE3-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; SSE3-NEXT: Cost Model: Found costs of 448 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride6' ; SSSE3-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; SSSE3-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 448 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride6' ; SSE41-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; SSE41-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; SSE41-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; SSE41-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; SSE41-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; SSE41-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; SSE41-NEXT: Cost Model: Found costs of 448 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride6' ; SSE42-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; SSE42-NEXT: Cost Model: Found costs of 14 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; SSE42-NEXT: Cost Model: Found costs of 28 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; SSE42-NEXT: Cost Model: Found costs of 56 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; SSE42-NEXT: Cost Model: Found costs of 112 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; SSE42-NEXT: Cost Model: Found costs of 224 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; SSE42-NEXT: Cost Model: Found costs of 448 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride6' ; AVX-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; AVX-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; AVX-NEXT: Cost Model: Found costs of 30 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; AVX-NEXT: Cost Model: Found costs of 59 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; AVX-NEXT: Cost Model: Found costs of 119 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; AVX-NEXT: Cost Model: Found costs of 238 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; AVX-NEXT: Cost Model: Found costs of 476 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride6' ; AVX512FVEC512-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:12 CodeSize:8 Lat:14 SizeLat:8 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:23 CodeSize:15 Lat:27 SizeLat:15 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:47 CodeSize:29 Lat:53 SizeLat:29 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:94 CodeSize:57 Lat:105 SizeLat:57 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride6' ; AVX512FVEC256-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:30 CodeSize:4 Lat:8 SizeLat:4 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:55 CodeSize:5 Lat:11 SizeLat:5 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:109 CodeSize:8 Lat:20 SizeLat:8 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:219 CodeSize:14 Lat:38 SizeLat:14 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:438 CodeSize:26 Lat:74 SizeLat:26 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:876 CodeSize:50 Lat:146 SizeLat:50 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <384 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC512-LABEL: 'replication_i16_stride6' ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 6 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 12 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 24 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <384 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC256-LABEL: 'replication_i16_stride6' ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 6 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 6 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 12 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 24 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 48 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <384 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <6 x i32> zeroinitializer %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <12 x i32> %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <24 x i32> %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <48 x i32> %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <96 x i32> %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <192 x i32> %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <384 x i32> ret void } define void @replication_i16_stride7() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i16_stride7' ; SSE2-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; SSE2-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; SSE2-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; SSE2-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; SSE2-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; SSE2-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; SSE2-NEXT: Cost Model: Found costs of 512 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; SSE2-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE3-LABEL: 'replication_i16_stride7' ; SSE3-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; SSE3-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; SSE3-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; SSE3-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; SSE3-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; SSE3-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; SSE3-NEXT: Cost Model: Found costs of 512 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; SSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSSE3-LABEL: 'replication_i16_stride7' ; SSSE3-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; SSSE3-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 512 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; SSSE3-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE41-LABEL: 'replication_i16_stride7' ; SSE41-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; SSE41-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; SSE41-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; SSE41-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; SSE41-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; SSE41-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; SSE41-NEXT: Cost Model: Found costs of 512 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; SSE41-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; SSE42-LABEL: 'replication_i16_stride7' ; SSE42-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; SSE42-NEXT: Cost Model: Found costs of 16 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; SSE42-NEXT: Cost Model: Found costs of 32 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; SSE42-NEXT: Cost Model: Found costs of 64 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; SSE42-NEXT: Cost Model: Found costs of 128 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; SSE42-NEXT: Cost Model: Found costs of 256 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; SSE42-NEXT: Cost Model: Found costs of 512 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; SSE42-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX-LABEL: 'replication_i16_stride7' ; AVX-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; AVX-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; AVX-NEXT: Cost Model: Found costs of 35 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; AVX-NEXT: Cost Model: Found costs of 68 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; AVX-NEXT: Cost Model: Found costs of 136 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; AVX-NEXT: Cost Model: Found costs of 272 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; AVX-NEXT: Cost Model: Found costs of 544 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; AVX-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC512-LABEL: 'replication_i16_stride7' ; AVX512FVEC512-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:13 CodeSize:9 Lat:17 SizeLat:9 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:24 CodeSize:16 Lat:30 SizeLat:16 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:49 CodeSize:31 Lat:59 SizeLat:31 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:98 CodeSize:61 Lat:117 SizeLat:61 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512FVEC256-LABEL: 'replication_i16_stride7' ; AVX512FVEC256-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:34 CodeSize:4 Lat:8 SizeLat:4 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:66 CodeSize:6 Lat:14 SizeLat:6 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:127 CodeSize:9 Lat:23 SizeLat:9 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:255 CodeSize:16 Lat:44 SizeLat:16 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:510 CodeSize:30 Lat:86 SizeLat:30 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:1020 CodeSize:58 Lat:170 SizeLat:58 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC512-LABEL: 'replication_i16_stride7' ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 8 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 14 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 28 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC256-LABEL: 'replication_i16_stride7' ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 7 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 8 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 14 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 28 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 56 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <7 x i32> zeroinitializer %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <14 x i32> %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <28 x i32> %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <56 x i32> %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <112 x i32> %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <224 x i32> %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <448 x i32> ret void } define void @replication_i16_stride8() nounwind "min-legal-vector-width"="256" { ; SSE2-LABEL: 'replication_i16_stride8' ; SSE2-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; SSE2-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; SSE2-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; SSE2-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; SSE2-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; SSE2-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; SSE2-NEXT: Cost Model: Found costs of 576 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride8' ; SSE3-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; SSE3-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; SSE3-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; SSE3-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; SSE3-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; SSE3-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; SSE3-NEXT: Cost Model: Found costs of 576 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride8' ; SSSE3-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; SSSE3-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; SSSE3-NEXT: Cost Model: Found costs of 576 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride8' ; SSE41-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; SSE41-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; SSE41-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; SSE41-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; SSE41-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; SSE41-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; SSE41-NEXT: Cost Model: Found costs of 576 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride8' ; SSE42-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; SSE42-NEXT: Cost Model: Found costs of 18 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; SSE42-NEXT: Cost Model: Found costs of 36 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; SSE42-NEXT: Cost Model: Found costs of 72 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; SSE42-NEXT: Cost Model: Found costs of 144 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; SSE42-NEXT: Cost Model: Found costs of 288 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; SSE42-NEXT: Cost Model: Found costs of 576 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride8' ; AVX-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; AVX-NEXT: Cost Model: Found costs of 19 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; AVX-NEXT: Cost Model: Found costs of 38 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; AVX-NEXT: Cost Model: Found costs of 76 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; AVX-NEXT: Cost Model: Found costs of 153 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; AVX-NEXT: Cost Model: Found costs of 306 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; AVX-NEXT: Cost Model: Found costs of 612 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride8' ; AVX512FVEC512-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:4 CodeSize:3 Lat:5 SizeLat:3 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:7 CodeSize:5 Lat:9 SizeLat:5 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:13 CodeSize:9 Lat:17 SizeLat:9 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:25 CodeSize:17 Lat:33 SizeLat:17 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:51 CodeSize:33 Lat:65 SizeLat:33 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; AVX512FVEC512-NEXT: Cost Model: Found costs of RThru:102 CodeSize:65 Lat:129 SizeLat:65 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> 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_i16_stride8' ; AVX512FVEC256-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:7 CodeSize:4 Lat:8 SizeLat:4 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:13 CodeSize:6 Lat:14 SizeLat:6 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:25 CodeSize:10 Lat:26 SizeLat:10 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:51 CodeSize:18 Lat:50 SizeLat:18 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:102 CodeSize:34 Lat:98 SizeLat:34 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:204 CodeSize:66 Lat:194 SizeLat:66 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <512 x i32> ; AVX512FVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC512-LABEL: 'replication_i16_stride8' ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 2 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 4 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 8 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 16 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of 32 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <512 x i32> ; AVX512BWVEC512-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; ; AVX512BWVEC256-LABEL: 'replication_i16_stride8' ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 8 for: %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 2 for: %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 4 for: %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 8 for: %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 16 for: %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 32 for: %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of 64 for: %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <512 x i32> ; AVX512BWVEC256-NEXT: Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret void ; %vf1 = shufflevector <1 x i16> undef, <1 x i16> poison, <8 x i32> zeroinitializer %vf2 = shufflevector <2 x i16> undef, <2 x i16> poison, <16 x i32> %vf4 = shufflevector <4 x i16> undef, <4 x i16> poison, <32 x i32> %vf8 = shufflevector <8 x i16> undef, <8 x i16> poison, <64 x i32> %vf16 = shufflevector <16 x i16> undef, <16 x i16> poison, <128 x i32> %vf32 = shufflevector <32 x i16> undef, <32 x i16> poison, <256 x i32> %vf64 = shufflevector <64 x i16> undef, <64 x i16> poison, <512 x i32> ret void }