xref: /llvm-project/llvm/test/Analysis/CostModel/X86/fcmp-latency.ll (revision 83552e8c72b8c41d7a07fbd4bf859ece3eb55099)
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
11;
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
15
16define 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
29;
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
42;
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
55;
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
68;
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
74
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
80
81  ret i32 undef
82}
83
84define 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
97;
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
110;
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
123;
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
136;
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
142
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
148
149  ret i32 undef
150}
151
152define 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
165;
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
178;
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
191;
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
204;
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
210
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
216
217  ret i32 undef
218}
219
220define 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
233;
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
246;
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
259;
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
272;
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
278
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
284
285  ret i32 undef
286}
287
288define 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
301;
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
314;
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
327;
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
340;
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
346
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
352
353  ret i32 undef
354}
355
356define 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
369;
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
382;
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
395;
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
408;
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
414
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
420
421  ret i32 undef
422}
423
424define 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
437;
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
450;
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
463;
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
476;
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
482
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
488
489  ret i32 undef
490}
491
492define 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
505;
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
518;
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
531;
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
544;
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
550
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
556
557  ret i32 undef
558}
559
560define 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
573;
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
586;
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
599;
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
612;
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
618
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
624
625  ret i32 undef
626}
627
628define 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
641;
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
654;
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
667;
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
680;
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
686
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
692
693  ret i32 undef
694}
695
696define 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
709;
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
722;
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
735;
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
748;
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
754
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
760
761  ret i32 undef
762}
763
764define 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
777;
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
790;
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
803;
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
816;
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
822
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
828
829  ret i32 undef
830}
831
832define 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
845;
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
858;
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
871;
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
884;
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
890
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
896
897  ret i32 undef
898}
899
900define 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
913;
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
926;
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
939;
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
952;
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
958
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
964
965  ret i32 undef
966}
967
968define 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
981;
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
994;
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
1007;
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
1020;
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
1026
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
1032
1033  ret i32 undef
1034}
1035
1036define 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
1049;
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
1062;
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
1075;
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
1088;
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
1094
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
1100
1101  ret i32 undef
1102}
1103