[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Analysis / CostModel / X86 / bitreverse-latency.ll
blobba231b985c26bf03c00ace02c9e9025728cbf1b2
1 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2 ; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse2 | FileCheck %s -check-prefixes=X86,SSE2
3 ; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse4.2 | FileCheck %s -check-prefixes=X86,SSE42
4 ; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx | FileCheck %s -check-prefixes=X86,AVX1
5 ; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx2 | FileCheck %s -check-prefixes=X86,AVX2
6 ; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512f | FileCheck %s -check-prefixes=X86,AVX512,AVX512F
7 ; RUN: opt < %s -mtriple=i686-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512vl,avx512bw,avx512dq | FileCheck %s -check-prefixes=X86,AVX512,AVX512BW
8 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse2 | FileCheck %s -check-prefixes=X64,SSE2
9 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse4.2 | FileCheck %s -check-prefixes=X64,SSE42
10 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx | FileCheck %s -check-prefixes=X64,AVX1
11 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx2 | FileCheck %s -check-prefixes=X64,AVX2
12 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512f | FileCheck %s -check-prefixes=X64,AVX512,AVX512F
13 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512vl,+avx512bw,+avx512dq | FileCheck %s -check-prefixes=X64,AVX512,AVX512BW
14 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+xop | FileCheck %s -check-prefixes=XOP
15 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+xop,+avx2 | FileCheck %s -check-prefixes=XOP
16 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+ssse3 | FileCheck %s -check-prefixes=GFNISSE
17 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx | FileCheck %s -check-prefixes=GFNIAVX
18 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx2 | FileCheck %s -check-prefixes=GFNIAVX2
19 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx512f | FileCheck %s -check-prefixes=GFNIAVX512F
20 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+gfni,+avx512bw | FileCheck %s -check-prefixes=GFNIAVX512BW
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 24 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
32 ; X86-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
34 ; X64-LABEL: 'var_bitreverse_i64'
35 ; X64-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
36 ; X64-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
38 ; XOP-LABEL: 'var_bitreverse_i64'
39 ; XOP-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
40 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
42 ; GFNISSE-LABEL: 'var_bitreverse_i64'
43 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
44 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
46 ; GFNIAVX-LABEL: 'var_bitreverse_i64'
47 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
48 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
50 ; GFNIAVX2-LABEL: 'var_bitreverse_i64'
51 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
52 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
54 ; GFNIAVX512F-LABEL: 'var_bitreverse_i64'
55 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
56 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
58 ; GFNIAVX512BW-LABEL: 'var_bitreverse_i64'
59 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i64 @llvm.bitreverse.i64(i64 %a)
60 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i64 %bitreverse
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 12 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
69 ; X86-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
71 ; X64-LABEL: 'var_bitreverse_i32'
72 ; X64-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
73 ; X64-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
75 ; XOP-LABEL: 'var_bitreverse_i32'
76 ; XOP-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
77 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
79 ; GFNISSE-LABEL: 'var_bitreverse_i32'
80 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
81 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
83 ; GFNIAVX-LABEL: 'var_bitreverse_i32'
84 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
85 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
87 ; GFNIAVX2-LABEL: 'var_bitreverse_i32'
88 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
89 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
91 ; GFNIAVX512F-LABEL: 'var_bitreverse_i32'
92 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
93 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
95 ; GFNIAVX512BW-LABEL: 'var_bitreverse_i32'
96 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i32 @llvm.bitreverse.i32(i32 %a)
97 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i32 %bitreverse
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 12 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
106 ; X86-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
108 ; X64-LABEL: 'var_bitreverse_i16'
109 ; X64-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
110 ; X64-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
112 ; XOP-LABEL: 'var_bitreverse_i16'
113 ; XOP-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
114 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
116 ; GFNISSE-LABEL: 'var_bitreverse_i16'
117 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
118 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
120 ; GFNIAVX-LABEL: 'var_bitreverse_i16'
121 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
122 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
124 ; GFNIAVX2-LABEL: 'var_bitreverse_i16'
125 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
126 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
128 ; GFNIAVX512F-LABEL: 'var_bitreverse_i16'
129 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
130 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
132 ; GFNIAVX512BW-LABEL: 'var_bitreverse_i16'
133 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %bitreverse = call i16 @llvm.bitreverse.i16(i16 %a)
134 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i16 %bitreverse
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 9 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a)
143 ; X86-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse
145 ; X64-LABEL: 'var_bitreverse_i8'
146 ; X64-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a)
147 ; X64-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse
149 ; XOP-LABEL: 'var_bitreverse_i8'
150 ; XOP-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %bitreverse = call i8 @llvm.bitreverse.i8(i8 %a)
151 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret i8 %bitreverse
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
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
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
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
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
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 20 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
197 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
199 ; SSE42-LABEL: 'var_bitreverse_v2i64'
200 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
201 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
203 ; AVX1-LABEL: 'var_bitreverse_v2i64'
204 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
205 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
207 ; AVX2-LABEL: 'var_bitreverse_v2i64'
208 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
209 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
211 ; AVX512F-LABEL: 'var_bitreverse_v2i64'
212 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
213 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
215 ; AVX512BW-LABEL: 'var_bitreverse_v2i64'
216 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
217 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
219 ; XOP-LABEL: 'var_bitreverse_v2i64'
220 ; XOP-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
221 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
223 ; GFNISSE-LABEL: 'var_bitreverse_v2i64'
224 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
225 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
227 ; GFNIAVX-LABEL: 'var_bitreverse_v2i64'
228 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
229 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
231 ; GFNIAVX2-LABEL: 'var_bitreverse_v2i64'
232 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
233 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
235 ; GFNIAVX512F-LABEL: 'var_bitreverse_v2i64'
236 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
237 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
239 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v2i64'
240 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
241 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <2 x i64> %bitreverse
243   %bitreverse = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a)
244   ret <2 x i64> %bitreverse
247 define <4 x i64> @var_bitreverse_v4i64(<4 x i64> %a) {
248 ; SSE2-LABEL: 'var_bitreverse_v4i64'
249 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
250 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
252 ; SSE42-LABEL: 'var_bitreverse_v4i64'
253 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
254 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
256 ; AVX1-LABEL: 'var_bitreverse_v4i64'
257 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
258 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
260 ; AVX2-LABEL: 'var_bitreverse_v4i64'
261 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
262 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
264 ; AVX512-LABEL: 'var_bitreverse_v4i64'
265 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
266 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
268 ; XOP-LABEL: 'var_bitreverse_v4i64'
269 ; XOP-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
270 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
272 ; GFNISSE-LABEL: 'var_bitreverse_v4i64'
273 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
274 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
276 ; GFNIAVX-LABEL: 'var_bitreverse_v4i64'
277 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
278 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
280 ; GFNIAVX2-LABEL: 'var_bitreverse_v4i64'
281 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
282 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
284 ; GFNIAVX512F-LABEL: 'var_bitreverse_v4i64'
285 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
286 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
288 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i64'
289 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
290 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i64> %bitreverse
292   %bitreverse = call <4 x i64> @llvm.bitreverse.v4i64(<4 x i64> %a)
293   ret <4 x i64> %bitreverse
296 define <8 x i64> @var_bitreverse_v8i64(<8 x i64> %a) {
297 ; SSE2-LABEL: 'var_bitreverse_v8i64'
298 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
299 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
301 ; SSE42-LABEL: 'var_bitreverse_v8i64'
302 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
303 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
305 ; AVX1-LABEL: 'var_bitreverse_v8i64'
306 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
307 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
309 ; AVX2-LABEL: 'var_bitreverse_v8i64'
310 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
311 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
313 ; AVX512F-LABEL: 'var_bitreverse_v8i64'
314 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
315 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
317 ; AVX512BW-LABEL: 'var_bitreverse_v8i64'
318 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
319 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
321 ; XOP-LABEL: 'var_bitreverse_v8i64'
322 ; XOP-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
323 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
325 ; GFNISSE-LABEL: 'var_bitreverse_v8i64'
326 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
327 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
329 ; GFNIAVX-LABEL: 'var_bitreverse_v8i64'
330 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
331 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
333 ; GFNIAVX2-LABEL: 'var_bitreverse_v8i64'
334 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
335 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
337 ; GFNIAVX512F-LABEL: 'var_bitreverse_v8i64'
338 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
339 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
341 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i64'
342 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
343 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i64> %bitreverse
345   %bitreverse = call <8 x i64> @llvm.bitreverse.v8i64(<8 x i64> %a)
346   ret <8 x i64> %bitreverse
349 define <4 x i32> @var_bitreverse_v4i32(<4 x i32> %a) {
350 ; SSE2-LABEL: 'var_bitreverse_v4i32'
351 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
352 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
354 ; SSE42-LABEL: 'var_bitreverse_v4i32'
355 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
356 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
358 ; AVX1-LABEL: 'var_bitreverse_v4i32'
359 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
360 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
362 ; AVX2-LABEL: 'var_bitreverse_v4i32'
363 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
364 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
366 ; AVX512F-LABEL: 'var_bitreverse_v4i32'
367 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
368 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
370 ; AVX512BW-LABEL: 'var_bitreverse_v4i32'
371 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
372 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
374 ; XOP-LABEL: 'var_bitreverse_v4i32'
375 ; XOP-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
376 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
378 ; GFNISSE-LABEL: 'var_bitreverse_v4i32'
379 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
380 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
382 ; GFNIAVX-LABEL: 'var_bitreverse_v4i32'
383 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
384 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
386 ; GFNIAVX2-LABEL: 'var_bitreverse_v4i32'
387 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
388 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
390 ; GFNIAVX512F-LABEL: 'var_bitreverse_v4i32'
391 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
392 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
394 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v4i32'
395 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
396 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <4 x i32> %bitreverse
398   %bitreverse = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a)
399   ret <4 x i32> %bitreverse
402 define <8 x i32> @var_bitreverse_v8i32(<8 x i32> %a) {
403 ; SSE2-LABEL: 'var_bitreverse_v8i32'
404 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
405 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
407 ; SSE42-LABEL: 'var_bitreverse_v8i32'
408 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
409 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
411 ; AVX1-LABEL: 'var_bitreverse_v8i32'
412 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
413 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
415 ; AVX2-LABEL: 'var_bitreverse_v8i32'
416 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
417 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
419 ; AVX512-LABEL: 'var_bitreverse_v8i32'
420 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
421 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
423 ; XOP-LABEL: 'var_bitreverse_v8i32'
424 ; XOP-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
425 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
427 ; GFNISSE-LABEL: 'var_bitreverse_v8i32'
428 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
429 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
431 ; GFNIAVX-LABEL: 'var_bitreverse_v8i32'
432 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
433 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
435 ; GFNIAVX2-LABEL: 'var_bitreverse_v8i32'
436 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
437 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
439 ; GFNIAVX512F-LABEL: 'var_bitreverse_v8i32'
440 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
441 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
443 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i32'
444 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
445 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i32> %bitreverse
447   %bitreverse = call <8 x i32> @llvm.bitreverse.v8i32(<8 x i32> %a)
448   ret <8 x i32> %bitreverse
451 define <16 x i32> @var_bitreverse_v16i32(<16 x i32> %a) {
452 ; SSE2-LABEL: 'var_bitreverse_v16i32'
453 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
454 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
456 ; SSE42-LABEL: 'var_bitreverse_v16i32'
457 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
458 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
460 ; AVX1-LABEL: 'var_bitreverse_v16i32'
461 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
462 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
464 ; AVX2-LABEL: 'var_bitreverse_v16i32'
465 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
466 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
468 ; AVX512F-LABEL: 'var_bitreverse_v16i32'
469 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
470 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
472 ; AVX512BW-LABEL: 'var_bitreverse_v16i32'
473 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
474 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
476 ; XOP-LABEL: 'var_bitreverse_v16i32'
477 ; XOP-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
478 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
480 ; GFNISSE-LABEL: 'var_bitreverse_v16i32'
481 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
482 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
484 ; GFNIAVX-LABEL: 'var_bitreverse_v16i32'
485 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
486 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
488 ; GFNIAVX2-LABEL: 'var_bitreverse_v16i32'
489 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
490 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
492 ; GFNIAVX512F-LABEL: 'var_bitreverse_v16i32'
493 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
494 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
496 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i32'
497 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
498 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i32> %bitreverse
500   %bitreverse = call <16 x i32> @llvm.bitreverse.v16i32(<16 x i32> %a)
501   ret <16 x i32> %bitreverse
504 define <8 x i16> @var_bitreverse_v8i16(<8 x i16> %a) {
505 ; SSE2-LABEL: 'var_bitreverse_v8i16'
506 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
507 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
509 ; SSE42-LABEL: 'var_bitreverse_v8i16'
510 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
511 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
513 ; AVX1-LABEL: 'var_bitreverse_v8i16'
514 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
515 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
517 ; AVX2-LABEL: 'var_bitreverse_v8i16'
518 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
519 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
521 ; AVX512F-LABEL: 'var_bitreverse_v8i16'
522 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
523 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
525 ; AVX512BW-LABEL: 'var_bitreverse_v8i16'
526 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
527 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
529 ; XOP-LABEL: 'var_bitreverse_v8i16'
530 ; XOP-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
531 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
533 ; GFNISSE-LABEL: 'var_bitreverse_v8i16'
534 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
535 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
537 ; GFNIAVX-LABEL: 'var_bitreverse_v8i16'
538 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
539 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
541 ; GFNIAVX2-LABEL: 'var_bitreverse_v8i16'
542 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
543 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
545 ; GFNIAVX512F-LABEL: 'var_bitreverse_v8i16'
546 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
547 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
549 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v8i16'
550 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
551 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <8 x i16> %bitreverse
553   %bitreverse = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a)
554   ret <8 x i16> %bitreverse
557 define <16 x i16> @var_bitreverse_v16i16(<16 x i16> %a) {
558 ; SSE2-LABEL: 'var_bitreverse_v16i16'
559 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
560 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
562 ; SSE42-LABEL: 'var_bitreverse_v16i16'
563 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
564 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
566 ; AVX1-LABEL: 'var_bitreverse_v16i16'
567 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 20 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
568 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
570 ; AVX2-LABEL: 'var_bitreverse_v16i16'
571 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
572 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
574 ; AVX512-LABEL: 'var_bitreverse_v16i16'
575 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
576 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
578 ; XOP-LABEL: 'var_bitreverse_v16i16'
579 ; XOP-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
580 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
582 ; GFNISSE-LABEL: 'var_bitreverse_v16i16'
583 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 16 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
584 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
586 ; GFNIAVX-LABEL: 'var_bitreverse_v16i16'
587 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
588 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
590 ; GFNIAVX2-LABEL: 'var_bitreverse_v16i16'
591 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
592 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
594 ; GFNIAVX512F-LABEL: 'var_bitreverse_v16i16'
595 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
596 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
598 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i16'
599 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
600 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i16> %bitreverse
602   %bitreverse = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> %a)
603   ret <16 x i16> %bitreverse
606 define <32 x i16> @var_bitreverse_v32i16(<32 x i16> %a) {
607 ; SSE2-LABEL: 'var_bitreverse_v32i16'
608 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
609 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
611 ; SSE42-LABEL: 'var_bitreverse_v32i16'
612 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 80 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
613 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
615 ; AVX1-LABEL: 'var_bitreverse_v32i16'
616 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 40 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
617 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
619 ; AVX2-LABEL: 'var_bitreverse_v32i16'
620 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 22 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
621 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
623 ; AVX512F-LABEL: 'var_bitreverse_v32i16'
624 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 13 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
625 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
627 ; AVX512BW-LABEL: 'var_bitreverse_v32i16'
628 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
629 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
631 ; XOP-LABEL: 'var_bitreverse_v32i16'
632 ; XOP-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
633 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
635 ; GFNISSE-LABEL: 'var_bitreverse_v32i16'
636 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 32 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
637 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
639 ; GFNIAVX-LABEL: 'var_bitreverse_v32i16'
640 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
641 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
643 ; GFNIAVX2-LABEL: 'var_bitreverse_v32i16'
644 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 18 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
645 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
647 ; GFNIAVX512F-LABEL: 'var_bitreverse_v32i16'
648 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
649 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
651 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i16'
652 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
653 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i16> %bitreverse
655   %bitreverse = call <32 x i16> @llvm.bitreverse.v32i16(<32 x i16> %a)
656   ret <32 x i16> %bitreverse
659 define <16 x i8> @var_bitreverse_v16i8(<16 x i8> %a) {
660 ; SSE2-LABEL: 'var_bitreverse_v16i8'
661 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
662 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
664 ; SSE42-LABEL: 'var_bitreverse_v16i8'
665 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
666 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
668 ; AVX1-LABEL: 'var_bitreverse_v16i8'
669 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
670 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
672 ; AVX2-LABEL: 'var_bitreverse_v16i8'
673 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
674 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
676 ; AVX512F-LABEL: 'var_bitreverse_v16i8'
677 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
678 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
680 ; AVX512BW-LABEL: 'var_bitreverse_v16i8'
681 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
682 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
684 ; XOP-LABEL: 'var_bitreverse_v16i8'
685 ; XOP-NEXT:  Cost Model: Found an estimated cost of 7 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
686 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
688 ; GFNISSE-LABEL: 'var_bitreverse_v16i8'
689 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
690 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
692 ; GFNIAVX-LABEL: 'var_bitreverse_v16i8'
693 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
694 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
696 ; GFNIAVX2-LABEL: 'var_bitreverse_v16i8'
697 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
698 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
700 ; GFNIAVX512F-LABEL: 'var_bitreverse_v16i8'
701 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
702 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
704 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v16i8'
705 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
706 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <16 x i8> %bitreverse
708   %bitreverse = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a)
709   ret <16 x i8> %bitreverse
712 define <32 x i8> @var_bitreverse_v32i8(<32 x i8> %a) {
713 ; SSE2-LABEL: 'var_bitreverse_v32i8'
714 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 24 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
715 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
717 ; SSE42-LABEL: 'var_bitreverse_v32i8'
718 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 24 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
719 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
721 ; AVX1-LABEL: 'var_bitreverse_v32i8'
722 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 15 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
723 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
725 ; AVX2-LABEL: 'var_bitreverse_v32i8'
726 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
727 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
729 ; AVX512-LABEL: 'var_bitreverse_v32i8'
730 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
731 ; AVX512-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
733 ; XOP-LABEL: 'var_bitreverse_v32i8'
734 ; XOP-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
735 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
737 ; GFNISSE-LABEL: 'var_bitreverse_v32i8'
738 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
739 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
741 ; GFNIAVX-LABEL: 'var_bitreverse_v32i8'
742 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
743 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
745 ; GFNIAVX2-LABEL: 'var_bitreverse_v32i8'
746 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
747 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
749 ; GFNIAVX512F-LABEL: 'var_bitreverse_v32i8'
750 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
751 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
753 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v32i8'
754 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
755 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <32 x i8> %bitreverse
757   %bitreverse = call <32 x i8> @llvm.bitreverse.v32i8(<32 x i8> %a)
758   ret <32 x i8> %bitreverse
761 define <64 x i8> @var_bitreverse_v64i8(<64 x i8> %a) {
762 ; SSE2-LABEL: 'var_bitreverse_v64i8'
763 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 48 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
764 ; SSE2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
766 ; SSE42-LABEL: 'var_bitreverse_v64i8'
767 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 48 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
768 ; SSE42-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
770 ; AVX1-LABEL: 'var_bitreverse_v64i8'
771 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 30 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
772 ; AVX1-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
774 ; AVX2-LABEL: 'var_bitreverse_v64i8'
775 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 10 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
776 ; AVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
778 ; AVX512F-LABEL: 'var_bitreverse_v64i8'
779 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 11 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
780 ; AVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
782 ; AVX512BW-LABEL: 'var_bitreverse_v64i8'
783 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
784 ; AVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
786 ; XOP-LABEL: 'var_bitreverse_v64i8'
787 ; XOP-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
788 ; XOP-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
790 ; GFNISSE-LABEL: 'var_bitreverse_v64i8'
791 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 24 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
792 ; GFNISSE-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
794 ; GFNIAVX-LABEL: 'var_bitreverse_v64i8'
795 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
796 ; GFNIAVX-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
798 ; GFNIAVX2-LABEL: 'var_bitreverse_v64i8'
799 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 12 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
800 ; GFNIAVX2-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
802 ; GFNIAVX512F-LABEL: 'var_bitreverse_v64i8'
803 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
804 ; GFNIAVX512F-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
806 ; GFNIAVX512BW-LABEL: 'var_bitreverse_v64i8'
807 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 6 for instruction: %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
808 ; GFNIAVX512BW-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: ret <64 x i8> %bitreverse
810   %bitreverse = call <64 x i8> @llvm.bitreverse.v64i8(<64 x i8> %a)
811   ret <64 x i8> %bitreverse