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