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