1 ; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse2 | FileCheck %s --check-prefixes=SSE
3 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse3 | FileCheck %s --check-prefixes=SSE
4 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+ssse3 | FileCheck %s --check-prefixes=SSE
5 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE
6 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+sse4.2 | FileCheck %s --check-prefixes=SSE
7 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx | FileCheck %s --check-prefixes=AVX1
8 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx2 | FileCheck %s --check-prefixes=AVX2
9 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512f | FileCheck %s --check-prefixes=AVX512
10 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mattr=+avx512f,+avx512bw | FileCheck %s --check-prefixes=AVX512
12 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mcpu=slm | FileCheck %s --check-prefixes=SSE
13 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mcpu=goldmont | FileCheck %s --check-prefixes=SSE
14 ; RUN: opt < %s -mtriple=x86_64-- -passes="print<cost-model>" 2>&1 -disable-output -cost-kind=latency -mcpu=btver2 | FileCheck %s --check-prefixes=AVX1
16 define i32 @cmp_float_oeq(i32 %arg) {
17 ; SSE-LABEL: 'cmp_float_oeq'
18 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp oeq float undef, undef
19 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp oeq <2 x float> undef, undef
20 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp oeq <4 x float> undef, undef
21 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp oeq <8 x float> undef, undef
22 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp oeq <16 x float> undef, undef
23 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp oeq double undef, undef
24 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp oeq <2 x double> undef, undef
25 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp oeq <4 x double> undef, undef
26 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp oeq <8 x double> undef, undef
27 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp oeq <16 x double> undef, undef
28 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
30 ; AVX1-LABEL: 'cmp_float_oeq'
31 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp oeq float undef, undef
32 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp oeq <2 x float> undef, undef
33 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp oeq <4 x float> undef, undef
34 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp oeq <8 x float> undef, undef
35 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp oeq <16 x float> undef, undef
36 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp oeq double undef, undef
37 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp oeq <2 x double> undef, undef
38 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp oeq <4 x double> undef, undef
39 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp oeq <8 x double> undef, undef
40 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp oeq <16 x double> undef, undef
41 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
43 ; AVX2-LABEL: 'cmp_float_oeq'
44 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp oeq float undef, undef
45 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp oeq <2 x float> undef, undef
46 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp oeq <4 x float> undef, undef
47 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp oeq <8 x float> undef, undef
48 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp oeq <16 x float> undef, undef
49 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp oeq double undef, undef
50 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp oeq <2 x double> undef, undef
51 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp oeq <4 x double> undef, undef
52 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp oeq <8 x double> undef, undef
53 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp oeq <16 x double> undef, undef
54 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
56 ; AVX512-LABEL: 'cmp_float_oeq'
57 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp oeq float undef, undef
58 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp oeq <2 x float> undef, undef
59 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp oeq <4 x float> undef, undef
60 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp oeq <8 x float> undef, undef
61 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp oeq <16 x float> undef, undef
62 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp oeq double undef, undef
63 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp oeq <2 x double> undef, undef
64 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp oeq <4 x double> undef, undef
65 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp oeq <8 x double> undef, undef
66 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp oeq <16 x double> undef, undef
67 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
69 %F32 = fcmp oeq float undef, undef
70 %V2F32 = fcmp oeq <2 x float> undef, undef
71 %V4F32 = fcmp oeq <4 x float> undef, undef
72 %V8F32 = fcmp oeq <8 x float> undef, undef
73 %V16F32 = fcmp oeq <16 x float> undef, undef
75 %F64 = fcmp oeq double undef, undef
76 %V2F64 = fcmp oeq <2 x double> undef, undef
77 %V4F64 = fcmp oeq <4 x double> undef, undef
78 %V8F64 = fcmp oeq <8 x double> undef, undef
79 %V16F64 = fcmp oeq <16 x double> undef, undef
84 define i32 @cmp_float_one(i32 %arg) {
85 ; SSE-LABEL: 'cmp_float_one'
86 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp one float undef, undef
87 ; SSE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %V2F32 = fcmp one <2 x float> undef, undef
88 ; SSE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %V4F32 = fcmp one <4 x float> undef, undef
89 ; SSE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %V8F32 = fcmp one <8 x float> undef, undef
90 ; SSE-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %V16F32 = fcmp one <16 x float> undef, undef
91 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp one double undef, undef
92 ; SSE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %V2F64 = fcmp one <2 x double> undef, undef
93 ; SSE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %V4F64 = fcmp one <4 x double> undef, undef
94 ; SSE-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %V8F64 = fcmp one <8 x double> undef, undef
95 ; SSE-NEXT: Cost Model: Found an estimated cost of 81 for instruction: %V16F64 = fcmp one <16 x double> undef, undef
96 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
98 ; AVX1-LABEL: 'cmp_float_one'
99 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp one float undef, undef
100 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp one <2 x float> undef, undef
101 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp one <4 x float> undef, undef
102 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp one <8 x float> undef, undef
103 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp one <16 x float> undef, undef
104 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp one double undef, undef
105 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp one <2 x double> undef, undef
106 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp one <4 x double> undef, undef
107 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp one <8 x double> undef, undef
108 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp one <16 x double> undef, undef
109 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
111 ; AVX2-LABEL: 'cmp_float_one'
112 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp one float undef, undef
113 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp one <2 x float> undef, undef
114 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp one <4 x float> undef, undef
115 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp one <8 x float> undef, undef
116 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp one <16 x float> undef, undef
117 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp one double undef, undef
118 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp one <2 x double> undef, undef
119 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp one <4 x double> undef, undef
120 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp one <8 x double> undef, undef
121 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp one <16 x double> undef, undef
122 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
124 ; AVX512-LABEL: 'cmp_float_one'
125 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp one float undef, undef
126 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp one <2 x float> undef, undef
127 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp one <4 x float> undef, undef
128 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp one <8 x float> undef, undef
129 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp one <16 x float> undef, undef
130 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp one double undef, undef
131 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp one <2 x double> undef, undef
132 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp one <4 x double> undef, undef
133 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp one <8 x double> undef, undef
134 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp one <16 x double> undef, undef
135 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
137 %F32 = fcmp one float undef, undef
138 %V2F32 = fcmp one <2 x float> undef, undef
139 %V4F32 = fcmp one <4 x float> undef, undef
140 %V8F32 = fcmp one <8 x float> undef, undef
141 %V16F32 = fcmp one <16 x float> undef, undef
143 %F64 = fcmp one double undef, undef
144 %V2F64 = fcmp one <2 x double> undef, undef
145 %V4F64 = fcmp one <4 x double> undef, undef
146 %V8F64 = fcmp one <8 x double> undef, undef
147 %V16F64 = fcmp one <16 x double> undef, undef
152 define i32 @cmp_float_ord(i32 %arg) {
153 ; SSE-LABEL: 'cmp_float_ord'
154 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp ord float undef, undef
155 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp ord <2 x float> undef, undef
156 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp ord <4 x float> undef, undef
157 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp ord <8 x float> undef, undef
158 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp ord <16 x float> undef, undef
159 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp ord double undef, undef
160 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp ord <2 x double> undef, undef
161 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp ord <4 x double> undef, undef
162 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp ord <8 x double> undef, undef
163 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp ord <16 x double> undef, undef
164 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
166 ; AVX1-LABEL: 'cmp_float_ord'
167 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp ord float undef, undef
168 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp ord <2 x float> undef, undef
169 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp ord <4 x float> undef, undef
170 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp ord <8 x float> undef, undef
171 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp ord <16 x float> undef, undef
172 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp ord double undef, undef
173 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp ord <2 x double> undef, undef
174 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp ord <4 x double> undef, undef
175 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp ord <8 x double> undef, undef
176 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp ord <16 x double> undef, undef
177 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
179 ; AVX2-LABEL: 'cmp_float_ord'
180 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ord float undef, undef
181 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ord <2 x float> undef, undef
182 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ord <4 x float> undef, undef
183 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ord <8 x float> undef, undef
184 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp ord <16 x float> undef, undef
185 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ord double undef, undef
186 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ord <2 x double> undef, undef
187 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ord <4 x double> undef, undef
188 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp ord <8 x double> undef, undef
189 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp ord <16 x double> undef, undef
190 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
192 ; AVX512-LABEL: 'cmp_float_ord'
193 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ord float undef, undef
194 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ord <2 x float> undef, undef
195 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ord <4 x float> undef, undef
196 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ord <8 x float> undef, undef
197 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp ord <16 x float> undef, undef
198 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ord double undef, undef
199 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ord <2 x double> undef, undef
200 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ord <4 x double> undef, undef
201 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp ord <8 x double> undef, undef
202 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp ord <16 x double> undef, undef
203 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
205 %F32 = fcmp ord float undef, undef
206 %V2F32 = fcmp ord <2 x float> undef, undef
207 %V4F32 = fcmp ord <4 x float> undef, undef
208 %V8F32 = fcmp ord <8 x float> undef, undef
209 %V16F32 = fcmp ord <16 x float> undef, undef
211 %F64 = fcmp ord double undef, undef
212 %V2F64 = fcmp ord <2 x double> undef, undef
213 %V4F64 = fcmp ord <4 x double> undef, undef
214 %V8F64 = fcmp ord <8 x double> undef, undef
215 %V16F64 = fcmp ord <16 x double> undef, undef
220 define i32 @cmp_float_oge(i32 %arg) {
221 ; SSE-LABEL: 'cmp_float_oge'
222 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp oge float undef, undef
223 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp oge <2 x float> undef, undef
224 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp oge <4 x float> undef, undef
225 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp oge <8 x float> undef, undef
226 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp oge <16 x float> undef, undef
227 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp oge double undef, undef
228 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp oge <2 x double> undef, undef
229 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp oge <4 x double> undef, undef
230 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp oge <8 x double> undef, undef
231 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp oge <16 x double> undef, undef
232 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
234 ; AVX1-LABEL: 'cmp_float_oge'
235 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp oge float undef, undef
236 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp oge <2 x float> undef, undef
237 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp oge <4 x float> undef, undef
238 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp oge <8 x float> undef, undef
239 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp oge <16 x float> undef, undef
240 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp oge double undef, undef
241 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp oge <2 x double> undef, undef
242 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp oge <4 x double> undef, undef
243 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp oge <8 x double> undef, undef
244 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp oge <16 x double> undef, undef
245 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
247 ; AVX2-LABEL: 'cmp_float_oge'
248 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp oge float undef, undef
249 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp oge <2 x float> undef, undef
250 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp oge <4 x float> undef, undef
251 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp oge <8 x float> undef, undef
252 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp oge <16 x float> undef, undef
253 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp oge double undef, undef
254 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp oge <2 x double> undef, undef
255 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp oge <4 x double> undef, undef
256 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp oge <8 x double> undef, undef
257 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp oge <16 x double> undef, undef
258 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
260 ; AVX512-LABEL: 'cmp_float_oge'
261 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp oge float undef, undef
262 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp oge <2 x float> undef, undef
263 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp oge <4 x float> undef, undef
264 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp oge <8 x float> undef, undef
265 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp oge <16 x float> undef, undef
266 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp oge double undef, undef
267 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp oge <2 x double> undef, undef
268 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp oge <4 x double> undef, undef
269 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp oge <8 x double> undef, undef
270 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp oge <16 x double> undef, undef
271 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
273 %F32 = fcmp oge float undef, undef
274 %V2F32 = fcmp oge <2 x float> undef, undef
275 %V4F32 = fcmp oge <4 x float> undef, undef
276 %V8F32 = fcmp oge <8 x float> undef, undef
277 %V16F32 = fcmp oge <16 x float> undef, undef
279 %F64 = fcmp oge double undef, undef
280 %V2F64 = fcmp oge <2 x double> undef, undef
281 %V4F64 = fcmp oge <4 x double> undef, undef
282 %V8F64 = fcmp oge <8 x double> undef, undef
283 %V16F64 = fcmp oge <16 x double> undef, undef
288 define i32 @cmp_float_ogt(i32 %arg) {
289 ; SSE-LABEL: 'cmp_float_ogt'
290 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp ogt float undef, undef
291 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp ogt <2 x float> undef, undef
292 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp ogt <4 x float> undef, undef
293 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp ogt <8 x float> undef, undef
294 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp ogt <16 x float> undef, undef
295 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp ogt double undef, undef
296 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp ogt <2 x double> undef, undef
297 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp ogt <4 x double> undef, undef
298 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp ogt <8 x double> undef, undef
299 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp ogt <16 x double> undef, undef
300 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
302 ; AVX1-LABEL: 'cmp_float_ogt'
303 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp ogt float undef, undef
304 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp ogt <2 x float> undef, undef
305 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp ogt <4 x float> undef, undef
306 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp ogt <8 x float> undef, undef
307 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp ogt <16 x float> undef, undef
308 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp ogt double undef, undef
309 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp ogt <2 x double> undef, undef
310 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp ogt <4 x double> undef, undef
311 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp ogt <8 x double> undef, undef
312 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp ogt <16 x double> undef, undef
313 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
315 ; AVX2-LABEL: 'cmp_float_ogt'
316 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ogt float undef, undef
317 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ogt <2 x float> undef, undef
318 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ogt <4 x float> undef, undef
319 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ogt <8 x float> undef, undef
320 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp ogt <16 x float> undef, undef
321 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ogt double undef, undef
322 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ogt <2 x double> undef, undef
323 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ogt <4 x double> undef, undef
324 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp ogt <8 x double> undef, undef
325 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp ogt <16 x double> undef, undef
326 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
328 ; AVX512-LABEL: 'cmp_float_ogt'
329 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ogt float undef, undef
330 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ogt <2 x float> undef, undef
331 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ogt <4 x float> undef, undef
332 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ogt <8 x float> undef, undef
333 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp ogt <16 x float> undef, undef
334 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ogt double undef, undef
335 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ogt <2 x double> undef, undef
336 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ogt <4 x double> undef, undef
337 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp ogt <8 x double> undef, undef
338 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp ogt <16 x double> undef, undef
339 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
341 %F32 = fcmp ogt float undef, undef
342 %V2F32 = fcmp ogt <2 x float> undef, undef
343 %V4F32 = fcmp ogt <4 x float> undef, undef
344 %V8F32 = fcmp ogt <8 x float> undef, undef
345 %V16F32 = fcmp ogt <16 x float> undef, undef
347 %F64 = fcmp ogt double undef, undef
348 %V2F64 = fcmp ogt <2 x double> undef, undef
349 %V4F64 = fcmp ogt <4 x double> undef, undef
350 %V8F64 = fcmp ogt <8 x double> undef, undef
351 %V16F64 = fcmp ogt <16 x double> undef, undef
356 define i32 @cmp_float_ole(i32 %arg) {
357 ; SSE-LABEL: 'cmp_float_ole'
358 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp ole float undef, undef
359 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp ole <2 x float> undef, undef
360 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp ole <4 x float> undef, undef
361 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp ole <8 x float> undef, undef
362 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp ole <16 x float> undef, undef
363 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp ole double undef, undef
364 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp ole <2 x double> undef, undef
365 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp ole <4 x double> undef, undef
366 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp ole <8 x double> undef, undef
367 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp ole <16 x double> undef, undef
368 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
370 ; AVX1-LABEL: 'cmp_float_ole'
371 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp ole float undef, undef
372 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp ole <2 x float> undef, undef
373 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp ole <4 x float> undef, undef
374 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp ole <8 x float> undef, undef
375 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp ole <16 x float> undef, undef
376 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp ole double undef, undef
377 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp ole <2 x double> undef, undef
378 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp ole <4 x double> undef, undef
379 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp ole <8 x double> undef, undef
380 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp ole <16 x double> undef, undef
381 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
383 ; AVX2-LABEL: 'cmp_float_ole'
384 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ole float undef, undef
385 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ole <2 x float> undef, undef
386 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ole <4 x float> undef, undef
387 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ole <8 x float> undef, undef
388 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp ole <16 x float> undef, undef
389 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ole double undef, undef
390 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ole <2 x double> undef, undef
391 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ole <4 x double> undef, undef
392 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp ole <8 x double> undef, undef
393 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp ole <16 x double> undef, undef
394 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
396 ; AVX512-LABEL: 'cmp_float_ole'
397 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ole float undef, undef
398 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ole <2 x float> undef, undef
399 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ole <4 x float> undef, undef
400 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ole <8 x float> undef, undef
401 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp ole <16 x float> undef, undef
402 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ole double undef, undef
403 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ole <2 x double> undef, undef
404 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ole <4 x double> undef, undef
405 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp ole <8 x double> undef, undef
406 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp ole <16 x double> undef, undef
407 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
409 %F32 = fcmp ole float undef, undef
410 %V2F32 = fcmp ole <2 x float> undef, undef
411 %V4F32 = fcmp ole <4 x float> undef, undef
412 %V8F32 = fcmp ole <8 x float> undef, undef
413 %V16F32 = fcmp ole <16 x float> undef, undef
415 %F64 = fcmp ole double undef, undef
416 %V2F64 = fcmp ole <2 x double> undef, undef
417 %V4F64 = fcmp ole <4 x double> undef, undef
418 %V8F64 = fcmp ole <8 x double> undef, undef
419 %V16F64 = fcmp ole <16 x double> undef, undef
424 define i32 @cmp_float_olt(i32 %arg) {
425 ; SSE-LABEL: 'cmp_float_olt'
426 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp olt float undef, undef
427 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp olt <2 x float> undef, undef
428 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp olt <4 x float> undef, undef
429 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp olt <8 x float> undef, undef
430 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp olt <16 x float> undef, undef
431 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp olt double undef, undef
432 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp olt <2 x double> undef, undef
433 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp olt <4 x double> undef, undef
434 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp olt <8 x double> undef, undef
435 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp olt <16 x double> undef, undef
436 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
438 ; AVX1-LABEL: 'cmp_float_olt'
439 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp olt float undef, undef
440 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp olt <2 x float> undef, undef
441 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp olt <4 x float> undef, undef
442 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp olt <8 x float> undef, undef
443 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp olt <16 x float> undef, undef
444 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp olt double undef, undef
445 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp olt <2 x double> undef, undef
446 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp olt <4 x double> undef, undef
447 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp olt <8 x double> undef, undef
448 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp olt <16 x double> undef, undef
449 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
451 ; AVX2-LABEL: 'cmp_float_olt'
452 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp olt float undef, undef
453 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp olt <2 x float> undef, undef
454 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp olt <4 x float> undef, undef
455 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp olt <8 x float> undef, undef
456 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp olt <16 x float> undef, undef
457 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp olt double undef, undef
458 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp olt <2 x double> undef, undef
459 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp olt <4 x double> undef, undef
460 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp olt <8 x double> undef, undef
461 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp olt <16 x double> undef, undef
462 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
464 ; AVX512-LABEL: 'cmp_float_olt'
465 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp olt float undef, undef
466 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp olt <2 x float> undef, undef
467 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp olt <4 x float> undef, undef
468 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp olt <8 x float> undef, undef
469 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp olt <16 x float> undef, undef
470 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp olt double undef, undef
471 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp olt <2 x double> undef, undef
472 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp olt <4 x double> undef, undef
473 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp olt <8 x double> undef, undef
474 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp olt <16 x double> undef, undef
475 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
477 %F32 = fcmp olt float undef, undef
478 %V2F32 = fcmp olt <2 x float> undef, undef
479 %V4F32 = fcmp olt <4 x float> undef, undef
480 %V8F32 = fcmp olt <8 x float> undef, undef
481 %V16F32 = fcmp olt <16 x float> undef, undef
483 %F64 = fcmp olt double undef, undef
484 %V2F64 = fcmp olt <2 x double> undef, undef
485 %V4F64 = fcmp olt <4 x double> undef, undef
486 %V8F64 = fcmp olt <8 x double> undef, undef
487 %V16F64 = fcmp olt <16 x double> undef, undef
492 define i32 @cmp_float_ueq(i32 %arg) {
493 ; SSE-LABEL: 'cmp_float_ueq'
494 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp ueq float undef, undef
495 ; SSE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %V2F32 = fcmp ueq <2 x float> undef, undef
496 ; SSE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %V4F32 = fcmp ueq <4 x float> undef, undef
497 ; SSE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %V8F32 = fcmp ueq <8 x float> undef, undef
498 ; SSE-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %V16F32 = fcmp ueq <16 x float> undef, undef
499 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp ueq double undef, undef
500 ; SSE-NEXT: Cost Model: Found an estimated cost of 11 for instruction: %V2F64 = fcmp ueq <2 x double> undef, undef
501 ; SSE-NEXT: Cost Model: Found an estimated cost of 21 for instruction: %V4F64 = fcmp ueq <4 x double> undef, undef
502 ; SSE-NEXT: Cost Model: Found an estimated cost of 41 for instruction: %V8F64 = fcmp ueq <8 x double> undef, undef
503 ; SSE-NEXT: Cost Model: Found an estimated cost of 81 for instruction: %V16F64 = fcmp ueq <16 x double> undef, undef
504 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
506 ; AVX1-LABEL: 'cmp_float_ueq'
507 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp ueq float undef, undef
508 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp ueq <2 x float> undef, undef
509 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp ueq <4 x float> undef, undef
510 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp ueq <8 x float> undef, undef
511 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp ueq <16 x float> undef, undef
512 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp ueq double undef, undef
513 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp ueq <2 x double> undef, undef
514 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp ueq <4 x double> undef, undef
515 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp ueq <8 x double> undef, undef
516 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp ueq <16 x double> undef, undef
517 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
519 ; AVX2-LABEL: 'cmp_float_ueq'
520 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ueq float undef, undef
521 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ueq <2 x float> undef, undef
522 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ueq <4 x float> undef, undef
523 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ueq <8 x float> undef, undef
524 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp ueq <16 x float> undef, undef
525 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ueq double undef, undef
526 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ueq <2 x double> undef, undef
527 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ueq <4 x double> undef, undef
528 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp ueq <8 x double> undef, undef
529 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp ueq <16 x double> undef, undef
530 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
532 ; AVX512-LABEL: 'cmp_float_ueq'
533 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ueq float undef, undef
534 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ueq <2 x float> undef, undef
535 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ueq <4 x float> undef, undef
536 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ueq <8 x float> undef, undef
537 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp ueq <16 x float> undef, undef
538 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ueq double undef, undef
539 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ueq <2 x double> undef, undef
540 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ueq <4 x double> undef, undef
541 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp ueq <8 x double> undef, undef
542 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp ueq <16 x double> undef, undef
543 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
545 %F32 = fcmp ueq float undef, undef
546 %V2F32 = fcmp ueq <2 x float> undef, undef
547 %V4F32 = fcmp ueq <4 x float> undef, undef
548 %V8F32 = fcmp ueq <8 x float> undef, undef
549 %V16F32 = fcmp ueq <16 x float> undef, undef
551 %F64 = fcmp ueq double undef, undef
552 %V2F64 = fcmp ueq <2 x double> undef, undef
553 %V4F64 = fcmp ueq <4 x double> undef, undef
554 %V8F64 = fcmp ueq <8 x double> undef, undef
555 %V16F64 = fcmp ueq <16 x double> undef, undef
560 define i32 @cmp_float_une(i32 %arg) {
561 ; SSE-LABEL: 'cmp_float_une'
562 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp une float undef, undef
563 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp une <2 x float> undef, undef
564 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp une <4 x float> undef, undef
565 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp une <8 x float> undef, undef
566 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp une <16 x float> undef, undef
567 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp une double undef, undef
568 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp une <2 x double> undef, undef
569 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp une <4 x double> undef, undef
570 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp une <8 x double> undef, undef
571 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp une <16 x double> undef, undef
572 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
574 ; AVX1-LABEL: 'cmp_float_une'
575 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp une float undef, undef
576 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp une <2 x float> undef, undef
577 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp une <4 x float> undef, undef
578 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp une <8 x float> undef, undef
579 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp une <16 x float> undef, undef
580 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp une double undef, undef
581 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp une <2 x double> undef, undef
582 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp une <4 x double> undef, undef
583 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp une <8 x double> undef, undef
584 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp une <16 x double> undef, undef
585 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
587 ; AVX2-LABEL: 'cmp_float_une'
588 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp une float undef, undef
589 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp une <2 x float> undef, undef
590 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp une <4 x float> undef, undef
591 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp une <8 x float> undef, undef
592 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp une <16 x float> undef, undef
593 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp une double undef, undef
594 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp une <2 x double> undef, undef
595 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp une <4 x double> undef, undef
596 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp une <8 x double> undef, undef
597 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp une <16 x double> undef, undef
598 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
600 ; AVX512-LABEL: 'cmp_float_une'
601 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp une float undef, undef
602 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp une <2 x float> undef, undef
603 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp une <4 x float> undef, undef
604 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp une <8 x float> undef, undef
605 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp une <16 x float> undef, undef
606 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp une double undef, undef
607 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp une <2 x double> undef, undef
608 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp une <4 x double> undef, undef
609 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp une <8 x double> undef, undef
610 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp une <16 x double> undef, undef
611 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
613 %F32 = fcmp une float undef, undef
614 %V2F32 = fcmp une <2 x float> undef, undef
615 %V4F32 = fcmp une <4 x float> undef, undef
616 %V8F32 = fcmp une <8 x float> undef, undef
617 %V16F32 = fcmp une <16 x float> undef, undef
619 %F64 = fcmp une double undef, undef
620 %V2F64 = fcmp une <2 x double> undef, undef
621 %V4F64 = fcmp une <4 x double> undef, undef
622 %V8F64 = fcmp une <8 x double> undef, undef
623 %V16F64 = fcmp une <16 x double> undef, undef
628 define i32 @cmp_float_uno(i32 %arg) {
629 ; SSE-LABEL: 'cmp_float_uno'
630 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp uno float undef, undef
631 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp uno <2 x float> undef, undef
632 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp uno <4 x float> undef, undef
633 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp uno <8 x float> undef, undef
634 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp uno <16 x float> undef, undef
635 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp uno double undef, undef
636 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp uno <2 x double> undef, undef
637 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp uno <4 x double> undef, undef
638 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp uno <8 x double> undef, undef
639 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp uno <16 x double> undef, undef
640 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
642 ; AVX1-LABEL: 'cmp_float_uno'
643 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp uno float undef, undef
644 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp uno <2 x float> undef, undef
645 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp uno <4 x float> undef, undef
646 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp uno <8 x float> undef, undef
647 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp uno <16 x float> undef, undef
648 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp uno double undef, undef
649 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp uno <2 x double> undef, undef
650 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp uno <4 x double> undef, undef
651 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp uno <8 x double> undef, undef
652 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp uno <16 x double> undef, undef
653 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
655 ; AVX2-LABEL: 'cmp_float_uno'
656 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp uno float undef, undef
657 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp uno <2 x float> undef, undef
658 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp uno <4 x float> undef, undef
659 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp uno <8 x float> undef, undef
660 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp uno <16 x float> undef, undef
661 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp uno double undef, undef
662 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp uno <2 x double> undef, undef
663 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp uno <4 x double> undef, undef
664 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp uno <8 x double> undef, undef
665 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp uno <16 x double> undef, undef
666 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
668 ; AVX512-LABEL: 'cmp_float_uno'
669 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp uno float undef, undef
670 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp uno <2 x float> undef, undef
671 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp uno <4 x float> undef, undef
672 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp uno <8 x float> undef, undef
673 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp uno <16 x float> undef, undef
674 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp uno double undef, undef
675 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp uno <2 x double> undef, undef
676 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp uno <4 x double> undef, undef
677 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp uno <8 x double> undef, undef
678 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp uno <16 x double> undef, undef
679 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
681 %F32 = fcmp uno float undef, undef
682 %V2F32 = fcmp uno <2 x float> undef, undef
683 %V4F32 = fcmp uno <4 x float> undef, undef
684 %V8F32 = fcmp uno <8 x float> undef, undef
685 %V16F32 = fcmp uno <16 x float> undef, undef
687 %F64 = fcmp uno double undef, undef
688 %V2F64 = fcmp uno <2 x double> undef, undef
689 %V4F64 = fcmp uno <4 x double> undef, undef
690 %V8F64 = fcmp uno <8 x double> undef, undef
691 %V16F64 = fcmp uno <16 x double> undef, undef
696 define i32 @cmp_float_uge(i32 %arg) {
697 ; SSE-LABEL: 'cmp_float_uge'
698 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp uge float undef, undef
699 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp uge <2 x float> undef, undef
700 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp uge <4 x float> undef, undef
701 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp uge <8 x float> undef, undef
702 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp uge <16 x float> undef, undef
703 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp uge double undef, undef
704 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp uge <2 x double> undef, undef
705 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp uge <4 x double> undef, undef
706 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp uge <8 x double> undef, undef
707 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp uge <16 x double> undef, undef
708 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
710 ; AVX1-LABEL: 'cmp_float_uge'
711 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp uge float undef, undef
712 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp uge <2 x float> undef, undef
713 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp uge <4 x float> undef, undef
714 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp uge <8 x float> undef, undef
715 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp uge <16 x float> undef, undef
716 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp uge double undef, undef
717 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp uge <2 x double> undef, undef
718 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp uge <4 x double> undef, undef
719 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp uge <8 x double> undef, undef
720 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp uge <16 x double> undef, undef
721 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
723 ; AVX2-LABEL: 'cmp_float_uge'
724 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp uge float undef, undef
725 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp uge <2 x float> undef, undef
726 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp uge <4 x float> undef, undef
727 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp uge <8 x float> undef, undef
728 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp uge <16 x float> undef, undef
729 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp uge double undef, undef
730 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp uge <2 x double> undef, undef
731 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp uge <4 x double> undef, undef
732 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp uge <8 x double> undef, undef
733 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp uge <16 x double> undef, undef
734 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
736 ; AVX512-LABEL: 'cmp_float_uge'
737 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp uge float undef, undef
738 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp uge <2 x float> undef, undef
739 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp uge <4 x float> undef, undef
740 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp uge <8 x float> undef, undef
741 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp uge <16 x float> undef, undef
742 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp uge double undef, undef
743 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp uge <2 x double> undef, undef
744 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp uge <4 x double> undef, undef
745 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp uge <8 x double> undef, undef
746 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp uge <16 x double> undef, undef
747 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
749 %F32 = fcmp uge float undef, undef
750 %V2F32 = fcmp uge <2 x float> undef, undef
751 %V4F32 = fcmp uge <4 x float> undef, undef
752 %V8F32 = fcmp uge <8 x float> undef, undef
753 %V16F32 = fcmp uge <16 x float> undef, undef
755 %F64 = fcmp uge double undef, undef
756 %V2F64 = fcmp uge <2 x double> undef, undef
757 %V4F64 = fcmp uge <4 x double> undef, undef
758 %V8F64 = fcmp uge <8 x double> undef, undef
759 %V16F64 = fcmp uge <16 x double> undef, undef
764 define i32 @cmp_float_ugt(i32 %arg) {
765 ; SSE-LABEL: 'cmp_float_ugt'
766 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp ugt float undef, undef
767 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp ugt <2 x float> undef, undef
768 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp ugt <4 x float> undef, undef
769 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp ugt <8 x float> undef, undef
770 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp ugt <16 x float> undef, undef
771 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp ugt double undef, undef
772 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp ugt <2 x double> undef, undef
773 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp ugt <4 x double> undef, undef
774 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp ugt <8 x double> undef, undef
775 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp ugt <16 x double> undef, undef
776 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
778 ; AVX1-LABEL: 'cmp_float_ugt'
779 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp ugt float undef, undef
780 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp ugt <2 x float> undef, undef
781 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp ugt <4 x float> undef, undef
782 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp ugt <8 x float> undef, undef
783 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp ugt <16 x float> undef, undef
784 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp ugt double undef, undef
785 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp ugt <2 x double> undef, undef
786 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp ugt <4 x double> undef, undef
787 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp ugt <8 x double> undef, undef
788 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp ugt <16 x double> undef, undef
789 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
791 ; AVX2-LABEL: 'cmp_float_ugt'
792 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ugt float undef, undef
793 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ugt <2 x float> undef, undef
794 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ugt <4 x float> undef, undef
795 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ugt <8 x float> undef, undef
796 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp ugt <16 x float> undef, undef
797 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ugt double undef, undef
798 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ugt <2 x double> undef, undef
799 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ugt <4 x double> undef, undef
800 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp ugt <8 x double> undef, undef
801 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp ugt <16 x double> undef, undef
802 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
804 ; AVX512-LABEL: 'cmp_float_ugt'
805 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ugt float undef, undef
806 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ugt <2 x float> undef, undef
807 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ugt <4 x float> undef, undef
808 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ugt <8 x float> undef, undef
809 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp ugt <16 x float> undef, undef
810 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ugt double undef, undef
811 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ugt <2 x double> undef, undef
812 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ugt <4 x double> undef, undef
813 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp ugt <8 x double> undef, undef
814 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp ugt <16 x double> undef, undef
815 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
817 %F32 = fcmp ugt float undef, undef
818 %V2F32 = fcmp ugt <2 x float> undef, undef
819 %V4F32 = fcmp ugt <4 x float> undef, undef
820 %V8F32 = fcmp ugt <8 x float> undef, undef
821 %V16F32 = fcmp ugt <16 x float> undef, undef
823 %F64 = fcmp ugt double undef, undef
824 %V2F64 = fcmp ugt <2 x double> undef, undef
825 %V4F64 = fcmp ugt <4 x double> undef, undef
826 %V8F64 = fcmp ugt <8 x double> undef, undef
827 %V16F64 = fcmp ugt <16 x double> undef, undef
832 define i32 @cmp_float_ule(i32 %arg) {
833 ; SSE-LABEL: 'cmp_float_ule'
834 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp ule float undef, undef
835 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp ule <2 x float> undef, undef
836 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp ule <4 x float> undef, undef
837 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp ule <8 x float> undef, undef
838 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp ule <16 x float> undef, undef
839 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp ule double undef, undef
840 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp ule <2 x double> undef, undef
841 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp ule <4 x double> undef, undef
842 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp ule <8 x double> undef, undef
843 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp ule <16 x double> undef, undef
844 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
846 ; AVX1-LABEL: 'cmp_float_ule'
847 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp ule float undef, undef
848 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp ule <2 x float> undef, undef
849 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp ule <4 x float> undef, undef
850 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp ule <8 x float> undef, undef
851 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp ule <16 x float> undef, undef
852 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp ule double undef, undef
853 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp ule <2 x double> undef, undef
854 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp ule <4 x double> undef, undef
855 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp ule <8 x double> undef, undef
856 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp ule <16 x double> undef, undef
857 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
859 ; AVX2-LABEL: 'cmp_float_ule'
860 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ule float undef, undef
861 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ule <2 x float> undef, undef
862 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ule <4 x float> undef, undef
863 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ule <8 x float> undef, undef
864 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp ule <16 x float> undef, undef
865 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ule double undef, undef
866 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ule <2 x double> undef, undef
867 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ule <4 x double> undef, undef
868 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp ule <8 x double> undef, undef
869 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp ule <16 x double> undef, undef
870 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
872 ; AVX512-LABEL: 'cmp_float_ule'
873 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ule float undef, undef
874 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ule <2 x float> undef, undef
875 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ule <4 x float> undef, undef
876 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ule <8 x float> undef, undef
877 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp ule <16 x float> undef, undef
878 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ule double undef, undef
879 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ule <2 x double> undef, undef
880 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ule <4 x double> undef, undef
881 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp ule <8 x double> undef, undef
882 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp ule <16 x double> undef, undef
883 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
885 %F32 = fcmp ule float undef, undef
886 %V2F32 = fcmp ule <2 x float> undef, undef
887 %V4F32 = fcmp ule <4 x float> undef, undef
888 %V8F32 = fcmp ule <8 x float> undef, undef
889 %V16F32 = fcmp ule <16 x float> undef, undef
891 %F64 = fcmp ule double undef, undef
892 %V2F64 = fcmp ule <2 x double> undef, undef
893 %V4F64 = fcmp ule <4 x double> undef, undef
894 %V8F64 = fcmp ule <8 x double> undef, undef
895 %V16F64 = fcmp ule <16 x double> undef, undef
900 define i32 @cmp_float_ult(i32 %arg) {
901 ; SSE-LABEL: 'cmp_float_ult'
902 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp ult float undef, undef
903 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp ult <2 x float> undef, undef
904 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp ult <4 x float> undef, undef
905 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp ult <8 x float> undef, undef
906 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp ult <16 x float> undef, undef
907 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp ult double undef, undef
908 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp ult <2 x double> undef, undef
909 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp ult <4 x double> undef, undef
910 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp ult <8 x double> undef, undef
911 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp ult <16 x double> undef, undef
912 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
914 ; AVX1-LABEL: 'cmp_float_ult'
915 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp ult float undef, undef
916 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp ult <2 x float> undef, undef
917 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp ult <4 x float> undef, undef
918 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp ult <8 x float> undef, undef
919 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp ult <16 x float> undef, undef
920 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp ult double undef, undef
921 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp ult <2 x double> undef, undef
922 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp ult <4 x double> undef, undef
923 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp ult <8 x double> undef, undef
924 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp ult <16 x double> undef, undef
925 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
927 ; AVX2-LABEL: 'cmp_float_ult'
928 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ult float undef, undef
929 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ult <2 x float> undef, undef
930 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ult <4 x float> undef, undef
931 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ult <8 x float> undef, undef
932 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp ult <16 x float> undef, undef
933 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ult double undef, undef
934 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ult <2 x double> undef, undef
935 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ult <4 x double> undef, undef
936 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp ult <8 x double> undef, undef
937 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp ult <16 x double> undef, undef
938 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
940 ; AVX512-LABEL: 'cmp_float_ult'
941 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp ult float undef, undef
942 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp ult <2 x float> undef, undef
943 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp ult <4 x float> undef, undef
944 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp ult <8 x float> undef, undef
945 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp ult <16 x float> undef, undef
946 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp ult double undef, undef
947 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp ult <2 x double> undef, undef
948 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp ult <4 x double> undef, undef
949 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp ult <8 x double> undef, undef
950 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp ult <16 x double> undef, undef
951 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
953 %F32 = fcmp ult float undef, undef
954 %V2F32 = fcmp ult <2 x float> undef, undef
955 %V4F32 = fcmp ult <4 x float> undef, undef
956 %V8F32 = fcmp ult <8 x float> undef, undef
957 %V16F32 = fcmp ult <16 x float> undef, undef
959 %F64 = fcmp ult double undef, undef
960 %V2F64 = fcmp ult <2 x double> undef, undef
961 %V4F64 = fcmp ult <4 x double> undef, undef
962 %V8F64 = fcmp ult <8 x double> undef, undef
963 %V16F64 = fcmp ult <16 x double> undef, undef
968 define i32 @cmp_float_false(i32 %arg) {
969 ; SSE-LABEL: 'cmp_float_false'
970 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp false float undef, undef
971 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp false <2 x float> undef, undef
972 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp false <4 x float> undef, undef
973 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp false <8 x float> undef, undef
974 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp false <16 x float> undef, undef
975 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp false double undef, undef
976 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp false <2 x double> undef, undef
977 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp false <4 x double> undef, undef
978 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp false <8 x double> undef, undef
979 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp false <16 x double> undef, undef
980 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
982 ; AVX1-LABEL: 'cmp_float_false'
983 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp false float undef, undef
984 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp false <2 x float> undef, undef
985 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp false <4 x float> undef, undef
986 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp false <8 x float> undef, undef
987 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp false <16 x float> undef, undef
988 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp false double undef, undef
989 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp false <2 x double> undef, undef
990 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp false <4 x double> undef, undef
991 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp false <8 x double> undef, undef
992 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp false <16 x double> undef, undef
993 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
995 ; AVX2-LABEL: 'cmp_float_false'
996 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp false float undef, undef
997 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp false <2 x float> undef, undef
998 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp false <4 x float> undef, undef
999 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp false <8 x float> undef, undef
1000 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp false <16 x float> undef, undef
1001 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp false double undef, undef
1002 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp false <2 x double> undef, undef
1003 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp false <4 x double> undef, undef
1004 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp false <8 x double> undef, undef
1005 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp false <16 x double> undef, undef
1006 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
1008 ; AVX512-LABEL: 'cmp_float_false'
1009 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp false float undef, undef
1010 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp false <2 x float> undef, undef
1011 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp false <4 x float> undef, undef
1012 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp false <8 x float> undef, undef
1013 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp false <16 x float> undef, undef
1014 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp false double undef, undef
1015 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp false <2 x double> undef, undef
1016 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp false <4 x double> undef, undef
1017 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp false <8 x double> undef, undef
1018 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp false <16 x double> undef, undef
1019 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
1021 %F32 = fcmp false float undef, undef
1022 %V2F32 = fcmp false <2 x float> undef, undef
1023 %V4F32 = fcmp false <4 x float> undef, undef
1024 %V8F32 = fcmp false <8 x float> undef, undef
1025 %V16F32 = fcmp false <16 x float> undef, undef
1027 %F64 = fcmp false double undef, undef
1028 %V2F64 = fcmp false <2 x double> undef, undef
1029 %V4F64 = fcmp false <4 x double> undef, undef
1030 %V8F64 = fcmp false <8 x double> undef, undef
1031 %V16F64 = fcmp false <16 x double> undef, undef
1036 define i32 @cmp_float_true(i32 %arg) {
1037 ; SSE-LABEL: 'cmp_float_true'
1038 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F32 = fcmp true float undef, undef
1039 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F32 = fcmp true <2 x float> undef, undef
1040 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V4F32 = fcmp true <4 x float> undef, undef
1041 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V8F32 = fcmp true <8 x float> undef, undef
1042 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V16F32 = fcmp true <16 x float> undef, undef
1043 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %F64 = fcmp true double undef, undef
1044 ; SSE-NEXT: Cost Model: Found an estimated cost of 5 for instruction: %V2F64 = fcmp true <2 x double> undef, undef
1045 ; SSE-NEXT: Cost Model: Found an estimated cost of 10 for instruction: %V4F64 = fcmp true <4 x double> undef, undef
1046 ; SSE-NEXT: Cost Model: Found an estimated cost of 20 for instruction: %V8F64 = fcmp true <8 x double> undef, undef
1047 ; SSE-NEXT: Cost Model: Found an estimated cost of 40 for instruction: %V16F64 = fcmp true <16 x double> undef, undef
1048 ; SSE-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
1050 ; AVX1-LABEL: 'cmp_float_true'
1051 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F32 = fcmp true float undef, undef
1052 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F32 = fcmp true <2 x float> undef, undef
1053 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F32 = fcmp true <4 x float> undef, undef
1054 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V8F32 = fcmp true <8 x float> undef, undef
1055 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V16F32 = fcmp true <16 x float> undef, undef
1056 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %F64 = fcmp true double undef, undef
1057 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V2F64 = fcmp true <2 x double> undef, undef
1058 ; AVX1-NEXT: Cost Model: Found an estimated cost of 3 for instruction: %V4F64 = fcmp true <4 x double> undef, undef
1059 ; AVX1-NEXT: Cost Model: Found an estimated cost of 6 for instruction: %V8F64 = fcmp true <8 x double> undef, undef
1060 ; AVX1-NEXT: Cost Model: Found an estimated cost of 12 for instruction: %V16F64 = fcmp true <16 x double> undef, undef
1061 ; AVX1-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
1063 ; AVX2-LABEL: 'cmp_float_true'
1064 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp true float undef, undef
1065 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp true <2 x float> undef, undef
1066 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp true <4 x float> undef, undef
1067 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp true <8 x float> undef, undef
1068 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F32 = fcmp true <16 x float> undef, undef
1069 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp true double undef, undef
1070 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp true <2 x double> undef, undef
1071 ; AVX2-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp true <4 x double> undef, undef
1072 ; AVX2-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V8F64 = fcmp true <8 x double> undef, undef
1073 ; AVX2-NEXT: Cost Model: Found an estimated cost of 16 for instruction: %V16F64 = fcmp true <16 x double> undef, undef
1074 ; AVX2-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
1076 ; AVX512-LABEL: 'cmp_float_true'
1077 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F32 = fcmp true float undef, undef
1078 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F32 = fcmp true <2 x float> undef, undef
1079 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F32 = fcmp true <4 x float> undef, undef
1080 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F32 = fcmp true <8 x float> undef, undef
1081 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V16F32 = fcmp true <16 x float> undef, undef
1082 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %F64 = fcmp true double undef, undef
1083 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V2F64 = fcmp true <2 x double> undef, undef
1084 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V4F64 = fcmp true <4 x double> undef, undef
1085 ; AVX512-NEXT: Cost Model: Found an estimated cost of 4 for instruction: %V8F64 = fcmp true <8 x double> undef, undef
1086 ; AVX512-NEXT: Cost Model: Found an estimated cost of 8 for instruction: %V16F64 = fcmp true <16 x double> undef, undef
1087 ; AVX512-NEXT: Cost Model: Found an estimated cost of 1 for instruction: ret i32 undef
1089 %F32 = fcmp true float undef, undef
1090 %V2F32 = fcmp true <2 x float> undef, undef
1091 %V4F32 = fcmp true <4 x float> undef, undef
1092 %V8F32 = fcmp true <8 x float> undef, undef
1093 %V16F32 = fcmp true <16 x float> undef, undef
1095 %F64 = fcmp true double undef, undef
1096 %V2F64 = fcmp true <2 x double> undef, undef
1097 %V4F64 = fcmp true <4 x double> undef, undef
1098 %V8F64 = fcmp true <8 x double> undef, undef
1099 %V16F64 = fcmp true <16 x double> undef, undef