brintos

brintos / llvm-project-archived public Read only

0
0
Text · 61.3 KiB · 68a943a Raw
979 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=-bmi,+sse2 | FileCheck %s -check-prefixes=NOBMI3; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+sse2 | FileCheck %s -check-prefixes=BMI,SSE24; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+sse4.2 | FileCheck %s -check-prefixes=BMI,SSE425; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+avx | FileCheck %s -check-prefixes=BMI,AVX16; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+avx2 | FileCheck %s -check-prefixes=BMI,AVX27; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+avx512f | FileCheck %s -check-prefixes=BMI,AVX512,AVX512F8; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+avx512vl,+avx512bw,+avx512dq | FileCheck %s -check-prefixes=BMI,AVX512,AVX512BW9; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+avx512vl,+avx512vpopcntdq | FileCheck %s -check-prefixes=BMI,AVX512,AVX512VPOPCNT10; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=all -mattr=+bmi,+avx512vl,+avx512bitalg | FileCheck %s -check-prefixes=BMI,AVX512,AVX512BITALG11 12; Verify the cost of scalar trailing zero count instructions.13 14declare i64 @llvm.cttz.i64(i64, i1)15declare i32 @llvm.cttz.i32(i32, i1)16declare i16 @llvm.cttz.i16(i16, i1)17declare  i8 @llvm.cttz.i8(i8, i1)18 19define i64 @var_cttz_i64(i64 %a) {20; NOBMI-LABEL: 'var_cttz_i64'21; NOBMI-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:2 for: %cttz = call i64 @llvm.cttz.i64(i64 %a, i1 false)22; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i64 %cttz23;24; BMI-LABEL: 'var_cttz_i64'25; BMI-NEXT:  Cost Model: Found costs of 1 for: %cttz = call i64 @llvm.cttz.i64(i64 %a, i1 false)26; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i64 %cttz27;28  %cttz = call i64 @llvm.cttz.i64(i64 %a, i1 0)29  ret i64 %cttz30}31 32define i64 @var_cttz_i64u(i64 %a) {33; NOBMI-LABEL: 'var_cttz_i64u'34; NOBMI-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:2 for: %cttz = call i64 @llvm.cttz.i64(i64 %a, i1 true)35; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i64 %cttz36;37; BMI-LABEL: 'var_cttz_i64u'38; BMI-NEXT:  Cost Model: Found costs of 1 for: %cttz = call i64 @llvm.cttz.i64(i64 %a, i1 true)39; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i64 %cttz40;41  %cttz = call i64 @llvm.cttz.i64(i64 %a, i1 1)42  ret i64 %cttz43}44 45define i32 @var_cttz_i32(i32 %a) {46; NOBMI-LABEL: 'var_cttz_i32'47; NOBMI-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:2 Lat:2 SizeLat:2 for: %cttz = call i32 @llvm.cttz.i32(i32 %a, i1 false)48; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 %cttz49;50; BMI-LABEL: 'var_cttz_i32'51; BMI-NEXT:  Cost Model: Found costs of 1 for: %cttz = call i32 @llvm.cttz.i32(i32 %a, i1 false)52; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 %cttz53;54  %cttz = call i32 @llvm.cttz.i32(i32 %a, i1 0)55  ret i32 %cttz56}57 58define i32 @var_cttz_i32u(i32 %a) {59; NOBMI-LABEL: 'var_cttz_i32u'60; NOBMI-NEXT:  Cost Model: Found costs of RThru:1 CodeSize:1 Lat:2 SizeLat:2 for: %cttz = call i32 @llvm.cttz.i32(i32 %a, i1 true)61; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 %cttz62;63; BMI-LABEL: 'var_cttz_i32u'64; BMI-NEXT:  Cost Model: Found costs of 1 for: %cttz = call i32 @llvm.cttz.i32(i32 %a, i1 true)65; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i32 %cttz66;67  %cttz = call i32 @llvm.cttz.i32(i32 %a, i1 1)68  ret i32 %cttz69}70 71define i16 @var_cttz_i16(i16 %a) {72; NOBMI-LABEL: 'var_cttz_i16'73; NOBMI-NEXT:  Cost Model: Found costs of 2 for: %cttz = call i16 @llvm.cttz.i16(i16 %a, i1 false)74; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i16 %cttz75;76; BMI-LABEL: 'var_cttz_i16'77; BMI-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cttz = call i16 @llvm.cttz.i16(i16 %a, i1 false)78; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i16 %cttz79;80  %cttz = call i16 @llvm.cttz.i16(i16 %a, i1 0)81  ret i16 %cttz82}83 84define i16 @var_cttz_i16u(i16 %a) {85; NOBMI-LABEL: 'var_cttz_i16u'86; NOBMI-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %cttz = call i16 @llvm.cttz.i16(i16 %a, i1 true)87; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i16 %cttz88;89; BMI-LABEL: 'var_cttz_i16u'90; BMI-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cttz = call i16 @llvm.cttz.i16(i16 %a, i1 true)91; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i16 %cttz92;93  %cttz = call i16 @llvm.cttz.i16(i16 %a, i1 1)94  ret i16 %cttz95}96 97define i8 @var_cttz_i8(i8 %a) {98; NOBMI-LABEL: 'var_cttz_i8'99; NOBMI-NEXT:  Cost Model: Found costs of 2 for: %cttz = call i8 @llvm.cttz.i8(i8 %a, i1 false)100; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i8 %cttz101;102; BMI-LABEL: 'var_cttz_i8'103; BMI-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cttz = call i8 @llvm.cttz.i8(i8 %a, i1 false)104; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i8 %cttz105;106  %cttz = call i8 @llvm.cttz.i8(i8 %a, i1 0)107  ret i8 %cttz108}109 110define i8 @var_cttz_i8u(i8 %a) {111; NOBMI-LABEL: 'var_cttz_i8u'112; NOBMI-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:2 SizeLat:2 for: %cttz = call i8 @llvm.cttz.i8(i8 %a, i1 true)113; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i8 %cttz114;115; BMI-LABEL: 'var_cttz_i8u'116; BMI-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:1 Lat:1 SizeLat:1 for: %cttz = call i8 @llvm.cttz.i8(i8 %a, i1 true)117; BMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret i8 %cttz118;119  %cttz = call i8 @llvm.cttz.i8(i8 %a, i1 1)120  ret i8 %cttz121}122 123; Verify the cost of vector trailing zero count instructions.124 125declare <2 x i64> @llvm.cttz.v2i64(<2 x i64>, i1)126declare <4 x i32> @llvm.cttz.v4i32(<4 x i32>, i1)127declare <8 x i16> @llvm.cttz.v8i16(<8 x i16>, i1)128declare <16 x i8> @llvm.cttz.v16i8(<16 x i8>, i1)129 130declare <4 x i64> @llvm.cttz.v4i64(<4 x i64>, i1)131declare <8 x i32> @llvm.cttz.v8i32(<8 x i32>, i1)132declare <16 x i16> @llvm.cttz.v16i16(<16 x i16>, i1)133declare <32 x i8> @llvm.cttz.v32i8(<32 x i8>, i1)134 135declare <8 x i64> @llvm.cttz.v8i64(<8 x i64>, i1)136declare <16 x i32> @llvm.cttz.v16i32(<16 x i32>, i1)137declare <32 x i16> @llvm.cttz.v32i16(<32 x i16>, i1)138declare <64 x i8> @llvm.cttz.v64i8(<64 x i8>, i1)139 140define <2 x i64> @var_cttz_v2i64(<2 x i64> %a) {141; NOBMI-LABEL: 'var_cttz_v2i64'142; NOBMI-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:19 Lat:28 SizeLat:21 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 false)143; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz144;145; SSE2-LABEL: 'var_cttz_v2i64'146; SSE2-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:19 Lat:28 SizeLat:21 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 false)147; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz148;149; SSE42-LABEL: 'var_cttz_v2i64'150; SSE42-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:15 Lat:25 SizeLat:22 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 false)151; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz152;153; AVX1-LABEL: 'var_cttz_v2i64'154; AVX1-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:13 Lat:19 SizeLat:17 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 false)155; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz156;157; AVX2-LABEL: 'var_cttz_v2i64'158; AVX2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:13 Lat:11 SizeLat:13 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 false)159; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz160;161; AVX512-LABEL: 'var_cttz_v2i64'162; AVX512-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:13 Lat:11 SizeLat:13 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 false)163; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz164;165  %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 0)166  ret <2 x i64> %cttz167}168 169define <2 x i64> @var_cttz_v2i64u(<2 x i64> %a) {170; NOBMI-LABEL: 'var_cttz_v2i64u'171; NOBMI-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:19 Lat:28 SizeLat:21 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 true)172; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz173;174; SSE2-LABEL: 'var_cttz_v2i64u'175; SSE2-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:19 Lat:28 SizeLat:21 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 true)176; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz177;178; SSE42-LABEL: 'var_cttz_v2i64u'179; SSE42-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:15 Lat:25 SizeLat:22 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 true)180; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz181;182; AVX1-LABEL: 'var_cttz_v2i64u'183; AVX1-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:13 Lat:19 SizeLat:17 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 true)184; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz185;186; AVX2-LABEL: 'var_cttz_v2i64u'187; AVX2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:13 Lat:11 SizeLat:13 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 true)188; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz189;190; AVX512-LABEL: 'var_cttz_v2i64u'191; AVX512-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:13 Lat:11 SizeLat:13 for: %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 true)192; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <2 x i64> %cttz193;194  %cttz = call <2 x i64> @llvm.cttz.v2i64(<2 x i64> %a, i1 1)195  ret <2 x i64> %cttz196}197 198define <4 x i64> @var_cttz_v4i64(<4 x i64> %a) {199; NOBMI-LABEL: 'var_cttz_v4i64'200; NOBMI-NEXT:  Cost Model: Found costs of RThru:28 CodeSize:38 Lat:56 SizeLat:42 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 false)201; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz202;203; SSE2-LABEL: 'var_cttz_v4i64'204; SSE2-NEXT:  Cost Model: Found costs of RThru:28 CodeSize:38 Lat:56 SizeLat:42 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 false)205; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz206;207; SSE42-LABEL: 'var_cttz_v4i64'208; SSE42-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:30 Lat:50 SizeLat:44 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 false)209; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz210;211; AVX1-LABEL: 'var_cttz_v4i64'212; AVX1-NEXT:  Cost Model: Found costs of RThru:17 CodeSize:24 Lat:22 SizeLat:33 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 false)213; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz214;215; AVX2-LABEL: 'var_cttz_v4i64'216; AVX2-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:13 Lat:11 SizeLat:20 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 false)217; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz218;219; AVX512-LABEL: 'var_cttz_v4i64'220; AVX512-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:13 Lat:11 SizeLat:20 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 false)221; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz222;223  %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 0)224  ret <4 x i64> %cttz225}226 227define <4 x i64> @var_cttz_v4i64u(<4 x i64> %a) {228; NOBMI-LABEL: 'var_cttz_v4i64u'229; NOBMI-NEXT:  Cost Model: Found costs of RThru:28 CodeSize:38 Lat:56 SizeLat:42 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 true)230; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz231;232; SSE2-LABEL: 'var_cttz_v4i64u'233; SSE2-NEXT:  Cost Model: Found costs of RThru:28 CodeSize:38 Lat:56 SizeLat:42 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 true)234; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz235;236; SSE42-LABEL: 'var_cttz_v4i64u'237; SSE42-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:30 Lat:50 SizeLat:44 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 true)238; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz239;240; AVX1-LABEL: 'var_cttz_v4i64u'241; AVX1-NEXT:  Cost Model: Found costs of RThru:17 CodeSize:24 Lat:22 SizeLat:33 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 true)242; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz243;244; AVX2-LABEL: 'var_cttz_v4i64u'245; AVX2-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:13 Lat:11 SizeLat:20 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 true)246; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz247;248; AVX512-LABEL: 'var_cttz_v4i64u'249; AVX512-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:13 Lat:11 SizeLat:20 for: %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 true)250; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i64> %cttz251;252  %cttz = call <4 x i64> @llvm.cttz.v4i64(<4 x i64> %a, i1 1)253  ret <4 x i64> %cttz254}255 256define <8 x i64> @var_cttz_v8i64(<8 x i64> %a) {257; NOBMI-LABEL: 'var_cttz_v8i64'258; NOBMI-NEXT:  Cost Model: Found costs of RThru:56 CodeSize:76 Lat:112 SizeLat:84 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 false)259; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz260;261; SSE2-LABEL: 'var_cttz_v8i64'262; SSE2-NEXT:  Cost Model: Found costs of RThru:56 CodeSize:76 Lat:112 SizeLat:84 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 false)263; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz264;265; SSE42-LABEL: 'var_cttz_v8i64'266; SSE42-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:60 Lat:100 SizeLat:88 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 false)267; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz268;269; AVX1-LABEL: 'var_cttz_v8i64'270; AVX1-NEXT:  Cost Model: Found costs of RThru:34 CodeSize:48 Lat:44 SizeLat:66 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 false)271; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz272;273; AVX2-LABEL: 'var_cttz_v8i64'274; AVX2-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:26 Lat:22 SizeLat:40 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 false)275; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz276;277; AVX512-LABEL: 'var_cttz_v8i64'278; AVX512-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:8 SizeLat:7 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 false)279; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz280;281  %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 0)282  ret <8 x i64> %cttz283}284 285define <8 x i64> @var_cttz_v8i64u(<8 x i64> %a) {286; NOBMI-LABEL: 'var_cttz_v8i64u'287; NOBMI-NEXT:  Cost Model: Found costs of RThru:56 CodeSize:76 Lat:112 SizeLat:84 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 true)288; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz289;290; SSE2-LABEL: 'var_cttz_v8i64u'291; SSE2-NEXT:  Cost Model: Found costs of RThru:56 CodeSize:76 Lat:112 SizeLat:84 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 true)292; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz293;294; SSE42-LABEL: 'var_cttz_v8i64u'295; SSE42-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:60 Lat:100 SizeLat:88 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 true)296; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz297;298; AVX1-LABEL: 'var_cttz_v8i64u'299; AVX1-NEXT:  Cost Model: Found costs of RThru:34 CodeSize:48 Lat:44 SizeLat:66 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 true)300; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz301;302; AVX2-LABEL: 'var_cttz_v8i64u'303; AVX2-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:26 Lat:22 SizeLat:40 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 true)304; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz305;306; AVX512-LABEL: 'var_cttz_v8i64u'307; AVX512-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:8 SizeLat:7 for: %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 true)308; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i64> %cttz309;310  %cttz = call <8 x i64> @llvm.cttz.v8i64(<8 x i64> %a, i1 1)311  ret <8 x i64> %cttz312}313 314define <4 x i32> @var_cttz_v4i32(<4 x i32> %a) {315; NOBMI-LABEL: 'var_cttz_v4i32'316; NOBMI-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:24 Lat:31 SizeLat:26 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 false)317; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz318;319; SSE2-LABEL: 'var_cttz_v4i32'320; SSE2-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:24 Lat:31 SizeLat:26 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 false)321; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz322;323; SSE42-LABEL: 'var_cttz_v4i32'324; SSE42-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:19 Lat:26 SizeLat:25 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 false)325; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz326;327; AVX1-LABEL: 'var_cttz_v4i32'328; AVX1-NEXT:  Cost Model: Found costs of RThru:11 CodeSize:17 Lat:24 SizeLat:21 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 false)329; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz330;331; AVX2-LABEL: 'var_cttz_v4i32'332; AVX2-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:14 SizeLat:17 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 false)333; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz334;335; AVX512-LABEL: 'var_cttz_v4i32'336; AVX512-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:14 SizeLat:17 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 false)337; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz338;339  %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 0)340  ret <4 x i32> %cttz341}342 343define <4 x i32> @var_cttz_v4i32u(<4 x i32> %a) {344; NOBMI-LABEL: 'var_cttz_v4i32u'345; NOBMI-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:24 Lat:31 SizeLat:26 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 true)346; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz347;348; SSE2-LABEL: 'var_cttz_v4i32u'349; SSE2-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:24 Lat:31 SizeLat:26 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 true)350; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz351;352; SSE42-LABEL: 'var_cttz_v4i32u'353; SSE42-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:19 Lat:26 SizeLat:25 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 true)354; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz355;356; AVX1-LABEL: 'var_cttz_v4i32u'357; AVX1-NEXT:  Cost Model: Found costs of RThru:11 CodeSize:17 Lat:24 SizeLat:21 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 true)358; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz359;360; AVX2-LABEL: 'var_cttz_v4i32u'361; AVX2-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:14 SizeLat:17 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 true)362; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz363;364; AVX512-LABEL: 'var_cttz_v4i32u'365; AVX512-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:14 SizeLat:17 for: %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 true)366; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <4 x i32> %cttz367;368  %cttz = call <4 x i32> @llvm.cttz.v4i32(<4 x i32> %a, i1 1)369  ret <4 x i32> %cttz370}371 372define <8 x i32> @var_cttz_v8i32(<8 x i32> %a) {373; NOBMI-LABEL: 'var_cttz_v8i32'374; NOBMI-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:48 Lat:62 SizeLat:52 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 false)375; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz376;377; SSE2-LABEL: 'var_cttz_v8i32'378; SSE2-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:48 Lat:62 SizeLat:52 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 false)379; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz380;381; SSE42-LABEL: 'var_cttz_v8i32'382; SSE42-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:38 Lat:52 SizeLat:50 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 false)383; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz384;385; AVX1-LABEL: 'var_cttz_v8i32'386; AVX1-NEXT:  Cost Model: Found costs of RThru:21 CodeSize:32 Lat:27 SizeLat:41 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 false)387; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz388;389; AVX2-LABEL: 'var_cttz_v8i32'390; AVX2-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:15 SizeLat:24 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 false)391; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz392;393; AVX512-LABEL: 'var_cttz_v8i32'394; AVX512-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:15 SizeLat:24 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 false)395; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz396;397  %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 0)398  ret <8 x i32> %cttz399}400 401define <8 x i32> @var_cttz_v8i32u(<8 x i32> %a) {402; NOBMI-LABEL: 'var_cttz_v8i32u'403; NOBMI-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:48 Lat:62 SizeLat:52 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 true)404; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz405;406; SSE2-LABEL: 'var_cttz_v8i32u'407; SSE2-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:48 Lat:62 SizeLat:52 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 true)408; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz409;410; SSE42-LABEL: 'var_cttz_v8i32u'411; SSE42-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:38 Lat:52 SizeLat:50 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 true)412; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz413;414; AVX1-LABEL: 'var_cttz_v8i32u'415; AVX1-NEXT:  Cost Model: Found costs of RThru:21 CodeSize:32 Lat:27 SizeLat:41 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 true)416; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz417;418; AVX2-LABEL: 'var_cttz_v8i32u'419; AVX2-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:15 SizeLat:24 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 true)420; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz421;422; AVX512-LABEL: 'var_cttz_v8i32u'423; AVX512-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:17 Lat:15 SizeLat:24 for: %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 true)424; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i32> %cttz425;426  %cttz = call <8 x i32> @llvm.cttz.v8i32(<8 x i32> %a, i1 1)427  ret <8 x i32> %cttz428}429 430define <16 x i32> @var_cttz_v16i32(<16 x i32> %a) {431; NOBMI-LABEL: 'var_cttz_v16i32'432; NOBMI-NEXT:  Cost Model: Found costs of RThru:72 CodeSize:96 Lat:124 SizeLat:104 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 false)433; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz434;435; SSE2-LABEL: 'var_cttz_v16i32'436; SSE2-NEXT:  Cost Model: Found costs of RThru:72 CodeSize:96 Lat:124 SizeLat:104 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 false)437; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz438;439; SSE42-LABEL: 'var_cttz_v16i32'440; SSE42-NEXT:  Cost Model: Found costs of RThru:72 CodeSize:76 Lat:104 SizeLat:100 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 false)441; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz442;443; AVX1-LABEL: 'var_cttz_v16i32'444; AVX1-NEXT:  Cost Model: Found costs of RThru:42 CodeSize:64 Lat:54 SizeLat:82 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 false)445; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz446;447; AVX2-LABEL: 'var_cttz_v16i32'448; AVX2-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:34 Lat:30 SizeLat:48 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 false)449; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz450;451; AVX512-LABEL: 'var_cttz_v16i32'452; AVX512-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:8 SizeLat:7 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 false)453; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz454;455  %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 0)456  ret <16 x i32> %cttz457}458 459define <16 x i32> @var_cttz_v16i32u(<16 x i32> %a) {460; NOBMI-LABEL: 'var_cttz_v16i32u'461; NOBMI-NEXT:  Cost Model: Found costs of RThru:72 CodeSize:96 Lat:124 SizeLat:104 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 true)462; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz463;464; SSE2-LABEL: 'var_cttz_v16i32u'465; SSE2-NEXT:  Cost Model: Found costs of RThru:72 CodeSize:96 Lat:124 SizeLat:104 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 true)466; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz467;468; SSE42-LABEL: 'var_cttz_v16i32u'469; SSE42-NEXT:  Cost Model: Found costs of RThru:72 CodeSize:76 Lat:104 SizeLat:100 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 true)470; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz471;472; AVX1-LABEL: 'var_cttz_v16i32u'473; AVX1-NEXT:  Cost Model: Found costs of RThru:42 CodeSize:64 Lat:54 SizeLat:82 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 true)474; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz475;476; AVX2-LABEL: 'var_cttz_v16i32u'477; AVX2-NEXT:  Cost Model: Found costs of RThru:14 CodeSize:34 Lat:30 SizeLat:48 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 true)478; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz479;480; AVX512-LABEL: 'var_cttz_v16i32u'481; AVX512-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:6 Lat:8 SizeLat:7 for: %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 true)482; AVX512-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i32> %cttz483;484  %cttz = call <16 x i32> @llvm.cttz.v16i32(<16 x i32> %a, i1 1)485  ret <16 x i32> %cttz486}487 488define <8 x i16> @var_cttz_v8i16(<8 x i16> %a) {489; NOBMI-LABEL: 'var_cttz_v8i16'490; NOBMI-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:21 Lat:27 SizeLat:23 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)491; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz492;493; SSE2-LABEL: 'var_cttz_v8i16'494; SSE2-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:21 Lat:27 SizeLat:23 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)495; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz496;497; SSE42-LABEL: 'var_cttz_v8i16'498; SSE42-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:17 Lat:20 SizeLat:23 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)499; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz500;501; AVX1-LABEL: 'var_cttz_v8i16'502; AVX1-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:14 Lat:21 SizeLat:18 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)503; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz504;505; AVX2-LABEL: 'var_cttz_v8i16'506; AVX2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)507; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz508;509; AVX512F-LABEL: 'var_cttz_v8i16'510; AVX512F-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)511; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz512;513; AVX512BW-LABEL: 'var_cttz_v8i16'514; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)515; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz516;517; AVX512VPOPCNT-LABEL: 'var_cttz_v8i16'518; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)519; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz520;521; AVX512BITALG-LABEL: 'var_cttz_v8i16'522; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 false)523; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz524;525  %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 0)526  ret <8 x i16> %cttz527}528 529define <8 x i16> @var_cttz_v8i16u(<8 x i16> %a) {530; NOBMI-LABEL: 'var_cttz_v8i16u'531; NOBMI-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:21 Lat:27 SizeLat:23 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)532; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz533;534; SSE2-LABEL: 'var_cttz_v8i16u'535; SSE2-NEXT:  Cost Model: Found costs of RThru:16 CodeSize:21 Lat:27 SizeLat:23 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)536; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz537;538; SSE42-LABEL: 'var_cttz_v8i16u'539; SSE42-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:17 Lat:20 SizeLat:23 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)540; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz541;542; AVX1-LABEL: 'var_cttz_v8i16u'543; AVX1-NEXT:  Cost Model: Found costs of RThru:9 CodeSize:14 Lat:21 SizeLat:18 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)544; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz545;546; AVX2-LABEL: 'var_cttz_v8i16u'547; AVX2-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)548; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz549;550; AVX512F-LABEL: 'var_cttz_v8i16u'551; AVX512F-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)552; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz553;554; AVX512BW-LABEL: 'var_cttz_v8i16u'555; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)556; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz557;558; AVX512VPOPCNT-LABEL: 'var_cttz_v8i16u'559; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:4 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)560; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz561;562; AVX512BITALG-LABEL: 'var_cttz_v8i16u'563; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 true)564; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <8 x i16> %cttz565;566  %cttz = call <8 x i16> @llvm.cttz.v8i16(<8 x i16> %a, i1 1)567  ret <8 x i16> %cttz568}569 570define <16 x i16> @var_cttz_v16i16(<16 x i16> %a) {571; NOBMI-LABEL: 'var_cttz_v16i16'572; NOBMI-NEXT:  Cost Model: Found costs of RThru:32 CodeSize:42 Lat:54 SizeLat:46 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)573; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz574;575; SSE2-LABEL: 'var_cttz_v16i16'576; SSE2-NEXT:  Cost Model: Found costs of RThru:32 CodeSize:42 Lat:54 SizeLat:46 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)577; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz578;579; SSE42-LABEL: 'var_cttz_v16i16'580; SSE42-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:34 Lat:40 SizeLat:46 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)581; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz582;583; AVX1-LABEL: 'var_cttz_v16i16'584; AVX1-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:27 Lat:24 SizeLat:36 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)585; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz586;587; AVX2-LABEL: 'var_cttz_v16i16'588; AVX2-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:14 Lat:9 SizeLat:24 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)589; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz590;591; AVX512F-LABEL: 'var_cttz_v16i16'592; AVX512F-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:14 Lat:9 SizeLat:24 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)593; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz594;595; AVX512BW-LABEL: 'var_cttz_v16i16'596; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)597; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz598;599; AVX512VPOPCNT-LABEL: 'var_cttz_v16i16'600; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:14 Lat:9 SizeLat:24 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)601; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz602;603; AVX512BITALG-LABEL: 'var_cttz_v16i16'604; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 false)605; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz606;607  %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 0)608  ret <16 x i16> %cttz609}610 611define <16 x i16> @var_cttz_v16i16u(<16 x i16> %a) {612; NOBMI-LABEL: 'var_cttz_v16i16u'613; NOBMI-NEXT:  Cost Model: Found costs of RThru:32 CodeSize:42 Lat:54 SizeLat:46 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)614; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz615;616; SSE2-LABEL: 'var_cttz_v16i16u'617; SSE2-NEXT:  Cost Model: Found costs of RThru:32 CodeSize:42 Lat:54 SizeLat:46 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)618; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz619;620; SSE42-LABEL: 'var_cttz_v16i16u'621; SSE42-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:34 Lat:40 SizeLat:46 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)622; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz623;624; AVX1-LABEL: 'var_cttz_v16i16u'625; AVX1-NEXT:  Cost Model: Found costs of RThru:18 CodeSize:27 Lat:24 SizeLat:36 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)626; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz627;628; AVX2-LABEL: 'var_cttz_v16i16u'629; AVX2-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:14 Lat:9 SizeLat:24 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)630; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz631;632; AVX512F-LABEL: 'var_cttz_v16i16u'633; AVX512F-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:14 Lat:9 SizeLat:24 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)634; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz635;636; AVX512BW-LABEL: 'var_cttz_v16i16u'637; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)638; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz639;640; AVX512VPOPCNT-LABEL: 'var_cttz_v16i16u'641; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:14 Lat:9 SizeLat:24 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)642; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz643;644; AVX512BITALG-LABEL: 'var_cttz_v16i16u'645; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:9 SizeLat:14 for: %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 true)646; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i16> %cttz647;648  %cttz = call <16 x i16> @llvm.cttz.v16i16(<16 x i16> %a, i1 1)649  ret <16 x i16> %cttz650}651 652define <32 x i16> @var_cttz_v32i16(<32 x i16> %a) {653; NOBMI-LABEL: 'var_cttz_v32i16'654; NOBMI-NEXT:  Cost Model: Found costs of RThru:64 CodeSize:84 Lat:108 SizeLat:92 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)655; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz656;657; SSE2-LABEL: 'var_cttz_v32i16'658; SSE2-NEXT:  Cost Model: Found costs of RThru:64 CodeSize:84 Lat:108 SizeLat:92 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)659; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz660;661; SSE42-LABEL: 'var_cttz_v32i16'662; SSE42-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:68 Lat:80 SizeLat:92 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)663; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz664;665; AVX1-LABEL: 'var_cttz_v32i16'666; AVX1-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:54 Lat:48 SizeLat:72 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)667; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz668;669; AVX2-LABEL: 'var_cttz_v32i16'670; AVX2-NEXT:  Cost Model: Found costs of RThru:12 CodeSize:28 Lat:18 SizeLat:48 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)671; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz672;673; AVX512F-LABEL: 'var_cttz_v32i16'674; AVX512F-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:27 Lat:17 SizeLat:27 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)675; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz676;677; AVX512BW-LABEL: 'var_cttz_v32i16'678; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:10 SizeLat:16 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)679; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz680;681; AVX512VPOPCNT-LABEL: 'var_cttz_v32i16'682; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:27 Lat:17 SizeLat:27 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)683; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz684;685; AVX512BITALG-LABEL: 'var_cttz_v32i16'686; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:10 SizeLat:16 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 false)687; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz688;689  %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 0)690  ret <32 x i16> %cttz691}692 693define <32 x i16> @var_cttz_v32i16u(<32 x i16> %a) {694; NOBMI-LABEL: 'var_cttz_v32i16u'695; NOBMI-NEXT:  Cost Model: Found costs of RThru:64 CodeSize:84 Lat:108 SizeLat:92 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)696; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz697;698; SSE2-LABEL: 'var_cttz_v32i16u'699; SSE2-NEXT:  Cost Model: Found costs of RThru:64 CodeSize:84 Lat:108 SizeLat:92 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)700; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz701;702; SSE42-LABEL: 'var_cttz_v32i16u'703; SSE42-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:68 Lat:80 SizeLat:92 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)704; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz705;706; AVX1-LABEL: 'var_cttz_v32i16u'707; AVX1-NEXT:  Cost Model: Found costs of RThru:36 CodeSize:54 Lat:48 SizeLat:72 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)708; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz709;710; AVX2-LABEL: 'var_cttz_v32i16u'711; AVX2-NEXT:  Cost Model: Found costs of RThru:12 CodeSize:28 Lat:18 SizeLat:48 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)712; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz713;714; AVX512F-LABEL: 'var_cttz_v32i16u'715; AVX512F-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:27 Lat:17 SizeLat:27 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)716; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz717;718; AVX512BW-LABEL: 'var_cttz_v32i16u'719; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:10 SizeLat:16 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)720; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz721;722; AVX512VPOPCNT-LABEL: 'var_cttz_v32i16u'723; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:7 CodeSize:27 Lat:17 SizeLat:27 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)724; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz725;726; AVX512BITALG-LABEL: 'var_cttz_v32i16u'727; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:14 Lat:10 SizeLat:16 for: %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 true)728; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i16> %cttz729;730  %cttz = call <32 x i16> @llvm.cttz.v32i16(<32 x i16> %a, i1 1)731  ret <32 x i16> %cttz732}733 734define <16 x i8> @var_cttz_v16i8(<16 x i8> %a) {735; NOBMI-LABEL: 'var_cttz_v16i8'736; NOBMI-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:17 Lat:23 SizeLat:19 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)737; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz738;739; SSE2-LABEL: 'var_cttz_v16i8'740; SSE2-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:17 Lat:23 SizeLat:19 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)741; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz742;743; SSE42-LABEL: 'var_cttz_v16i8'744; SSE42-NEXT:  Cost Model: Found costs of RThru:11 CodeSize:13 Lat:16 SizeLat:19 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)745; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz746;747; AVX1-LABEL: 'var_cttz_v16i8'748; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:11 Lat:16 SizeLat:15 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)749; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz750;751; AVX2-LABEL: 'var_cttz_v16i8'752; AVX2-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)753; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz754;755; AVX512F-LABEL: 'var_cttz_v16i8'756; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)757; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz758;759; AVX512BW-LABEL: 'var_cttz_v16i8'760; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)761; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz762;763; AVX512VPOPCNT-LABEL: 'var_cttz_v16i8'764; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)765; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz766;767; AVX512BITALG-LABEL: 'var_cttz_v16i8'768; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 false)769; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz770;771  %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 0)772  ret <16 x i8> %cttz773}774 775define <16 x i8> @var_cttz_v16i8u(<16 x i8> %a) {776; NOBMI-LABEL: 'var_cttz_v16i8u'777; NOBMI-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:17 Lat:23 SizeLat:19 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)778; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz779;780; SSE2-LABEL: 'var_cttz_v16i8u'781; SSE2-NEXT:  Cost Model: Found costs of RThru:13 CodeSize:17 Lat:23 SizeLat:19 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)782; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz783;784; SSE42-LABEL: 'var_cttz_v16i8u'785; SSE42-NEXT:  Cost Model: Found costs of RThru:11 CodeSize:13 Lat:16 SizeLat:19 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)786; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz787;788; AVX1-LABEL: 'var_cttz_v16i8u'789; AVX1-NEXT:  Cost Model: Found costs of RThru:8 CodeSize:11 Lat:16 SizeLat:15 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)790; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz791;792; AVX2-LABEL: 'var_cttz_v16i8u'793; AVX2-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)794; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz795;796; AVX512F-LABEL: 'var_cttz_v16i8u'797; AVX512F-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)798; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz799;800; AVX512BW-LABEL: 'var_cttz_v16i8u'801; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)802; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz803;804; AVX512VPOPCNT-LABEL: 'var_cttz_v16i8u'805; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)806; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz807;808; AVX512BITALG-LABEL: 'var_cttz_v16i8u'809; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 true)810; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <16 x i8> %cttz811;812  %cttz = call <16 x i8> @llvm.cttz.v16i8(<16 x i8> %a, i1 1)813  ret <16 x i8> %cttz814}815 816define <32 x i8> @var_cttz_v32i8(<32 x i8> %a) {817; NOBMI-LABEL: 'var_cttz_v32i8'818; NOBMI-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:34 Lat:46 SizeLat:38 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)819; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz820;821; SSE2-LABEL: 'var_cttz_v32i8'822; SSE2-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:34 Lat:46 SizeLat:38 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)823; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz824;825; SSE42-LABEL: 'var_cttz_v32i8'826; SSE42-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:26 Lat:32 SizeLat:38 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)827; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz828;829; AVX1-LABEL: 'var_cttz_v32i8'830; AVX1-NEXT:  Cost Model: Found costs of RThru:15 CodeSize:21 Lat:18 SizeLat:30 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)831; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz832;833; AVX2-LABEL: 'var_cttz_v32i8'834; AVX2-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:11 Lat:7 SizeLat:18 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)835; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz836;837; AVX512F-LABEL: 'var_cttz_v32i8'838; AVX512F-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:11 Lat:7 SizeLat:18 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)839; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz840;841; AVX512BW-LABEL: 'var_cttz_v32i8'842; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)843; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz844;845; AVX512VPOPCNT-LABEL: 'var_cttz_v32i8'846; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:11 Lat:7 SizeLat:18 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)847; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz848;849; AVX512BITALG-LABEL: 'var_cttz_v32i8'850; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 false)851; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz852;853  %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 0)854  ret <32 x i8> %cttz855}856 857define <32 x i8> @var_cttz_v32i8u(<32 x i8> %a) {858; NOBMI-LABEL: 'var_cttz_v32i8u'859; NOBMI-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:34 Lat:46 SizeLat:38 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)860; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz861;862; SSE2-LABEL: 'var_cttz_v32i8u'863; SSE2-NEXT:  Cost Model: Found costs of RThru:26 CodeSize:34 Lat:46 SizeLat:38 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)864; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz865;866; SSE42-LABEL: 'var_cttz_v32i8u'867; SSE42-NEXT:  Cost Model: Found costs of RThru:22 CodeSize:26 Lat:32 SizeLat:38 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)868; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz869;870; AVX1-LABEL: 'var_cttz_v32i8u'871; AVX1-NEXT:  Cost Model: Found costs of RThru:15 CodeSize:21 Lat:18 SizeLat:30 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)872; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz873;874; AVX2-LABEL: 'var_cttz_v32i8u'875; AVX2-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:11 Lat:7 SizeLat:18 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)876; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz877;878; AVX512F-LABEL: 'var_cttz_v32i8u'879; AVX512F-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:11 Lat:7 SizeLat:18 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)880; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz881;882; AVX512BW-LABEL: 'var_cttz_v32i8u'883; AVX512BW-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)884; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz885;886; AVX512VPOPCNT-LABEL: 'var_cttz_v32i8u'887; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:5 CodeSize:11 Lat:7 SizeLat:18 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)888; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz889;890; AVX512BITALG-LABEL: 'var_cttz_v32i8u'891; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:2 CodeSize:11 Lat:6 SizeLat:11 for: %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 true)892; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <32 x i8> %cttz893;894  %cttz = call <32 x i8> @llvm.cttz.v32i8(<32 x i8> %a, i1 1)895  ret <32 x i8> %cttz896}897 898define <64 x i8> @var_cttz_v64i8(<64 x i8> %a) {899; NOBMI-LABEL: 'var_cttz_v64i8'900; NOBMI-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:68 Lat:92 SizeLat:76 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)901; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz902;903; SSE2-LABEL: 'var_cttz_v64i8'904; SSE2-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:68 Lat:92 SizeLat:76 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)905; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz906;907; SSE42-LABEL: 'var_cttz_v64i8'908; SSE42-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:52 Lat:64 SizeLat:76 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)909; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz910;911; AVX1-LABEL: 'var_cttz_v64i8'912; AVX1-NEXT:  Cost Model: Found costs of RThru:30 CodeSize:42 Lat:36 SizeLat:60 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)913; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz914;915; AVX2-LABEL: 'var_cttz_v64i8'916; AVX2-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:22 Lat:14 SizeLat:36 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)917; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz918;919; AVX512F-LABEL: 'var_cttz_v64i8'920; AVX512F-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:21 Lat:13 SizeLat:21 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)921; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz922;923; AVX512BW-LABEL: 'var_cttz_v64i8'924; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:13 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)925; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz926;927; AVX512VPOPCNT-LABEL: 'var_cttz_v64i8'928; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:21 Lat:13 SizeLat:21 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)929; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz930;931; AVX512BITALG-LABEL: 'var_cttz_v64i8'932; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:13 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 false)933; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz934;935  %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 0)936  ret <64 x i8> %cttz937}938 939define <64 x i8> @var_cttz_v64i8u(<64 x i8> %a) {940; NOBMI-LABEL: 'var_cttz_v64i8u'941; NOBMI-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:68 Lat:92 SizeLat:76 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)942; NOBMI-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz943;944; SSE2-LABEL: 'var_cttz_v64i8u'945; SSE2-NEXT:  Cost Model: Found costs of RThru:52 CodeSize:68 Lat:92 SizeLat:76 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)946; SSE2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz947;948; SSE42-LABEL: 'var_cttz_v64i8u'949; SSE42-NEXT:  Cost Model: Found costs of RThru:44 CodeSize:52 Lat:64 SizeLat:76 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)950; SSE42-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz951;952; AVX1-LABEL: 'var_cttz_v64i8u'953; AVX1-NEXT:  Cost Model: Found costs of RThru:30 CodeSize:42 Lat:36 SizeLat:60 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)954; AVX1-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz955;956; AVX2-LABEL: 'var_cttz_v64i8u'957; AVX2-NEXT:  Cost Model: Found costs of RThru:10 CodeSize:22 Lat:14 SizeLat:36 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)958; AVX2-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz959;960; AVX512F-LABEL: 'var_cttz_v64i8u'961; AVX512F-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:21 Lat:13 SizeLat:21 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)962; AVX512F-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz963;964; AVX512BW-LABEL: 'var_cttz_v64i8u'965; AVX512BW-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:13 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)966; AVX512BW-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz967;968; AVX512VPOPCNT-LABEL: 'var_cttz_v64i8u'969; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:6 CodeSize:21 Lat:13 SizeLat:21 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)970; AVX512VPOPCNT-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz971;972; AVX512BITALG-LABEL: 'var_cttz_v64i8u'973; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:3 CodeSize:11 Lat:7 SizeLat:13 for: %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 true)974; AVX512BITALG-NEXT:  Cost Model: Found costs of RThru:0 CodeSize:1 Lat:1 SizeLat:1 for: ret <64 x i8> %cttz975;976  %cttz = call <64 x i8> @llvm.cttz.v64i8(<64 x i8> %a, i1 1)977  ret <64 x i8> %cttz978}979