1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py 2; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse2 | FileCheck %s -check-prefixes=X86,SSE2 3; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse4.2 | FileCheck %s -check-prefixes=X86,SSE42 4; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx | FileCheck %s -check-prefixes=X86,AVX1 5; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx2 | FileCheck %s -check-prefixes=X86,AVX2 6; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512f | FileCheck %s -check-prefixes=X86,AVX512,AVX512F 7; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512vl,avx512bw,avx512dq | FileCheck %s -check-prefixes=X86,AVX512,AVX512BW 8; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse2 | FileCheck %s -check-prefixes=X64,SSE2 9; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse4.2 | FileCheck %s -check-prefixes=X64,SSE42 10; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx | FileCheck %s -check-prefixes=X64,AVX1 11; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx2 | FileCheck %s -check-prefixes=X64,AVX2 12; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512f | FileCheck %s -check-prefixes=X64,AVX512,AVX512F 13; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512vl,+avx512bw,+avx512dq | FileCheck %s -check-prefixes=X64,AVX512,AVX512BW 14; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+xop | FileCheck %s -check-prefixes=XOP 15; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+xop,+avx2 | FileCheck %s -check-prefixes=XOP 16; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+ssse3 | FileCheck %s -check-prefixes=GFNISSE 17; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx | FileCheck %s -check-prefixes=GFNIAVX 18; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx2 | FileCheck %s -check-prefixes=GFNIAVX2 19; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx512f | FileCheck %s -check-prefixes=GFNIAVX512F 20; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx512bw | FileCheck %s -check-prefixes=GFNIAVX512BW 21 22; Verify the cost of scalar bitreverse instructions. 23 24declare i64 @llvm.bitreverse.i64(i64) 25declare i32 @llvm.bitreverse.i32(i32) 26declare i16 @llvm.bitreverse.i16(i16) 27declare i8 @llvm.bitreverse.i8(i8) 28 29define i64 @var_bitreverse_i64(i64 %a) { 30; X86-LABEL: 'var_bitreverse_i64' 31; X86-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 32; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 33; 34; X64-LABEL: 'var_bitreverse_i64' 35; X64-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 36; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 37; 38; XOP-LABEL: 'var_bitreverse_i64' 39; XOP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 40; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 41; 42; GFNISSE-LABEL: 'var_bitreverse_i64' 43; GFNISSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 44; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 45; 46; GFNIAVX-LABEL: 'var_bitreverse_i64' 47; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 48; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 49; 50; GFNIAVX2-LABEL: 'var_bitreverse_i64' 51; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 52; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 53; 54; GFNIAVX512F-LABEL: 'var_bitreverse_i64' 55; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 56; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 57; 58; GFNIAVX512BW-LABEL: 'var_bitreverse_i64' 59; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 60; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse 61; 62 %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a) 63 ret i64 %bitreverse 64} 65 66define i32 @var_bitreverse_i32(i32 %a) { 67; X86-LABEL: 'var_bitreverse_i32' 68; X86-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 69; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 70; 71; X64-LABEL: 'var_bitreverse_i32' 72; X64-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 73; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 74; 75; XOP-LABEL: 'var_bitreverse_i32' 76; XOP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 77; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 78; 79; GFNISSE-LABEL: 'var_bitreverse_i32' 80; GFNISSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 81; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 82; 83; GFNIAVX-LABEL: 'var_bitreverse_i32' 84; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 85; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 86; 87; GFNIAVX2-LABEL: 'var_bitreverse_i32' 88; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 89; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 90; 91; GFNIAVX512F-LABEL: 'var_bitreverse_i32' 92; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 93; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 94; 95; GFNIAVX512BW-LABEL: 'var_bitreverse_i32' 96; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 97; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse 98; 99 %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a) 100 ret i32 %bitreverse 101} 102 103define i16 @var_bitreverse_i16(i16 %a) { 104; X86-LABEL: 'var_bitreverse_i16' 105; X86-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 106; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 107; 108; X64-LABEL: 'var_bitreverse_i16' 109; X64-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 110; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 111; 112; XOP-LABEL: 'var_bitreverse_i16' 113; XOP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 114; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 115; 116; GFNISSE-LABEL: 'var_bitreverse_i16' 117; GFNISSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 118; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 119; 120; GFNIAVX-LABEL: 'var_bitreverse_i16' 121; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 122; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 123; 124; GFNIAVX2-LABEL: 'var_bitreverse_i16' 125; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 126; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 127; 128; GFNIAVX512F-LABEL: 'var_bitreverse_i16' 129; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 130; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 131; 132; GFNIAVX512BW-LABEL: 'var_bitreverse_i16' 133; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 134; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse 135; 136 %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a) 137 ret i16 %bitreverse 138} 139 140define i8 @var_bitreverse_i8(i8 %a) { 141; X86-LABEL: 'var_bitreverse_i8' 142; X86-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 143; X86-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 144; 145; X64-LABEL: 'var_bitreverse_i8' 146; X64-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 147; X64-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 148; 149; XOP-LABEL: 'var_bitreverse_i8' 150; XOP-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 151; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 152; 153; GFNISSE-LABEL: 'var_bitreverse_i8' 154; GFNISSE-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 155; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 156; 157; GFNIAVX-LABEL: 'var_bitreverse_i8' 158; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 159; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 160; 161; GFNIAVX2-LABEL: 'var_bitreverse_i8' 162; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 163; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 164; 165; GFNIAVX512F-LABEL: 'var_bitreverse_i8' 166; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 167; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 168; 169; GFNIAVX512BW-LABEL: 'var_bitreverse_i8' 170; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 171; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse 172; 173 %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a) 174 ret i8 %bitreverse 175} 176 177; Verify the cost of vector bitreverse instructions. 178 179declare <2 x i64> @llvm.bitreverse.v2i64(<2 x i64>) 180declare <4 x i32> @llvm.bitreverse.v4i32(<4 x i32>) 181declare <8 x i16> @llvm.bitreverse.v8i16(<8 x i16>) 182declare <16 x i8> @llvm.bitreverse.v16i8(<16 x i8>) 183 184declare <4 x i64> @llvm.bitreverse.v4i64(<4 x i64>) 185declare <8 x i32> @llvm.bitreverse.v8i32(<8 x i32>) 186declare <16 x i16> @llvm.bitreverse.v16i16(<16 x i16>) 187declare <32 x i8> @llvm.bitreverse.v32i8(<32 x i8>) 188 189declare <8 x i64> @llvm.bitreverse.v8i64(<8 x i64>) 190declare <16 x i32> @llvm.bitreverse.v16i32(<16 x i32>) 191declare <32 x i16> @llvm.bitreverse.v32i16(<32 x i16>) 192declare <64 x i8> @llvm.bitreverse.v64i8(<64 x i8>) 193 194define <2 x i64> @var_bitreverse_v2i64(<2 x i64> %a) { 195; SSE2-LABEL: 'var_bitreverse_v2i64' 196; SSE2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 197; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 198; 199; SSE42-LABEL: 'var_bitreverse_v2i64' 200; SSE42-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 201; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 202; 203; AVX1-LABEL: 'var_bitreverse_v2i64' 204; AVX1-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 205; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 206; 207; AVX2-LABEL: 'var_bitreverse_v2i64' 208; AVX2-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 209; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 210; 211; AVX512F-LABEL: 'var_bitreverse_v2i64' 212; AVX512F-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 213; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 214; 215; AVX512BW-LABEL: 'var_bitreverse_v2i64' 216; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 217; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 218; 219; XOP-LABEL: 'var_bitreverse_v2i64' 220; XOP-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 221; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 222; 223; GFNISSE-LABEL: 'var_bitreverse_v2i64' 224; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 225; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 226; 227; GFNIAVX-LABEL: 'var_bitreverse_v2i64' 228; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 229; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 230; 231; GFNIAVX2-LABEL: 'var_bitreverse_v2i64' 232; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 233; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 234; 235; GFNIAVX512F-LABEL: 'var_bitreverse_v2i64' 236; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 237; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 238; 239; GFNIAVX512BW-LABEL: 'var_bitreverse_v2i64' 240; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 241; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 242; 243 %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 244 ret <2 x i64> %bitreverse 245} 246 247define <4 x i64> @var_bitreverse_v4i64(<4 x i64> %a) { 248; SSE2-LABEL: 'var_bitreverse_v4i64' 249; SSE2-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 250; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 251; 252; SSE42-LABEL: 'var_bitreverse_v4i64' 253; SSE42-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 254; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 255; 256; AVX1-LABEL: 'var_bitreverse_v4i64' 257; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 258; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 259; 260; AVX2-LABEL: 'var_bitreverse_v4i64' 261; AVX2-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 262; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 263; 264; AVX512-LABEL: 'var_bitreverse_v4i64' 265; AVX512-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 266; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 267; 268; XOP-LABEL: 'var_bitreverse_v4i64' 269; XOP-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 270; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 271; 272; GFNISSE-LABEL: 'var_bitreverse_v4i64' 273; GFNISSE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 274; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 275; 276; GFNIAVX-LABEL: 'var_bitreverse_v4i64' 277; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 278; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 279; 280; GFNIAVX2-LABEL: 'var_bitreverse_v4i64' 281; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 282; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 283; 284; GFNIAVX512F-LABEL: 'var_bitreverse_v4i64' 285; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 286; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 287; 288; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i64' 289; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 290; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 291; 292 %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 293 ret <4 x i64> %bitreverse 294} 295 296define <8 x i64> @var_bitreverse_v8i64(<8 x i64> %a) { 297; SSE2-LABEL: 'var_bitreverse_v8i64' 298; SSE2-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 299; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 300; 301; SSE42-LABEL: 'var_bitreverse_v8i64' 302; SSE42-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 303; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 304; 305; AVX1-LABEL: 'var_bitreverse_v8i64' 306; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 307; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 308; 309; AVX2-LABEL: 'var_bitreverse_v8i64' 310; AVX2-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 311; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 312; 313; AVX512F-LABEL: 'var_bitreverse_v8i64' 314; AVX512F-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 315; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 316; 317; AVX512BW-LABEL: 'var_bitreverse_v8i64' 318; AVX512BW-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 319; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 320; 321; XOP-LABEL: 'var_bitreverse_v8i64' 322; XOP-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 323; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 324; 325; GFNISSE-LABEL: 'var_bitreverse_v8i64' 326; GFNISSE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 327; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 328; 329; GFNIAVX-LABEL: 'var_bitreverse_v8i64' 330; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 331; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 332; 333; GFNIAVX2-LABEL: 'var_bitreverse_v8i64' 334; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 335; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 336; 337; GFNIAVX512F-LABEL: 'var_bitreverse_v8i64' 338; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 339; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 340; 341; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i64' 342; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 343; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 344; 345 %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 346 ret <8 x i64> %bitreverse 347} 348 349define <4 x i32> @var_bitreverse_v4i32(<4 x i32> %a) { 350; SSE2-LABEL: 'var_bitreverse_v4i32' 351; SSE2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 352; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 353; 354; SSE42-LABEL: 'var_bitreverse_v4i32' 355; SSE42-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 356; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 357; 358; AVX1-LABEL: 'var_bitreverse_v4i32' 359; AVX1-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 360; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 361; 362; AVX2-LABEL: 'var_bitreverse_v4i32' 363; AVX2-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 364; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 365; 366; AVX512F-LABEL: 'var_bitreverse_v4i32' 367; AVX512F-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 368; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 369; 370; AVX512BW-LABEL: 'var_bitreverse_v4i32' 371; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 372; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 373; 374; XOP-LABEL: 'var_bitreverse_v4i32' 375; XOP-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 376; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 377; 378; GFNISSE-LABEL: 'var_bitreverse_v4i32' 379; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 380; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 381; 382; GFNIAVX-LABEL: 'var_bitreverse_v4i32' 383; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 384; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 385; 386; GFNIAVX2-LABEL: 'var_bitreverse_v4i32' 387; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 388; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 389; 390; GFNIAVX512F-LABEL: 'var_bitreverse_v4i32' 391; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 392; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 393; 394; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i32' 395; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 396; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 397; 398 %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 399 ret <4 x i32> %bitreverse 400} 401 402define <8 x i32> @var_bitreverse_v8i32(<8 x i32> %a) { 403; SSE2-LABEL: 'var_bitreverse_v8i32' 404; SSE2-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 405; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 406; 407; SSE42-LABEL: 'var_bitreverse_v8i32' 408; SSE42-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 409; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 410; 411; AVX1-LABEL: 'var_bitreverse_v8i32' 412; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 413; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 414; 415; AVX2-LABEL: 'var_bitreverse_v8i32' 416; AVX2-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 417; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 418; 419; AVX512-LABEL: 'var_bitreverse_v8i32' 420; AVX512-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 421; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 422; 423; XOP-LABEL: 'var_bitreverse_v8i32' 424; XOP-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 425; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 426; 427; GFNISSE-LABEL: 'var_bitreverse_v8i32' 428; GFNISSE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 429; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 430; 431; GFNIAVX-LABEL: 'var_bitreverse_v8i32' 432; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 433; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 434; 435; GFNIAVX2-LABEL: 'var_bitreverse_v8i32' 436; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 437; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 438; 439; GFNIAVX512F-LABEL: 'var_bitreverse_v8i32' 440; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 441; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 442; 443; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i32' 444; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 445; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 446; 447 %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 448 ret <8 x i32> %bitreverse 449} 450 451define <16 x i32> @var_bitreverse_v16i32(<16 x i32> %a) { 452; SSE2-LABEL: 'var_bitreverse_v16i32' 453; SSE2-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 454; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 455; 456; SSE42-LABEL: 'var_bitreverse_v16i32' 457; SSE42-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 458; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 459; 460; AVX1-LABEL: 'var_bitreverse_v16i32' 461; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 462; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 463; 464; AVX2-LABEL: 'var_bitreverse_v16i32' 465; AVX2-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 466; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 467; 468; AVX512F-LABEL: 'var_bitreverse_v16i32' 469; AVX512F-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 470; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 471; 472; AVX512BW-LABEL: 'var_bitreverse_v16i32' 473; AVX512BW-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 474; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 475; 476; XOP-LABEL: 'var_bitreverse_v16i32' 477; XOP-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 478; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 479; 480; GFNISSE-LABEL: 'var_bitreverse_v16i32' 481; GFNISSE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 482; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 483; 484; GFNIAVX-LABEL: 'var_bitreverse_v16i32' 485; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 486; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 487; 488; GFNIAVX2-LABEL: 'var_bitreverse_v16i32' 489; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 490; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 491; 492; GFNIAVX512F-LABEL: 'var_bitreverse_v16i32' 493; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 494; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 495; 496; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i32' 497; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 498; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 499; 500 %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 501 ret <16 x i32> %bitreverse 502} 503 504define <8 x i16> @var_bitreverse_v8i16(<8 x i16> %a) { 505; SSE2-LABEL: 'var_bitreverse_v8i16' 506; SSE2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 507; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 508; 509; SSE42-LABEL: 'var_bitreverse_v8i16' 510; SSE42-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 511; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 512; 513; AVX1-LABEL: 'var_bitreverse_v8i16' 514; AVX1-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 515; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 516; 517; AVX2-LABEL: 'var_bitreverse_v8i16' 518; AVX2-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 519; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 520; 521; AVX512F-LABEL: 'var_bitreverse_v8i16' 522; AVX512F-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 523; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 524; 525; AVX512BW-LABEL: 'var_bitreverse_v8i16' 526; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 527; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 528; 529; XOP-LABEL: 'var_bitreverse_v8i16' 530; XOP-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 531; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 532; 533; GFNISSE-LABEL: 'var_bitreverse_v8i16' 534; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 535; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 536; 537; GFNIAVX-LABEL: 'var_bitreverse_v8i16' 538; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 539; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 540; 541; GFNIAVX2-LABEL: 'var_bitreverse_v8i16' 542; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 543; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 544; 545; GFNIAVX512F-LABEL: 'var_bitreverse_v8i16' 546; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 547; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 548; 549; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i16' 550; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 551; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 552; 553 %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 554 ret <8 x i16> %bitreverse 555} 556 557define <16 x i16> @var_bitreverse_v16i16(<16 x i16> %a) { 558; SSE2-LABEL: 'var_bitreverse_v16i16' 559; SSE2-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 560; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 561; 562; SSE42-LABEL: 'var_bitreverse_v16i16' 563; SSE42-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 564; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 565; 566; AVX1-LABEL: 'var_bitreverse_v16i16' 567; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 568; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 569; 570; AVX2-LABEL: 'var_bitreverse_v16i16' 571; AVX2-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 572; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 573; 574; AVX512-LABEL: 'var_bitreverse_v16i16' 575; AVX512-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 576; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 577; 578; XOP-LABEL: 'var_bitreverse_v16i16' 579; XOP-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 580; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 581; 582; GFNISSE-LABEL: 'var_bitreverse_v16i16' 583; GFNISSE-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 584; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 585; 586; GFNIAVX-LABEL: 'var_bitreverse_v16i16' 587; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 588; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 589; 590; GFNIAVX2-LABEL: 'var_bitreverse_v16i16' 591; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 592; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 593; 594; GFNIAVX512F-LABEL: 'var_bitreverse_v16i16' 595; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 596; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 597; 598; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i16' 599; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 600; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 601; 602 %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 603 ret <16 x i16> %bitreverse 604} 605 606define <32 x i16> @var_bitreverse_v32i16(<32 x i16> %a) { 607; SSE2-LABEL: 'var_bitreverse_v32i16' 608; SSE2-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 609; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 610; 611; SSE42-LABEL: 'var_bitreverse_v32i16' 612; SSE42-NEXT: Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 613; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 614; 615; AVX1-LABEL: 'var_bitreverse_v32i16' 616; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 617; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 618; 619; AVX2-LABEL: 'var_bitreverse_v32i16' 620; AVX2-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 621; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 622; 623; AVX512F-LABEL: 'var_bitreverse_v32i16' 624; AVX512F-NEXT: Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 625; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 626; 627; AVX512BW-LABEL: 'var_bitreverse_v32i16' 628; AVX512BW-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 629; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 630; 631; XOP-LABEL: 'var_bitreverse_v32i16' 632; XOP-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 633; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 634; 635; GFNISSE-LABEL: 'var_bitreverse_v32i16' 636; GFNISSE-NEXT: Cost Model: Found an estimated cost of 32 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 637; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 638; 639; GFNIAVX-LABEL: 'var_bitreverse_v32i16' 640; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 641; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 642; 643; GFNIAVX2-LABEL: 'var_bitreverse_v32i16' 644; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 645; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 646; 647; GFNIAVX512F-LABEL: 'var_bitreverse_v32i16' 648; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 649; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 650; 651; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i16' 652; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 653; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 654; 655 %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 656 ret <32 x i16> %bitreverse 657} 658 659define <16 x i8> @var_bitreverse_v16i8(<16 x i8> %a) { 660; SSE2-LABEL: 'var_bitreverse_v16i8' 661; SSE2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 662; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 663; 664; SSE42-LABEL: 'var_bitreverse_v16i8' 665; SSE42-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 666; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 667; 668; AVX1-LABEL: 'var_bitreverse_v16i8' 669; AVX1-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 670; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 671; 672; AVX2-LABEL: 'var_bitreverse_v16i8' 673; AVX2-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 674; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 675; 676; AVX512F-LABEL: 'var_bitreverse_v16i8' 677; AVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 678; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 679; 680; AVX512BW-LABEL: 'var_bitreverse_v16i8' 681; AVX512BW-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 682; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 683; 684; XOP-LABEL: 'var_bitreverse_v16i8' 685; XOP-NEXT: Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 686; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 687; 688; GFNISSE-LABEL: 'var_bitreverse_v16i8' 689; GFNISSE-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 690; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 691; 692; GFNIAVX-LABEL: 'var_bitreverse_v16i8' 693; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 694; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 695; 696; GFNIAVX2-LABEL: 'var_bitreverse_v16i8' 697; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 698; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 699; 700; GFNIAVX512F-LABEL: 'var_bitreverse_v16i8' 701; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 702; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 703; 704; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i8' 705; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 706; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 707; 708 %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 709 ret <16 x i8> %bitreverse 710} 711 712define <32 x i8> @var_bitreverse_v32i8(<32 x i8> %a) { 713; SSE2-LABEL: 'var_bitreverse_v32i8' 714; SSE2-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 715; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 716; 717; SSE42-LABEL: 'var_bitreverse_v32i8' 718; SSE42-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 719; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 720; 721; AVX1-LABEL: 'var_bitreverse_v32i8' 722; AVX1-NEXT: Cost Model: Found an estimated cost of 15 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 723; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 724; 725; AVX2-LABEL: 'var_bitreverse_v32i8' 726; AVX2-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 727; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 728; 729; AVX512-LABEL: 'var_bitreverse_v32i8' 730; AVX512-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 731; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 732; 733; XOP-LABEL: 'var_bitreverse_v32i8' 734; XOP-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 735; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 736; 737; GFNISSE-LABEL: 'var_bitreverse_v32i8' 738; GFNISSE-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 739; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 740; 741; GFNIAVX-LABEL: 'var_bitreverse_v32i8' 742; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 743; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 744; 745; GFNIAVX2-LABEL: 'var_bitreverse_v32i8' 746; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 747; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 748; 749; GFNIAVX512F-LABEL: 'var_bitreverse_v32i8' 750; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 751; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 752; 753; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i8' 754; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 755; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 756; 757 %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 758 ret <32 x i8> %bitreverse 759} 760 761define <64 x i8> @var_bitreverse_v64i8(<64 x i8> %a) { 762; SSE2-LABEL: 'var_bitreverse_v64i8' 763; SSE2-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 764; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 765; 766; SSE42-LABEL: 'var_bitreverse_v64i8' 767; SSE42-NEXT: Cost Model: Found an estimated cost of 48 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 768; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 769; 770; AVX1-LABEL: 'var_bitreverse_v64i8' 771; AVX1-NEXT: Cost Model: Found an estimated cost of 30 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 772; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 773; 774; AVX2-LABEL: 'var_bitreverse_v64i8' 775; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 776; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 777; 778; AVX512F-LABEL: 'var_bitreverse_v64i8' 779; AVX512F-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 780; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 781; 782; AVX512BW-LABEL: 'var_bitreverse_v64i8' 783; AVX512BW-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 784; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 785; 786; XOP-LABEL: 'var_bitreverse_v64i8' 787; XOP-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 788; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 789; 790; GFNISSE-LABEL: 'var_bitreverse_v64i8' 791; GFNISSE-NEXT: Cost Model: Found an estimated cost of 24 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 792; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 793; 794; GFNIAVX-LABEL: 'var_bitreverse_v64i8' 795; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 796; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 797; 798; GFNIAVX2-LABEL: 'var_bitreverse_v64i8' 799; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 800; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 801; 802; GFNIAVX512F-LABEL: 'var_bitreverse_v64i8' 803; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 804; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 805; 806; GFNIAVX512BW-LABEL: 'var_bitreverse_v64i8' 807; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 808; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 809; 810 %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 811 ret <64 x i8> %bitreverse 812} 813