[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / Analysis / CostModel / X86 / bitreverse-codesize.ll
blob90e49e6ccb81ce1a8b0299921cc6c71c9baca6c3
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
22 ; Verify the cost of scalar bitreverse instructions.
24 declare i64 @llvm.bitreverse.i64(i64)
25 declare i32 @llvm.bitreverse.i32(i32)
26 declare i16 @llvm.bitreverse.i16(i16)
27 declare  i8 @llvm.bitreverse.i8(i8)
29 define 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
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
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
42 ; GFNISSE-LABEL: 'var_bitreverse_i64'
43 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 20 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
46 ; GFNIAVX-LABEL: 'var_bitreverse_i64'
47 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 20 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
50 ; GFNIAVX2-LABEL: 'var_bitreverse_i64'
51 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 20 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
54 ; GFNIAVX512F-LABEL: 'var_bitreverse_i64'
55 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 20 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
58 ; GFNIAVX512BW-LABEL: 'var_bitreverse_i64'
59 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 20 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
62   %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
63   ret i64 %bitreverse
66 define 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
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
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
79 ; GFNISSE-LABEL: 'var_bitreverse_i32'
80 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 17 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
83 ; GFNIAVX-LABEL: 'var_bitreverse_i32'
84 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 17 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
87 ; GFNIAVX2-LABEL: 'var_bitreverse_i32'
88 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 17 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
91 ; GFNIAVX512F-LABEL: 'var_bitreverse_i32'
92 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 17 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
95 ; GFNIAVX512BW-LABEL: 'var_bitreverse_i32'
96 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 17 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
99   %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
100   ret i32 %bitreverse
103 define 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
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
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
116 ; GFNISSE-LABEL: 'var_bitreverse_i16'
117 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 17 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
120 ; GFNIAVX-LABEL: 'var_bitreverse_i16'
121 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 17 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
124 ; GFNIAVX2-LABEL: 'var_bitreverse_i16'
125 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 17 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
128 ; GFNIAVX512F-LABEL: 'var_bitreverse_i16'
129 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 17 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
132 ; GFNIAVX512BW-LABEL: 'var_bitreverse_i16'
133 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 17 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
136   %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
137   ret i16 %bitreverse
140 define 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
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
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
153 ; GFNISSE-LABEL: 'var_bitreverse_i8'
154 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 13 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
157 ; GFNIAVX-LABEL: 'var_bitreverse_i8'
158 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 13 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
161 ; GFNIAVX2-LABEL: 'var_bitreverse_i8'
162 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 13 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
165 ; GFNIAVX512F-LABEL: 'var_bitreverse_i8'
166 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 13 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
169 ; GFNIAVX512BW-LABEL: 'var_bitreverse_i8'
170 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 13 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
173   %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a)
174   ret i8 %bitreverse
177 ; Verify the cost of vector bitreverse instructions.
179 declare <2 x i64> @llvm.bitreverse.v2i64(<2 x i64>)
180 declare <4 x i32> @llvm.bitreverse.v4i32(<4 x i32>)
181 declare <8 x i16> @llvm.bitreverse.v8i16(<8 x i16>)
182 declare <16 x i8> @llvm.bitreverse.v16i8(<16 x i8>)
184 declare <4 x i64> @llvm.bitreverse.v4i64(<4 x i64>)
185 declare <8 x i32> @llvm.bitreverse.v8i32(<8 x i32>)
186 declare <16 x i16> @llvm.bitreverse.v16i16(<16 x i16>)
187 declare <32 x i8> @llvm.bitreverse.v32i8(<32 x i8>)
189 declare <8 x i64> @llvm.bitreverse.v8i64(<8 x i64>)
190 declare <16 x i32> @llvm.bitreverse.v16i32(<16 x i32>)
191 declare <32 x i16> @llvm.bitreverse.v32i16(<32 x i16>)
192 declare <64 x i8> @llvm.bitreverse.v64i8(<64 x i8>)
194 define <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
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
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
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
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
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
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
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
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
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
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
239   %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
240   ret <2 x i64> %bitreverse
243 define <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
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
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
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
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
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
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
272 ; GFNIAVX-LABEL: 'var_bitreverse_v4i64'
273 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 6 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
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
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
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
288   %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
289   ret <4 x i64> %bitreverse
292 define <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
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
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
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
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
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
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
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
325 ; GFNIAVX-LABEL: 'var_bitreverse_v8i64'
326 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 12 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
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
333 ; GFNIAVX512F-LABEL: 'var_bitreverse_v8i64'
334 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 6 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
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
341   %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
342   ret <8 x i64> %bitreverse
345 define <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
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
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
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
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
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
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
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
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
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
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
390   %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
391   ret <4 x i32> %bitreverse
394 define <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
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
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
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
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
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
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
423 ; GFNIAVX-LABEL: 'var_bitreverse_v8i32'
424 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 6 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
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
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
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
439   %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
440   ret <8 x i32> %bitreverse
443 define <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
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
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
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
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
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
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
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
476 ; GFNIAVX-LABEL: 'var_bitreverse_v16i32'
477 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 12 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
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
484 ; GFNIAVX512F-LABEL: 'var_bitreverse_v16i32'
485 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 6 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
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
492   %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
493   ret <16 x i32> %bitreverse
496 define <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
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
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
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
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
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
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
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
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
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
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
541   %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
542   ret <8 x i16> %bitreverse
545 define <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
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
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
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
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
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
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
574 ; GFNIAVX-LABEL: 'var_bitreverse_v16i16'
575 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 6 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
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
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
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
590   %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
591   ret <16 x i16> %bitreverse
594 define <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
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
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
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
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
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
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
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
627 ; GFNIAVX-LABEL: 'var_bitreverse_v32i16'
628 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 12 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
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
635 ; GFNIAVX512F-LABEL: 'var_bitreverse_v32i16'
636 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 6 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
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
643   %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
644   ret <32 x i16> %bitreverse
647 define <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
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
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
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
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
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
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
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
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
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
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
692   %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
693   ret <16 x i8> %bitreverse
696 define <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
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
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
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
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
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
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
725 ; GFNIAVX-LABEL: 'var_bitreverse_v32i8'
726 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 4 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
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
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
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
741   %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
742   ret <32 x i8> %bitreverse
745 define <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
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
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
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
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
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
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
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
778 ; GFNIAVX-LABEL: 'var_bitreverse_v64i8'
779 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 8 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
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
786 ; GFNIAVX512F-LABEL: 'var_bitreverse_v64i8'
787 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 4 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
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
794   %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
795   ret <64 x i8> %bitreverse