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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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=code-size -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 34 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 20 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 3 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 4 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 4 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 4 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 4 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 4 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 17 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 17 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 3 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 4 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 4 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 4 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 4 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 4 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 17 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 17 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 3 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 4 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 4 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 4 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 4 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 4 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 13 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 13 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 3 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 32 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 11 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 10 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 10 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; AVX512-LABEL: 'var_bitreverse_v2i64' 212; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 213; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 214; 215; XOP-LABEL: 'var_bitreverse_v2i64' 216; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 217; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 218; 219; GFNISSE-LABEL: 'var_bitreverse_v2i64' 220; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 221; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 222; 223; GFNIAVX-LABEL: 'var_bitreverse_v2i64' 224; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 225; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 226; 227; GFNIAVX2-LABEL: 'var_bitreverse_v2i64' 228; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 229; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 230; 231; GFNIAVX512F-LABEL: 'var_bitreverse_v2i64' 232; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 233; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 234; 235; GFNIAVX512BW-LABEL: 'var_bitreverse_v2i64' 236; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 237; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse 238; 239 %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) 240 ret <2 x i64> %bitreverse 241} 242 243define <4 x i64> @var_bitreverse_v4i64(<4 x i64> %a) { 244; SSE2-LABEL: 'var_bitreverse_v4i64' 245; SSE2-NEXT: Cost Model: Found an estimated cost of 64 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 246; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 247; 248; SSE42-LABEL: 'var_bitreverse_v4i64' 249; SSE42-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 250; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 251; 252; AVX1-LABEL: 'var_bitreverse_v4i64' 253; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 254; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 255; 256; AVX2-LABEL: 'var_bitreverse_v4i64' 257; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 258; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 259; 260; AVX512-LABEL: 'var_bitreverse_v4i64' 261; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 262; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 263; 264; XOP-LABEL: 'var_bitreverse_v4i64' 265; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 266; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 267; 268; GFNISSE-LABEL: 'var_bitreverse_v4i64' 269; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 270; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 271; 272; GFNIAVX-LABEL: 'var_bitreverse_v4i64' 273; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 274; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 275; 276; GFNIAVX2-LABEL: 'var_bitreverse_v4i64' 277; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 278; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 279; 280; GFNIAVX512F-LABEL: 'var_bitreverse_v4i64' 281; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 282; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 283; 284; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i64' 285; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 286; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse 287; 288 %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a) 289 ret <4 x i64> %bitreverse 290} 291 292define <8 x i64> @var_bitreverse_v8i64(<8 x i64> %a) { 293; SSE2-LABEL: 'var_bitreverse_v8i64' 294; SSE2-NEXT: Cost Model: Found an estimated cost of 128 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 295; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 296; 297; SSE42-LABEL: 'var_bitreverse_v8i64' 298; SSE42-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 299; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 300; 301; AVX1-LABEL: 'var_bitreverse_v8i64' 302; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 303; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 304; 305; AVX2-LABEL: 'var_bitreverse_v8i64' 306; AVX2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 307; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 308; 309; AVX512F-LABEL: 'var_bitreverse_v8i64' 310; AVX512F-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 311; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 312; 313; AVX512BW-LABEL: 'var_bitreverse_v8i64' 314; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 315; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 316; 317; XOP-LABEL: 'var_bitreverse_v8i64' 318; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 319; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 320; 321; GFNISSE-LABEL: 'var_bitreverse_v8i64' 322; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 323; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 324; 325; GFNIAVX-LABEL: 'var_bitreverse_v8i64' 326; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 327; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 328; 329; GFNIAVX2-LABEL: 'var_bitreverse_v8i64' 330; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 331; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 332; 333; GFNIAVX512F-LABEL: 'var_bitreverse_v8i64' 334; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 335; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 336; 337; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i64' 338; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 339; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse 340; 341 %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a) 342 ret <8 x i64> %bitreverse 343} 344 345define <4 x i32> @var_bitreverse_v4i32(<4 x i32> %a) { 346; SSE2-LABEL: 'var_bitreverse_v4i32' 347; SSE2-NEXT: Cost Model: Found an estimated cost of 30 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 348; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 349; 350; SSE42-LABEL: 'var_bitreverse_v4i32' 351; SSE42-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 352; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 353; 354; AVX1-LABEL: 'var_bitreverse_v4i32' 355; AVX1-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 356; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 357; 358; AVX2-LABEL: 'var_bitreverse_v4i32' 359; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 360; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 361; 362; AVX512-LABEL: 'var_bitreverse_v4i32' 363; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 364; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 365; 366; XOP-LABEL: 'var_bitreverse_v4i32' 367; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 368; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 369; 370; GFNISSE-LABEL: 'var_bitreverse_v4i32' 371; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 372; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 373; 374; GFNIAVX-LABEL: 'var_bitreverse_v4i32' 375; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 376; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 377; 378; GFNIAVX2-LABEL: 'var_bitreverse_v4i32' 379; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 380; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 381; 382; GFNIAVX512F-LABEL: 'var_bitreverse_v4i32' 383; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 384; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 385; 386; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i32' 387; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 388; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse 389; 390 %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) 391 ret <4 x i32> %bitreverse 392} 393 394define <8 x i32> @var_bitreverse_v8i32(<8 x i32> %a) { 395; SSE2-LABEL: 'var_bitreverse_v8i32' 396; SSE2-NEXT: Cost Model: Found an estimated cost of 60 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 397; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 398; 399; SSE42-LABEL: 'var_bitreverse_v8i32' 400; SSE42-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 401; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 402; 403; AVX1-LABEL: 'var_bitreverse_v8i32' 404; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 405; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 406; 407; AVX2-LABEL: 'var_bitreverse_v8i32' 408; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 409; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 410; 411; AVX512-LABEL: 'var_bitreverse_v8i32' 412; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 413; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 414; 415; XOP-LABEL: 'var_bitreverse_v8i32' 416; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 417; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 418; 419; GFNISSE-LABEL: 'var_bitreverse_v8i32' 420; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 421; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 422; 423; GFNIAVX-LABEL: 'var_bitreverse_v8i32' 424; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 425; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 426; 427; GFNIAVX2-LABEL: 'var_bitreverse_v8i32' 428; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 429; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 430; 431; GFNIAVX512F-LABEL: 'var_bitreverse_v8i32' 432; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 433; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 434; 435; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i32' 436; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 437; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse 438; 439 %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a) 440 ret <8 x i32> %bitreverse 441} 442 443define <16 x i32> @var_bitreverse_v16i32(<16 x i32> %a) { 444; SSE2-LABEL: 'var_bitreverse_v16i32' 445; SSE2-NEXT: Cost Model: Found an estimated cost of 120 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 446; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 447; 448; SSE42-LABEL: 'var_bitreverse_v16i32' 449; SSE42-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 450; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 451; 452; AVX1-LABEL: 'var_bitreverse_v16i32' 453; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 454; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 455; 456; AVX2-LABEL: 'var_bitreverse_v16i32' 457; AVX2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 458; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 459; 460; AVX512F-LABEL: 'var_bitreverse_v16i32' 461; AVX512F-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 462; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 463; 464; AVX512BW-LABEL: 'var_bitreverse_v16i32' 465; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 466; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 467; 468; XOP-LABEL: 'var_bitreverse_v16i32' 469; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 470; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 471; 472; GFNISSE-LABEL: 'var_bitreverse_v16i32' 473; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 474; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 475; 476; GFNIAVX-LABEL: 'var_bitreverse_v16i32' 477; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 478; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 479; 480; GFNIAVX2-LABEL: 'var_bitreverse_v16i32' 481; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 482; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 483; 484; GFNIAVX512F-LABEL: 'var_bitreverse_v16i32' 485; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 486; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 487; 488; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i32' 489; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 490; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse 491; 492 %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a) 493 ret <16 x i32> %bitreverse 494} 495 496define <8 x i16> @var_bitreverse_v8i16(<8 x i16> %a) { 497; SSE2-LABEL: 'var_bitreverse_v8i16' 498; SSE2-NEXT: Cost Model: Found an estimated cost of 25 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 499; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 500; 501; SSE42-LABEL: 'var_bitreverse_v8i16' 502; SSE42-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 503; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 504; 505; AVX1-LABEL: 'var_bitreverse_v8i16' 506; AVX1-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 507; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 508; 509; AVX2-LABEL: 'var_bitreverse_v8i16' 510; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 511; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 512; 513; AVX512-LABEL: 'var_bitreverse_v8i16' 514; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 515; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 516; 517; XOP-LABEL: 'var_bitreverse_v8i16' 518; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 519; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 520; 521; GFNISSE-LABEL: 'var_bitreverse_v8i16' 522; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 523; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 524; 525; GFNIAVX-LABEL: 'var_bitreverse_v8i16' 526; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 527; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 528; 529; GFNIAVX2-LABEL: 'var_bitreverse_v8i16' 530; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 531; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 532; 533; GFNIAVX512F-LABEL: 'var_bitreverse_v8i16' 534; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 535; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 536; 537; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i16' 538; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 539; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse 540; 541 %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) 542 ret <8 x i16> %bitreverse 543} 544 545define <16 x i16> @var_bitreverse_v16i16(<16 x i16> %a) { 546; SSE2-LABEL: 'var_bitreverse_v16i16' 547; SSE2-NEXT: Cost Model: Found an estimated cost of 50 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 548; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 549; 550; SSE42-LABEL: 'var_bitreverse_v16i16' 551; SSE42-NEXT: Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 552; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 553; 554; AVX1-LABEL: 'var_bitreverse_v16i16' 555; AVX1-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 556; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 557; 558; AVX2-LABEL: 'var_bitreverse_v16i16' 559; AVX2-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 560; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 561; 562; AVX512-LABEL: 'var_bitreverse_v16i16' 563; AVX512-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 564; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 565; 566; XOP-LABEL: 'var_bitreverse_v16i16' 567; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 568; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 569; 570; GFNISSE-LABEL: 'var_bitreverse_v16i16' 571; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 572; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 573; 574; GFNIAVX-LABEL: 'var_bitreverse_v16i16' 575; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 576; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 577; 578; GFNIAVX2-LABEL: 'var_bitreverse_v16i16' 579; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 580; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 581; 582; GFNIAVX512F-LABEL: 'var_bitreverse_v16i16' 583; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 584; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 585; 586; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i16' 587; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 588; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse 589; 590 %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a) 591 ret <16 x i16> %bitreverse 592} 593 594define <32 x i16> @var_bitreverse_v32i16(<32 x i16> %a) { 595; SSE2-LABEL: 'var_bitreverse_v32i16' 596; SSE2-NEXT: Cost Model: Found an estimated cost of 100 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 597; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 598; 599; SSE42-LABEL: 'var_bitreverse_v32i16' 600; SSE42-NEXT: Cost Model: Found an estimated cost of 44 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 601; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 602; 603; AVX1-LABEL: 'var_bitreverse_v32i16' 604; AVX1-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 605; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 606; 607; AVX2-LABEL: 'var_bitreverse_v32i16' 608; AVX2-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 609; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 610; 611; AVX512F-LABEL: 'var_bitreverse_v32i16' 612; AVX512F-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 613; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 614; 615; AVX512BW-LABEL: 'var_bitreverse_v32i16' 616; AVX512BW-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 617; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 618; 619; XOP-LABEL: 'var_bitreverse_v32i16' 620; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 621; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 622; 623; GFNISSE-LABEL: 'var_bitreverse_v32i16' 624; GFNISSE-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 625; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 626; 627; GFNIAVX-LABEL: 'var_bitreverse_v32i16' 628; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 629; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 630; 631; GFNIAVX2-LABEL: 'var_bitreverse_v32i16' 632; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 633; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 634; 635; GFNIAVX512F-LABEL: 'var_bitreverse_v32i16' 636; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 637; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 638; 639; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i16' 640; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 641; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse 642; 643 %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a) 644 ret <32 x i16> %bitreverse 645} 646 647define <16 x i8> @var_bitreverse_v16i8(<16 x i8> %a) { 648; SSE2-LABEL: 'var_bitreverse_v16i8' 649; SSE2-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 650; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 651; 652; SSE42-LABEL: 'var_bitreverse_v16i8' 653; SSE42-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 654; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 655; 656; AVX1-LABEL: 'var_bitreverse_v16i8' 657; AVX1-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 658; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 659; 660; AVX2-LABEL: 'var_bitreverse_v16i8' 661; AVX2-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 662; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 663; 664; AVX512-LABEL: 'var_bitreverse_v16i8' 665; AVX512-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 666; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 667; 668; XOP-LABEL: 'var_bitreverse_v16i8' 669; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 670; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 671; 672; GFNISSE-LABEL: 'var_bitreverse_v16i8' 673; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 674; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 675; 676; GFNIAVX-LABEL: 'var_bitreverse_v16i8' 677; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 678; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 679; 680; GFNIAVX2-LABEL: 'var_bitreverse_v16i8' 681; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 682; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 683; 684; GFNIAVX512F-LABEL: 'var_bitreverse_v16i8' 685; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 686; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 687; 688; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i8' 689; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 690; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse 691; 692 %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) 693 ret <16 x i8> %bitreverse 694} 695 696define <32 x i8> @var_bitreverse_v32i8(<32 x i8> %a) { 697; SSE2-LABEL: 'var_bitreverse_v32i8' 698; SSE2-NEXT: Cost Model: Found an estimated cost of 42 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 699; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 700; 701; SSE42-LABEL: 'var_bitreverse_v32i8' 702; SSE42-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 703; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 704; 705; AVX1-LABEL: 'var_bitreverse_v32i8' 706; AVX1-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 707; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 708; 709; AVX2-LABEL: 'var_bitreverse_v32i8' 710; AVX2-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 711; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 712; 713; AVX512-LABEL: 'var_bitreverse_v32i8' 714; AVX512-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 715; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 716; 717; XOP-LABEL: 'var_bitreverse_v32i8' 718; XOP-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 719; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 720; 721; GFNISSE-LABEL: 'var_bitreverse_v32i8' 722; GFNISSE-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 723; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 724; 725; GFNIAVX-LABEL: 'var_bitreverse_v32i8' 726; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 727; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 728; 729; GFNIAVX2-LABEL: 'var_bitreverse_v32i8' 730; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 731; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 732; 733; GFNIAVX512F-LABEL: 'var_bitreverse_v32i8' 734; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 735; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 736; 737; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i8' 738; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 739; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse 740; 741 %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a) 742 ret <32 x i8> %bitreverse 743} 744 745define <64 x i8> @var_bitreverse_v64i8(<64 x i8> %a) { 746; SSE2-LABEL: 'var_bitreverse_v64i8' 747; SSE2-NEXT: Cost Model: Found an estimated cost of 84 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 748; SSE2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 749; 750; SSE42-LABEL: 'var_bitreverse_v64i8' 751; SSE42-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 752; SSE42-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 753; 754; AVX1-LABEL: 'var_bitreverse_v64i8' 755; AVX1-NEXT: Cost Model: Found an estimated cost of 34 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 756; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 757; 758; AVX2-LABEL: 'var_bitreverse_v64i8' 759; AVX2-NEXT: Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 760; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 761; 762; AVX512F-LABEL: 'var_bitreverse_v64i8' 763; AVX512F-NEXT: Cost Model: Found an estimated cost of 17 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 764; AVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 765; 766; AVX512BW-LABEL: 'var_bitreverse_v64i8' 767; AVX512BW-NEXT: Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 768; AVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 769; 770; XOP-LABEL: 'var_bitreverse_v64i8' 771; XOP-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 772; XOP-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 773; 774; GFNISSE-LABEL: 'var_bitreverse_v64i8' 775; GFNISSE-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 776; GFNISSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 777; 778; GFNIAVX-LABEL: 'var_bitreverse_v64i8' 779; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 780; GFNIAVX-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 781; 782; GFNIAVX2-LABEL: 'var_bitreverse_v64i8' 783; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 784; GFNIAVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 785; 786; GFNIAVX512F-LABEL: 'var_bitreverse_v64i8' 787; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 788; GFNIAVX512F-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 789; 790; GFNIAVX512BW-LABEL: 'var_bitreverse_v64i8' 791; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 792; GFNIAVX512BW-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse 793; 794 %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a) 795 ret <64 x i8> %bitreverse 796} 797