brintos

brintos / llvm-project-archived public Read only

0
0
Text · 32.9 KiB · 678b8b9 Raw
531 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py2; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=-popcnt,+sse2 | FileCheck %s -check-prefixes=SSE2,NOPOPCNT3; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+sse2 | FileCheck %s -check-prefixes=SSE2,POPCNT4; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+sse4.2 | FileCheck %s -check-prefixes=POPCNT,SSE425; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+avx | FileCheck %s -check-prefixes=POPCNT,AVX16; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+avx2 | FileCheck %s -check-prefixes=POPCNT,AVX27; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+avx512f | FileCheck %s -check-prefixes=POPCNT,AVX512F8; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+avx512vl,+avx512bw,+avx512dq | FileCheck %s -check-prefixes=POPCNT,AVX512BW9; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+avx512vl,+avx512vpopcntdq | FileCheck %s -check-prefixes=POPCNT,AVX512VPOPCNT10; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+popcnt,+avx512vl,+avx512bitalg | FileCheck %s -check-prefixes=POPCNT,AVX512BITALG11 12; Verify the cost of scalar population count instructions.13 14declare i64 @llvm.ctpop.i64(i64)15declare i32 @llvm.ctpop.i32(i32)16declare i16 @llvm.ctpop.i16(i16)17declare  i8 @llvm.ctpop.i8(i8)18 19define i64 @var_ctpop_i64(i64 %a) {20; NOPOPCNT-LABEL: 'var_ctpop_i64'21; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:19 Lat:6 SizeLat:19 for: %ctpop = call i64 @llvm.ctpop.i64(i64 %a)22; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i64 %ctpop23;24; POPCNT-LABEL: 'var_ctpop_i64'25; POPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call i64 @llvm.ctpop.i64(i64 %a)26; POPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i64 %ctpop27;28  %ctpop = call i64 @llvm.ctpop.i64(i64 %a)29  ret i64 %ctpop30}31 32define i32 @var_ctpop_i32(i32 %a) {33; NOPOPCNT-LABEL: 'var_ctpop_i32'34; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:15 Lat:7 SizeLat:15 for: %ctpop = call i32 @llvm.ctpop.i32(i32 %a)35; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 %ctpop36;37; POPCNT-LABEL: 'var_ctpop_i32'38; POPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call i32 @llvm.ctpop.i32(i32 %a)39; POPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 %ctpop40;41  %ctpop = call i32 @llvm.ctpop.i32(i32 %a)42  ret i32 %ctpop43}44 45define i16 @var_ctpop_i16(i16 %a) {46; NOPOPCNT-LABEL: 'var_ctpop_i16'47; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:17 Lat:8 SizeLat:17 for: %ctpop = call i16 @llvm.ctpop.i16(i16 %a)48; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i16 %ctpop49;50; POPCNT-LABEL: 'var_ctpop_i16'51; POPCNT-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:1 SizeLat:2 for: %ctpop = call i16 @llvm.ctpop.i16(i16 %a)52; POPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i16 %ctpop53;54  %ctpop = call i16 @llvm.ctpop.i16(i16 %a)55  ret i16 %ctpop56}57 58define i8 @var_ctpop_i8(i8 %a) {59; NOPOPCNT-LABEL: 'var_ctpop_i8'60; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:6 Lat:6 SizeLat:6 for: %ctpop = call i8 @llvm.ctpop.i8(i8 %a)61; NOPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i8 %ctpop62;63; POPCNT-LABEL: 'var_ctpop_i8'64; POPCNT-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:1 SizeLat:2 for: %ctpop = call i8 @llvm.ctpop.i8(i8 %a)65; POPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i8 %ctpop66;67  %ctpop = call i8 @llvm.ctpop.i8(i8 %a)68  ret i8 %ctpop69}70 71; Verify the cost of vector population count instructions.72 73declare <2 x i64> @llvm.ctpop.v2i64(<2 x i64>)74declare <4 x i32> @llvm.ctpop.v4i32(<4 x i32>)75declare <8 x i16> @llvm.ctpop.v8i16(<8 x i16>)76declare <16 x i8> @llvm.ctpop.v16i8(<16 x i8>)77 78declare <4 x i64> @llvm.ctpop.v4i64(<4 x i64>)79declare <8 x i32> @llvm.ctpop.v8i32(<8 x i32>)80declare <16 x i16> @llvm.ctpop.v16i16(<16 x i16>)81declare <32 x i8> @llvm.ctpop.v32i8(<32 x i8>)82 83declare <8 x i64> @llvm.ctpop.v8i64(<8 x i64>)84declare <16 x i32> @llvm.ctpop.v16i32(<16 x i32>)85declare <32 x i16> @llvm.ctpop.v32i16(<32 x i16>)86declare <64 x i8> @llvm.ctpop.v64i8(<64 x i8>)87 88define <2 x i64> @var_ctpop_v2i64(<2 x i64> %a) {89; SSE2-LABEL: 'var_ctpop_v2i64'90; SSE2-NEXT:  Cost Model: Found costs of RThru:12 CodeSize:16 Lat:26 SizeLat:18 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)91; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop92;93; SSE42-LABEL: 'var_ctpop_v2i64'94; SSE42-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:12 Lat:19 SizeLat:18 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)95; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop96;97; AVX1-LABEL: 'var_ctpop_v2i64'98; AVX1-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:10 Lat:14 SizeLat:14 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)99; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop100;101; AVX2-LABEL: 'var_ctpop_v2i64'102; AVX2-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:9 SizeLat:10 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)103; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop104;105; AVX512F-LABEL: 'var_ctpop_v2i64'106; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:9 SizeLat:10 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)107; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop108;109; AVX512BW-LABEL: 'var_ctpop_v2i64'110; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:7 SizeLat:10 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)111; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop112;113; AVX512VPOPCNT-LABEL: 'var_ctpop_v2i64'114; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)115; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop116;117; AVX512BITALG-LABEL: 'var_ctpop_v2i64'118; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:7 SizeLat:10 for: %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)119; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %ctpop120;121  %ctpop = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %a)122  ret <2 x i64> %ctpop123}124 125define <4 x i64> @var_ctpop_v4i64(<4 x i64> %a) {126; SSE2-LABEL: 'var_ctpop_v4i64'127; SSE2-NEXT:  Cost Model: Found costs of RThru:24 CodeSize:32 Lat:52 SizeLat:36 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)128; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop129;130; SSE42-LABEL: 'var_ctpop_v4i64'131; SSE42-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:24 Lat:38 SizeLat:36 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)132; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop133;134; AVX1-LABEL: 'var_ctpop_v4i64'135; AVX1-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:19 Lat:18 SizeLat:28 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)136; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop137;138; AVX2-LABEL: 'var_ctpop_v4i64'139; AVX2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:10 Lat:9 SizeLat:14 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)140; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop141;142; AVX512F-LABEL: 'var_ctpop_v4i64'143; AVX512F-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:10 Lat:9 SizeLat:14 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)144; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop145;146; AVX512BW-LABEL: 'var_ctpop_v4i64'147; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:7 SizeLat:10 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)148; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop149;150; AVX512VPOPCNT-LABEL: 'var_ctpop_v4i64'151; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)152; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop153;154; AVX512BITALG-LABEL: 'var_ctpop_v4i64'155; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:7 SizeLat:10 for: %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)156; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %ctpop157;158  %ctpop = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %a)159  ret <4 x i64> %ctpop160}161 162define <8 x i64> @var_ctpop_v8i64(<8 x i64> %a) {163; SSE2-LABEL: 'var_ctpop_v8i64'164; SSE2-NEXT:  Cost Model: Found costs of RThru:48 CodeSize:64 Lat:104 SizeLat:72 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)165; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop166;167; SSE42-LABEL: 'var_ctpop_v8i64'168; SSE42-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:48 Lat:76 SizeLat:72 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)169; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop170;171; AVX1-LABEL: 'var_ctpop_v8i64'172; AVX1-NEXT:  Cost Model: Found costs of RThru:28 CodeSize:38 Lat:36 SizeLat:56 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)173; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop174;175; AVX2-LABEL: 'var_ctpop_v8i64'176; AVX2-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:20 Lat:18 SizeLat:28 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)177; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop178;179; AVX512F-LABEL: 'var_ctpop_v8i64'180; AVX512F-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:19 Lat:16 SizeLat:19 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)181; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop182;183; AVX512BW-LABEL: 'var_ctpop_v8i64'184; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:8 SizeLat:12 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)185; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop186;187; AVX512VPOPCNT-LABEL: 'var_ctpop_v8i64'188; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)189; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop190;191; AVX512BITALG-LABEL: 'var_ctpop_v8i64'192; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:10 Lat:8 SizeLat:12 for: %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)193; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %ctpop194;195  %ctpop = call <8 x i64> @llvm.ctpop.v8i64(<8 x i64> %a)196  ret <8 x i64> %ctpop197}198 199define <4 x i32> @var_ctpop_v4i32(<4 x i32> %a) {200; SSE2-LABEL: 'var_ctpop_v4i32'201; SSE2-NEXT:  Cost Model: Found costs of RThru:15 CodeSize:21 Lat:29 SizeLat:23 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)202; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop203;204; SSE42-LABEL: 'var_ctpop_v4i32'205; SSE42-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:16 Lat:24 SizeLat:22 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)206; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop207;208; AVX1-LABEL: 'var_ctpop_v4i32'209; AVX1-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:14 Lat:20 SizeLat:18 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)210; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop211;212; AVX2-LABEL: 'var_ctpop_v4i32'213; AVX2-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:12 SizeLat:14 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)214; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop215;216; AVX512F-LABEL: 'var_ctpop_v4i32'217; AVX512F-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:12 SizeLat:14 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)218; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop219;220; AVX512BW-LABEL: 'var_ctpop_v4i32'221; AVX512BW-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:11 SizeLat:14 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)222; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop223;224; AVX512VPOPCNT-LABEL: 'var_ctpop_v4i32'225; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)226; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop227;228; AVX512BITALG-LABEL: 'var_ctpop_v4i32'229; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:11 SizeLat:14 for: %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)230; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %ctpop231;232  %ctpop = call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %a)233  ret <4 x i32> %ctpop234}235 236define <8 x i32> @var_ctpop_v8i32(<8 x i32> %a) {237; SSE2-LABEL: 'var_ctpop_v8i32'238; SSE2-NEXT:  Cost Model: Found costs of RThru:30 CodeSize:42 Lat:58 SizeLat:46 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)239; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop240;241; SSE42-LABEL: 'var_ctpop_v8i32'242; SSE42-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:32 Lat:48 SizeLat:44 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)243; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop244;245; AVX1-LABEL: 'var_ctpop_v8i32'246; AVX1-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:27 Lat:24 SizeLat:36 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)247; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop248;249; AVX2-LABEL: 'var_ctpop_v8i32'250; AVX2-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:12 SizeLat:18 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)251; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop252;253; AVX512F-LABEL: 'var_ctpop_v8i32'254; AVX512F-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:12 SizeLat:18 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)255; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop256;257; AVX512BW-LABEL: 'var_ctpop_v8i32'258; AVX512BW-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:11 SizeLat:14 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)259; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop260;261; AVX512VPOPCNT-LABEL: 'var_ctpop_v8i32'262; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)263; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop264;265; AVX512BITALG-LABEL: 'var_ctpop_v8i32'266; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:11 SizeLat:14 for: %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)267; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %ctpop268;269  %ctpop = call <8 x i32> @llvm.ctpop.v8i32(<8 x i32> %a)270  ret <8 x i32> %ctpop271}272 273define <16 x i32> @var_ctpop_v16i32(<16 x i32> %a) {274; SSE2-LABEL: 'var_ctpop_v16i32'275; SSE2-NEXT:  Cost Model: Found costs of RThru:60 CodeSize:84 Lat:116 SizeLat:92 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)276; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop277;278; SSE42-LABEL: 'var_ctpop_v16i32'279; SSE42-NEXT:  Cost Model: Found costs of RThru:72 CodeSize:64 Lat:96 SizeLat:88 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)280; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop281;282; AVX1-LABEL: 'var_ctpop_v16i32'283; AVX1-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:54 Lat:48 SizeLat:72 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)284; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop285;286; AVX2-LABEL: 'var_ctpop_v16i32'287; AVX2-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:28 Lat:24 SizeLat:36 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)288; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop289;290; AVX512F-LABEL: 'var_ctpop_v16i32'291; AVX512F-NEXT:  Cost Model: Found costs of RThru:24 CodeSize:27 Lat:19 SizeLat:27 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)292; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop293;294; AVX512BW-LABEL: 'var_ctpop_v16i32'295; AVX512BW-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:12 SizeLat:16 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)296; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop297;298; AVX512VPOPCNT-LABEL: 'var_ctpop_v16i32'299; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)300; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop301;302; AVX512BITALG-LABEL: 'var_ctpop_v16i32'303; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:14 Lat:12 SizeLat:16 for: %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)304; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %ctpop305;306  %ctpop = call <16 x i32> @llvm.ctpop.v16i32(<16 x i32> %a)307  ret <16 x i32> %ctpop308}309 310define <8 x i16> @var_ctpop_v8i16(<8 x i16> %a) {311; SSE2-LABEL: 'var_ctpop_v8i16'312; SSE2-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:18 Lat:25 SizeLat:20 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)313; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop314;315; SSE42-LABEL: 'var_ctpop_v8i16'316; SSE42-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:14 Lat:18 SizeLat:20 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)317; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop318;319; AVX1-LABEL: 'var_ctpop_v8i16'320; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:11 Lat:18 SizeLat:15 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)321; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop322;323; AVX2-LABEL: 'var_ctpop_v8i16'324; AVX2-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)325; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop326;327; AVX512F-LABEL: 'var_ctpop_v8i16'328; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)329; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop330;331; AVX512BW-LABEL: 'var_ctpop_v8i16'332; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:7 SizeLat:11 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)333; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop334;335; AVX512VPOPCNT-LABEL: 'var_ctpop_v8i16'336; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)337; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop338;339; AVX512BITALG-LABEL: 'var_ctpop_v8i16'340; AVX512BITALG-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)341; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %ctpop342;343  %ctpop = call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %a)344  ret <8 x i16> %ctpop345}346 347define <16 x i16> @var_ctpop_v16i16(<16 x i16> %a) {348; SSE2-LABEL: 'var_ctpop_v16i16'349; SSE2-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:36 Lat:50 SizeLat:40 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)350; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop351;352; SSE42-LABEL: 'var_ctpop_v16i16'353; SSE42-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:28 Lat:36 SizeLat:40 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)354; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop355;356; AVX1-LABEL: 'var_ctpop_v16i16'357; AVX1-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:22 Lat:21 SizeLat:31 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)358; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop359;360; AVX2-LABEL: 'var_ctpop_v16i16'361; AVX2-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:11 Lat:8 SizeLat:18 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)362; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop363;364; AVX512F-LABEL: 'var_ctpop_v16i16'365; AVX512F-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:11 Lat:8 SizeLat:18 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)366; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop367;368; AVX512BW-LABEL: 'var_ctpop_v16i16'369; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:7 SizeLat:11 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)370; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop371;372; AVX512VPOPCNT-LABEL: 'var_ctpop_v16i16'373; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:11 Lat:8 SizeLat:18 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)374; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop375;376; AVX512BITALG-LABEL: 'var_ctpop_v16i16'377; AVX512BITALG-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)378; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %ctpop379;380  %ctpop = call <16 x i16> @llvm.ctpop.v16i16(<16 x i16> %a)381  ret <16 x i16> %ctpop382}383 384define <32 x i16> @var_ctpop_v32i16(<32 x i16> %a) {385; SSE2-LABEL: 'var_ctpop_v32i16'386; SSE2-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:72 Lat:100 SizeLat:80 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)387; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop388;389; SSE42-LABEL: 'var_ctpop_v32i16'390; SSE42-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:56 Lat:72 SizeLat:80 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)391; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop392;393; AVX1-LABEL: 'var_ctpop_v32i16'394; AVX1-NEXT:  Cost Model: Found costs of RThru:32 CodeSize:44 Lat:42 SizeLat:62 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)395; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop396;397; AVX2-LABEL: 'var_ctpop_v32i16'398; AVX2-NEXT:  Cost Model: Found costs of RThru:12 CodeSize:22 Lat:16 SizeLat:36 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)399; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop400;401; AVX512F-LABEL: 'var_ctpop_v32i16'402; AVX512F-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:22 Lat:15 SizeLat:22 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)403; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop404;405; AVX512BW-LABEL: 'var_ctpop_v32i16'406; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:13 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)407; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop408;409; AVX512VPOPCNT-LABEL: 'var_ctpop_v32i16'410; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:22 Lat:15 SizeLat:22 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)411; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop412;413; AVX512BITALG-LABEL: 'var_ctpop_v32i16'414; AVX512BITALG-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)415; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %ctpop416;417  %ctpop = call <32 x i16> @llvm.ctpop.v32i16(<32 x i16> %a)418  ret <32 x i16> %ctpop419}420 421define <16 x i8> @var_ctpop_v16i8(<16 x i8> %a) {422; SSE2-LABEL: 'var_ctpop_v16i8'423; SSE2-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:14 Lat:21 SizeLat:16 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)424; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop425;426; SSE42-LABEL: 'var_ctpop_v16i8'427; SSE42-NEXT:  Cost Model: Found costs of RThru:11 CodeSize:10 Lat:12 SizeLat:16 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)428; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop429;430; AVX1-LABEL: 'var_ctpop_v16i8'431; AVX1-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:8 Lat:12 SizeLat:12 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)432; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop433;434; AVX2-LABEL: 'var_ctpop_v16i8'435; AVX2-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:8 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)436; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop437;438; AVX512F-LABEL: 'var_ctpop_v16i8'439; AVX512F-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:8 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)440; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop441;442; AVX512BW-LABEL: 'var_ctpop_v16i8'443; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:4 SizeLat:8 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)444; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop445;446; AVX512VPOPCNT-LABEL: 'var_ctpop_v16i8'447; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:8 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)448; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop449;450; AVX512BITALG-LABEL: 'var_ctpop_v16i8'451; AVX512BITALG-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)452; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %ctpop453;454  %ctpop = call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %a)455  ret <16 x i8> %ctpop456}457 458define <32 x i8> @var_ctpop_v32i8(<32 x i8> %a) {459; SSE2-LABEL: 'var_ctpop_v32i8'460; SSE2-NEXT:  Cost Model: Found costs of RThru:20 CodeSize:28 Lat:42 SizeLat:32 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)461; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop462;463; SSE42-LABEL: 'var_ctpop_v32i8'464; SSE42-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:20 Lat:24 SizeLat:32 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)465; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop466;467; AVX1-LABEL: 'var_ctpop_v32i8'468; AVX1-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:16 Lat:15 SizeLat:25 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)469; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop470;471; AVX2-LABEL: 'var_ctpop_v32i8'472; AVX2-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:8 Lat:5 SizeLat:12 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)473; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop474;475; AVX512F-LABEL: 'var_ctpop_v32i8'476; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:8 Lat:5 SizeLat:12 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)477; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop478;479; AVX512BW-LABEL: 'var_ctpop_v32i8'480; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:4 SizeLat:8 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)481; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop482;483; AVX512VPOPCNT-LABEL: 'var_ctpop_v32i8'484; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:8 Lat:5 SizeLat:12 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)485; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop486;487; AVX512BITALG-LABEL: 'var_ctpop_v32i8'488; AVX512BITALG-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)489; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %ctpop490;491  %ctpop = call <32 x i8> @llvm.ctpop.v32i8(<32 x i8> %a)492  ret <32 x i8> %ctpop493}494 495define <64 x i8> @var_ctpop_v64i8(<64 x i8> %a) {496; SSE2-LABEL: 'var_ctpop_v64i8'497; SSE2-NEXT:  Cost Model: Found costs of RThru:40 CodeSize:56 Lat:84 SizeLat:64 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)498; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop499;500; SSE42-LABEL: 'var_ctpop_v64i8'501; SSE42-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:40 Lat:48 SizeLat:64 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)502; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop503;504; AVX1-LABEL: 'var_ctpop_v64i8'505; AVX1-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:32 Lat:30 SizeLat:50 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)506; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop507;508; AVX2-LABEL: 'var_ctpop_v64i8'509; AVX2-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:16 Lat:10 SizeLat:24 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)510; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop511;512; AVX512F-LABEL: 'var_ctpop_v64i8'513; AVX512F-NEXT:  Cost Model: Found costs of RThru:12 CodeSize:16 Lat:11 SizeLat:16 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)514; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop515;516; AVX512BW-LABEL: 'var_ctpop_v64i8'517; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:8 Lat:5 SizeLat:10 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)518; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop519;520; AVX512VPOPCNT-LABEL: 'var_ctpop_v64i8'521; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:12 CodeSize:16 Lat:11 SizeLat:16 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)522; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop523;524; AVX512BITALG-LABEL: 'var_ctpop_v64i8'525; AVX512BITALG-NEXT:  Cost Model: Found costs of 1 for: %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)526; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %ctpop527;528  %ctpop = call <64 x i8> @llvm.ctpop.v64i8(<64 x i8> %a)529  ret <64 x i8> %ctpop530}531