Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Analysis / CostModel / X86 / fcmp-latency.ll
bloba2b95642843bb9147d23208b40cff863cd2c3ebc
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
81   ret i32 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
149   ret i32 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
217   ret i32 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
285   ret i32 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
353   ret i32 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
421   ret i32 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
489   ret i32 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
557   ret i32 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
625   ret i32 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
693   ret i32 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
761   ret i32 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
829   ret i32 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
897   ret i32 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
965   ret i32 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
1033   ret i32 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
1101   ret i32 undef