xref: /llvm-project/llvm/test/Analysis/CostModel/RISCV/rvv-cmp.ll (revision 366e836051adf5eb352b00828541197729e061e6)
1; NOTE: Assertions have been autogenerated by utils/update_analyze_test_checks.py
2; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -mtriple=riscv64 -mattr=+v,+f,+d,+zfh,+zvfh < %s | FileCheck %s
3; Check that we don't crash querying costs when vectors are not enabled.
4; RUN: opt -passes="print<cost-model>" 2>&1 -disable-output -mtriple=riscv64
5
6define void @icmp_eq() {
7; CHECK-LABEL: 'icmp_eq'
8; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp eq <2 x i8> undef, undef
9; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp eq <4 x i8> undef, undef
10; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp eq <8 x i8> undef, undef
11; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp eq <16 x i8> undef, undef
12; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp eq <32 x i8> undef, undef
13; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp eq <vscale x 1 x i8> undef, undef
14; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp eq <vscale x 2 x i8> undef, undef
15; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp eq <vscale x 4 x i8> undef, undef
16; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp eq <vscale x 8 x i8> undef, undef
17; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp eq <vscale x 16 x i8> undef, undef
18; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp eq <vscale x 32 x i8> undef, undef
19; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp eq <2 x i16> undef, undef
20; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp eq <4 x i16> undef, undef
21; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp eq <8 x i16> undef, undef
22; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp eq <16 x i16> undef, undef
23; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp eq <vscale x 1 x i16> undef, undef
24; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp eq <vscale x 2 x i16> undef, undef
25; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp eq <vscale x 4 x i16> undef, undef
26; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp eq <vscale x 8 x i16> undef, undef
27; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp eq <vscale x 16 x i16> undef, undef
28; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp eq <2 x i32> undef, undef
29; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp eq <4 x i32> undef, undef
30; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp eq <8 x i32> undef, undef
31; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp eq <16 x i32> undef, undef
32; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp eq <vscale x 1 x i32> undef, undef
33; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp eq <vscale x 2 x i32> undef, undef
34; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp eq <vscale x 4 x i32> undef, undef
35; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp eq <vscale x 8 x i32> undef, undef
36; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp eq <vscale x 16 x i32> undef, undef
37; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp eq <2 x i64> undef, undef
38; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp eq <4 x i64> undef, undef
39; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp eq <8 x i64> undef, undef
40; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp eq <vscale x 1 x i64> undef, undef
41; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp eq <vscale x 2 x i64> undef, undef
42; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp eq <vscale x 4 x i64> undef, undef
43; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp eq <vscale x 8 x i64> undef, undef
44; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
45;
46  %v2i8 = icmp eq <2 x i8> undef, undef
47  %v4i8 = icmp eq <4 x i8> undef, undef
48  %v8i8 = icmp eq <8 x i8> undef, undef
49  %v16i8 = icmp eq <16 x i8> undef, undef
50  %v32i8 = icmp eq <32 x i8> undef, undef
51
52  %nxv1i8 = icmp eq <vscale x 1 x i8> undef, undef
53  %nxv2i8 = icmp eq <vscale x 2 x i8> undef, undef
54  %nxv4i8 = icmp eq <vscale x 4 x i8> undef, undef
55  %nxv8i8 = icmp eq <vscale x 8 x i8> undef, undef
56  %nxv16i8 = icmp eq <vscale x 16 x i8> undef, undef
57  %nxv32i8 = icmp eq <vscale x 32 x i8> undef, undef
58
59  %v2i16 = icmp eq <2 x i16> undef, undef
60  %v4i16 = icmp eq <4 x i16> undef, undef
61  %v8i16 = icmp eq <8 x i16> undef, undef
62  %v16i16 = icmp eq <16 x i16> undef, undef
63
64  %nxv1i16 = icmp eq <vscale x 1 x i16> undef, undef
65  %nxv2i16 = icmp eq <vscale x 2 x i16> undef, undef
66  %nxv4i16 = icmp eq <vscale x 4 x i16> undef, undef
67  %nxv8i16 = icmp eq <vscale x 8 x i16> undef, undef
68  %nxv16i16 = icmp eq <vscale x 16 x i16> undef, undef
69
70  %v2i32 = icmp eq <2 x i32> undef, undef
71  %v4i32 = icmp eq <4 x i32> undef, undef
72  %v8i32 = icmp eq <8 x i32> undef, undef
73  %v16i32 = icmp eq <16 x i32> undef, undef
74
75  %nxv1i32 = icmp eq <vscale x 1 x i32> undef, undef
76  %nxv2i32 = icmp eq <vscale x 2 x i32> undef, undef
77  %nxv4i32 = icmp eq <vscale x 4 x i32> undef, undef
78  %nxv8i32 = icmp eq <vscale x 8 x i32> undef, undef
79  %nxv16i32 = icmp eq <vscale x 16 x i32> undef, undef
80
81  %v2i64 = icmp eq <2 x i64> undef, undef
82  %v4i64 = icmp eq <4 x i64> undef, undef
83  %v8i64 = icmp eq <8 x i64> undef, undef
84
85  %nxv1i64 = icmp eq <vscale x 1 x i64> undef, undef
86  %nxv2i64 = icmp eq <vscale x 2 x i64> undef, undef
87  %nxv4i64 = icmp eq <vscale x 4 x i64> undef, undef
88  %nxv8i64 = icmp eq <vscale x 8 x i64> undef, undef
89
90  ret void
91}
92
93define void @icmp_ne() {
94; CHECK-LABEL: 'icmp_ne'
95; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp ne <2 x i8> undef, undef
96; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp ne <4 x i8> undef, undef
97; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp ne <8 x i8> undef, undef
98; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp ne <16 x i8> undef, undef
99; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp ne <32 x i8> undef, undef
100; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp ne <vscale x 1 x i8> undef, undef
101; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp ne <vscale x 2 x i8> undef, undef
102; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp ne <vscale x 4 x i8> undef, undef
103; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp ne <vscale x 8 x i8> undef, undef
104; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp ne <vscale x 16 x i8> undef, undef
105; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp ne <vscale x 32 x i8> undef, undef
106; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp ne <2 x i16> undef, undef
107; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp ne <4 x i16> undef, undef
108; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp ne <8 x i16> undef, undef
109; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp ne <16 x i16> undef, undef
110; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp ne <vscale x 1 x i16> undef, undef
111; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp ne <vscale x 2 x i16> undef, undef
112; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp ne <vscale x 4 x i16> undef, undef
113; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp ne <vscale x 8 x i16> undef, undef
114; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp ne <vscale x 16 x i16> undef, undef
115; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp ne <2 x i32> undef, undef
116; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp ne <4 x i32> undef, undef
117; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp ne <8 x i32> undef, undef
118; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp ne <16 x i32> undef, undef
119; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp ne <vscale x 1 x i32> undef, undef
120; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp ne <vscale x 2 x i32> undef, undef
121; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp ne <vscale x 4 x i32> undef, undef
122; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp ne <vscale x 8 x i32> undef, undef
123; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp ne <vscale x 16 x i32> undef, undef
124; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp ne <2 x i64> undef, undef
125; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp ne <4 x i64> undef, undef
126; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp ne <8 x i64> undef, undef
127; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp ne <vscale x 1 x i64> undef, undef
128; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp ne <vscale x 2 x i64> undef, undef
129; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp ne <vscale x 4 x i64> undef, undef
130; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp ne <vscale x 8 x i64> undef, undef
131; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
132;
133  %v2i8 = icmp ne <2 x i8> undef, undef
134  %v4i8 = icmp ne <4 x i8> undef, undef
135  %v8i8 = icmp ne <8 x i8> undef, undef
136  %v16i8 = icmp ne <16 x i8> undef, undef
137  %v32i8 = icmp ne <32 x i8> undef, undef
138
139  %nxv1i8 = icmp ne <vscale x 1 x i8> undef, undef
140  %nxv2i8 = icmp ne <vscale x 2 x i8> undef, undef
141  %nxv4i8 = icmp ne <vscale x 4 x i8> undef, undef
142  %nxv8i8 = icmp ne <vscale x 8 x i8> undef, undef
143  %nxv16i8 = icmp ne <vscale x 16 x i8> undef, undef
144  %nxv32i8 = icmp ne <vscale x 32 x i8> undef, undef
145
146  %v2i16 = icmp ne <2 x i16> undef, undef
147  %v4i16 = icmp ne <4 x i16> undef, undef
148  %v8i16 = icmp ne <8 x i16> undef, undef
149  %v16i16 = icmp ne <16 x i16> undef, undef
150
151  %nxv1i16 = icmp ne <vscale x 1 x i16> undef, undef
152  %nxv2i16 = icmp ne <vscale x 2 x i16> undef, undef
153  %nxv4i16 = icmp ne <vscale x 4 x i16> undef, undef
154  %nxv8i16 = icmp ne <vscale x 8 x i16> undef, undef
155  %nxv16i16 = icmp ne <vscale x 16 x i16> undef, undef
156
157  %v2i32 = icmp ne <2 x i32> undef, undef
158  %v4i32 = icmp ne <4 x i32> undef, undef
159  %v8i32 = icmp ne <8 x i32> undef, undef
160  %v16i32 = icmp ne <16 x i32> undef, undef
161
162  %nxv1i32 = icmp ne <vscale x 1 x i32> undef, undef
163  %nxv2i32 = icmp ne <vscale x 2 x i32> undef, undef
164  %nxv4i32 = icmp ne <vscale x 4 x i32> undef, undef
165  %nxv8i32 = icmp ne <vscale x 8 x i32> undef, undef
166  %nxv16i32 = icmp ne <vscale x 16 x i32> undef, undef
167
168  %v2i64 = icmp ne <2 x i64> undef, undef
169  %v4i64 = icmp ne <4 x i64> undef, undef
170  %v8i64 = icmp ne <8 x i64> undef, undef
171
172  %nxv1i64 = icmp ne <vscale x 1 x i64> undef, undef
173  %nxv2i64 = icmp ne <vscale x 2 x i64> undef, undef
174  %nxv4i64 = icmp ne <vscale x 4 x i64> undef, undef
175  %nxv8i64 = icmp ne <vscale x 8 x i64> undef, undef
176
177  ret void
178}
179
180define void @icmp_ugt() {
181; CHECK-LABEL: 'icmp_ugt'
182; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp ugt <2 x i8> undef, undef
183; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp ugt <4 x i8> undef, undef
184; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp ugt <8 x i8> undef, undef
185; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp ugt <16 x i8> undef, undef
186; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp ugt <32 x i8> undef, undef
187; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp ugt <vscale x 1 x i8> undef, undef
188; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp ugt <vscale x 2 x i8> undef, undef
189; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp ugt <vscale x 4 x i8> undef, undef
190; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp ugt <vscale x 8 x i8> undef, undef
191; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp ugt <vscale x 16 x i8> undef, undef
192; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp ugt <vscale x 32 x i8> undef, undef
193; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp ugt <2 x i16> undef, undef
194; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp ugt <4 x i16> undef, undef
195; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp ugt <8 x i16> undef, undef
196; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp ugt <16 x i16> undef, undef
197; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp ugt <vscale x 1 x i16> undef, undef
198; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp ugt <vscale x 2 x i16> undef, undef
199; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp ugt <vscale x 4 x i16> undef, undef
200; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp ugt <vscale x 8 x i16> undef, undef
201; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp ugt <vscale x 16 x i16> undef, undef
202; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp ugt <2 x i32> undef, undef
203; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp ugt <4 x i32> undef, undef
204; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp ugt <8 x i32> undef, undef
205; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp ugt <16 x i32> undef, undef
206; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp ugt <vscale x 1 x i32> undef, undef
207; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp ugt <vscale x 2 x i32> undef, undef
208; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp ugt <vscale x 4 x i32> undef, undef
209; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp ugt <vscale x 8 x i32> undef, undef
210; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp ugt <vscale x 16 x i32> undef, undef
211; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp ugt <2 x i64> undef, undef
212; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp ugt <4 x i64> undef, undef
213; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp ugt <8 x i64> undef, undef
214; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp ugt <vscale x 1 x i64> undef, undef
215; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp ugt <vscale x 2 x i64> undef, undef
216; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp ugt <vscale x 4 x i64> undef, undef
217; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp ugt <vscale x 8 x i64> undef, undef
218; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
219;
220  %v2i8 = icmp ugt <2 x i8> undef, undef
221  %v4i8 = icmp ugt <4 x i8> undef, undef
222  %v8i8 = icmp ugt <8 x i8> undef, undef
223  %v16i8 = icmp ugt <16 x i8> undef, undef
224  %v32i8 = icmp ugt <32 x i8> undef, undef
225
226  %nxv1i8 = icmp ugt <vscale x 1 x i8> undef, undef
227  %nxv2i8 = icmp ugt <vscale x 2 x i8> undef, undef
228  %nxv4i8 = icmp ugt <vscale x 4 x i8> undef, undef
229  %nxv8i8 = icmp ugt <vscale x 8 x i8> undef, undef
230  %nxv16i8 = icmp ugt <vscale x 16 x i8> undef, undef
231  %nxv32i8 = icmp ugt <vscale x 32 x i8> undef, undef
232
233  %v2i16 = icmp ugt <2 x i16> undef, undef
234  %v4i16 = icmp ugt <4 x i16> undef, undef
235  %v8i16 = icmp ugt <8 x i16> undef, undef
236  %v16i16 = icmp ugt <16 x i16> undef, undef
237
238  %nxv1i16 = icmp ugt <vscale x 1 x i16> undef, undef
239  %nxv2i16 = icmp ugt <vscale x 2 x i16> undef, undef
240  %nxv4i16 = icmp ugt <vscale x 4 x i16> undef, undef
241  %nxv8i16 = icmp ugt <vscale x 8 x i16> undef, undef
242  %nxv16i16 = icmp ugt <vscale x 16 x i16> undef, undef
243
244  %v2i32 = icmp ugt <2 x i32> undef, undef
245  %v4i32 = icmp ugt <4 x i32> undef, undef
246  %v8i32 = icmp ugt <8 x i32> undef, undef
247  %v16i32 = icmp ugt <16 x i32> undef, undef
248
249  %nxv1i32 = icmp ugt <vscale x 1 x i32> undef, undef
250  %nxv2i32 = icmp ugt <vscale x 2 x i32> undef, undef
251  %nxv4i32 = icmp ugt <vscale x 4 x i32> undef, undef
252  %nxv8i32 = icmp ugt <vscale x 8 x i32> undef, undef
253  %nxv16i32 = icmp ugt <vscale x 16 x i32> undef, undef
254
255  %v2i64 = icmp ugt <2 x i64> undef, undef
256  %v4i64 = icmp ugt <4 x i64> undef, undef
257  %v8i64 = icmp ugt <8 x i64> undef, undef
258
259  %nxv1i64 = icmp ugt <vscale x 1 x i64> undef, undef
260  %nxv2i64 = icmp ugt <vscale x 2 x i64> undef, undef
261  %nxv4i64 = icmp ugt <vscale x 4 x i64> undef, undef
262  %nxv8i64 = icmp ugt <vscale x 8 x i64> undef, undef
263
264  ret void
265}
266
267define void @icmp_uge() {
268; CHECK-LABEL: 'icmp_uge'
269; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp uge <2 x i8> undef, undef
270; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp uge <4 x i8> undef, undef
271; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp uge <8 x i8> undef, undef
272; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp uge <16 x i8> undef, undef
273; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp uge <32 x i8> undef, undef
274; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp uge <vscale x 1 x i8> undef, undef
275; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp uge <vscale x 2 x i8> undef, undef
276; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp uge <vscale x 4 x i8> undef, undef
277; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp uge <vscale x 8 x i8> undef, undef
278; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp uge <vscale x 16 x i8> undef, undef
279; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp uge <vscale x 32 x i8> undef, undef
280; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp uge <2 x i16> undef, undef
281; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp uge <4 x i16> undef, undef
282; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp uge <8 x i16> undef, undef
283; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp uge <16 x i16> undef, undef
284; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp uge <vscale x 1 x i16> undef, undef
285; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp uge <vscale x 2 x i16> undef, undef
286; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp uge <vscale x 4 x i16> undef, undef
287; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp uge <vscale x 8 x i16> undef, undef
288; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp uge <vscale x 16 x i16> undef, undef
289; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp uge <2 x i32> undef, undef
290; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp uge <4 x i32> undef, undef
291; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp uge <8 x i32> undef, undef
292; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp uge <16 x i32> undef, undef
293; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp uge <vscale x 1 x i32> undef, undef
294; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp uge <vscale x 2 x i32> undef, undef
295; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp uge <vscale x 4 x i32> undef, undef
296; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp uge <vscale x 8 x i32> undef, undef
297; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp uge <vscale x 16 x i32> undef, undef
298; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp uge <2 x i64> undef, undef
299; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp uge <4 x i64> undef, undef
300; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp uge <8 x i64> undef, undef
301; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp uge <vscale x 1 x i64> undef, undef
302; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp uge <vscale x 2 x i64> undef, undef
303; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp uge <vscale x 4 x i64> undef, undef
304; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp uge <vscale x 8 x i64> undef, undef
305; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
306;
307  %v2i8 = icmp uge <2 x i8> undef, undef
308  %v4i8 = icmp uge <4 x i8> undef, undef
309  %v8i8 = icmp uge <8 x i8> undef, undef
310  %v16i8 = icmp uge <16 x i8> undef, undef
311  %v32i8 = icmp uge <32 x i8> undef, undef
312
313  %nxv1i8 = icmp uge <vscale x 1 x i8> undef, undef
314  %nxv2i8 = icmp uge <vscale x 2 x i8> undef, undef
315  %nxv4i8 = icmp uge <vscale x 4 x i8> undef, undef
316  %nxv8i8 = icmp uge <vscale x 8 x i8> undef, undef
317  %nxv16i8 = icmp uge <vscale x 16 x i8> undef, undef
318  %nxv32i8 = icmp uge <vscale x 32 x i8> undef, undef
319
320  %v2i16 = icmp uge <2 x i16> undef, undef
321  %v4i16 = icmp uge <4 x i16> undef, undef
322  %v8i16 = icmp uge <8 x i16> undef, undef
323  %v16i16 = icmp uge <16 x i16> undef, undef
324
325  %nxv1i16 = icmp uge <vscale x 1 x i16> undef, undef
326  %nxv2i16 = icmp uge <vscale x 2 x i16> undef, undef
327  %nxv4i16 = icmp uge <vscale x 4 x i16> undef, undef
328  %nxv8i16 = icmp uge <vscale x 8 x i16> undef, undef
329  %nxv16i16 = icmp uge <vscale x 16 x i16> undef, undef
330
331  %v2i32 = icmp uge <2 x i32> undef, undef
332  %v4i32 = icmp uge <4 x i32> undef, undef
333  %v8i32 = icmp uge <8 x i32> undef, undef
334  %v16i32 = icmp uge <16 x i32> undef, undef
335
336  %nxv1i32 = icmp uge <vscale x 1 x i32> undef, undef
337  %nxv2i32 = icmp uge <vscale x 2 x i32> undef, undef
338  %nxv4i32 = icmp uge <vscale x 4 x i32> undef, undef
339  %nxv8i32 = icmp uge <vscale x 8 x i32> undef, undef
340  %nxv16i32 = icmp uge <vscale x 16 x i32> undef, undef
341
342  %v2i64 = icmp uge <2 x i64> undef, undef
343  %v4i64 = icmp uge <4 x i64> undef, undef
344  %v8i64 = icmp uge <8 x i64> undef, undef
345
346  %nxv1i64 = icmp uge <vscale x 1 x i64> undef, undef
347  %nxv2i64 = icmp uge <vscale x 2 x i64> undef, undef
348  %nxv4i64 = icmp uge <vscale x 4 x i64> undef, undef
349  %nxv8i64 = icmp uge <vscale x 8 x i64> undef, undef
350
351  ret void
352}
353
354define void @icmp_ult() {
355; CHECK-LABEL: 'icmp_ult'
356; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp ult <2 x i8> undef, undef
357; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp ult <4 x i8> undef, undef
358; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp ult <8 x i8> undef, undef
359; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp ult <16 x i8> undef, undef
360; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp ult <32 x i8> undef, undef
361; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp ult <vscale x 1 x i8> undef, undef
362; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp ult <vscale x 2 x i8> undef, undef
363; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp ult <vscale x 4 x i8> undef, undef
364; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp ult <vscale x 8 x i8> undef, undef
365; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp ult <vscale x 16 x i8> undef, undef
366; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp ult <vscale x 32 x i8> undef, undef
367; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp ult <2 x i16> undef, undef
368; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp ult <4 x i16> undef, undef
369; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp ult <8 x i16> undef, undef
370; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp ult <16 x i16> undef, undef
371; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp ult <vscale x 1 x i16> undef, undef
372; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp ult <vscale x 2 x i16> undef, undef
373; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp ult <vscale x 4 x i16> undef, undef
374; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp ult <vscale x 8 x i16> undef, undef
375; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp ult <vscale x 16 x i16> undef, undef
376; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp ult <2 x i32> undef, undef
377; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp ult <4 x i32> undef, undef
378; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp ult <8 x i32> undef, undef
379; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp ult <16 x i32> undef, undef
380; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp ult <vscale x 1 x i32> undef, undef
381; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp ult <vscale x 2 x i32> undef, undef
382; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp ult <vscale x 4 x i32> undef, undef
383; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp ult <vscale x 8 x i32> undef, undef
384; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp ult <vscale x 16 x i32> undef, undef
385; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp ult <2 x i64> undef, undef
386; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp ult <4 x i64> undef, undef
387; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp ult <8 x i64> undef, undef
388; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp ult <vscale x 1 x i64> undef, undef
389; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp ult <vscale x 2 x i64> undef, undef
390; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp ult <vscale x 4 x i64> undef, undef
391; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp ult <vscale x 8 x i64> undef, undef
392; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
393;
394  %v2i8 = icmp ult <2 x i8> undef, undef
395  %v4i8 = icmp ult <4 x i8> undef, undef
396  %v8i8 = icmp ult <8 x i8> undef, undef
397  %v16i8 = icmp ult <16 x i8> undef, undef
398  %v32i8 = icmp ult <32 x i8> undef, undef
399
400  %nxv1i8 = icmp ult <vscale x 1 x i8> undef, undef
401  %nxv2i8 = icmp ult <vscale x 2 x i8> undef, undef
402  %nxv4i8 = icmp ult <vscale x 4 x i8> undef, undef
403  %nxv8i8 = icmp ult <vscale x 8 x i8> undef, undef
404  %nxv16i8 = icmp ult <vscale x 16 x i8> undef, undef
405  %nxv32i8 = icmp ult <vscale x 32 x i8> undef, undef
406
407  %v2i16 = icmp ult <2 x i16> undef, undef
408  %v4i16 = icmp ult <4 x i16> undef, undef
409  %v8i16 = icmp ult <8 x i16> undef, undef
410  %v16i16 = icmp ult <16 x i16> undef, undef
411
412  %nxv1i16 = icmp ult <vscale x 1 x i16> undef, undef
413  %nxv2i16 = icmp ult <vscale x 2 x i16> undef, undef
414  %nxv4i16 = icmp ult <vscale x 4 x i16> undef, undef
415  %nxv8i16 = icmp ult <vscale x 8 x i16> undef, undef
416  %nxv16i16 = icmp ult <vscale x 16 x i16> undef, undef
417
418  %v2i32 = icmp ult <2 x i32> undef, undef
419  %v4i32 = icmp ult <4 x i32> undef, undef
420  %v8i32 = icmp ult <8 x i32> undef, undef
421  %v16i32 = icmp ult <16 x i32> undef, undef
422
423  %nxv1i32 = icmp ult <vscale x 1 x i32> undef, undef
424  %nxv2i32 = icmp ult <vscale x 2 x i32> undef, undef
425  %nxv4i32 = icmp ult <vscale x 4 x i32> undef, undef
426  %nxv8i32 = icmp ult <vscale x 8 x i32> undef, undef
427  %nxv16i32 = icmp ult <vscale x 16 x i32> undef, undef
428
429  %v2i64 = icmp ult <2 x i64> undef, undef
430  %v4i64 = icmp ult <4 x i64> undef, undef
431  %v8i64 = icmp ult <8 x i64> undef, undef
432
433  %nxv1i64 = icmp ult <vscale x 1 x i64> undef, undef
434  %nxv2i64 = icmp ult <vscale x 2 x i64> undef, undef
435  %nxv4i64 = icmp ult <vscale x 4 x i64> undef, undef
436  %nxv8i64 = icmp ult <vscale x 8 x i64> undef, undef
437
438  ret void
439}
440
441define void @icmp_ule() {
442; CHECK-LABEL: 'icmp_ule'
443; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp ule <2 x i8> undef, undef
444; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp ule <4 x i8> undef, undef
445; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp ule <8 x i8> undef, undef
446; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp ule <16 x i8> undef, undef
447; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp ule <32 x i8> undef, undef
448; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp ule <vscale x 1 x i8> undef, undef
449; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp ule <vscale x 2 x i8> undef, undef
450; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp ule <vscale x 4 x i8> undef, undef
451; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp ule <vscale x 8 x i8> undef, undef
452; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp ule <vscale x 16 x i8> undef, undef
453; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp ule <vscale x 32 x i8> undef, undef
454; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp ule <2 x i16> undef, undef
455; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp ule <4 x i16> undef, undef
456; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp ule <8 x i16> undef, undef
457; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp ule <16 x i16> undef, undef
458; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp ule <vscale x 1 x i16> undef, undef
459; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp ule <vscale x 2 x i16> undef, undef
460; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp ule <vscale x 4 x i16> undef, undef
461; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp ule <vscale x 8 x i16> undef, undef
462; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp ule <vscale x 16 x i16> undef, undef
463; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp ule <2 x i32> undef, undef
464; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp ule <4 x i32> undef, undef
465; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp ule <8 x i32> undef, undef
466; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp ule <16 x i32> undef, undef
467; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp ule <vscale x 1 x i32> undef, undef
468; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp ule <vscale x 2 x i32> undef, undef
469; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp ule <vscale x 4 x i32> undef, undef
470; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp ule <vscale x 8 x i32> undef, undef
471; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp ule <vscale x 16 x i32> undef, undef
472; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp ule <2 x i64> undef, undef
473; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp ule <4 x i64> undef, undef
474; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp ule <8 x i64> undef, undef
475; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp ule <vscale x 1 x i64> undef, undef
476; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp ule <vscale x 2 x i64> undef, undef
477; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp ule <vscale x 4 x i64> undef, undef
478; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp ule <vscale x 8 x i64> undef, undef
479; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
480;
481  %v2i8 = icmp ule <2 x i8> undef, undef
482  %v4i8 = icmp ule <4 x i8> undef, undef
483  %v8i8 = icmp ule <8 x i8> undef, undef
484  %v16i8 = icmp ule <16 x i8> undef, undef
485  %v32i8 = icmp ule <32 x i8> undef, undef
486
487  %nxv1i8 = icmp ule <vscale x 1 x i8> undef, undef
488  %nxv2i8 = icmp ule <vscale x 2 x i8> undef, undef
489  %nxv4i8 = icmp ule <vscale x 4 x i8> undef, undef
490  %nxv8i8 = icmp ule <vscale x 8 x i8> undef, undef
491  %nxv16i8 = icmp ule <vscale x 16 x i8> undef, undef
492  %nxv32i8 = icmp ule <vscale x 32 x i8> undef, undef
493
494  %v2i16 = icmp ule <2 x i16> undef, undef
495  %v4i16 = icmp ule <4 x i16> undef, undef
496  %v8i16 = icmp ule <8 x i16> undef, undef
497  %v16i16 = icmp ule <16 x i16> undef, undef
498
499  %nxv1i16 = icmp ule <vscale x 1 x i16> undef, undef
500  %nxv2i16 = icmp ule <vscale x 2 x i16> undef, undef
501  %nxv4i16 = icmp ule <vscale x 4 x i16> undef, undef
502  %nxv8i16 = icmp ule <vscale x 8 x i16> undef, undef
503  %nxv16i16 = icmp ule <vscale x 16 x i16> undef, undef
504
505  %v2i32 = icmp ule <2 x i32> undef, undef
506  %v4i32 = icmp ule <4 x i32> undef, undef
507  %v8i32 = icmp ule <8 x i32> undef, undef
508  %v16i32 = icmp ule <16 x i32> undef, undef
509
510  %nxv1i32 = icmp ule <vscale x 1 x i32> undef, undef
511  %nxv2i32 = icmp ule <vscale x 2 x i32> undef, undef
512  %nxv4i32 = icmp ule <vscale x 4 x i32> undef, undef
513  %nxv8i32 = icmp ule <vscale x 8 x i32> undef, undef
514  %nxv16i32 = icmp ule <vscale x 16 x i32> undef, undef
515
516  %v2i64 = icmp ule <2 x i64> undef, undef
517  %v4i64 = icmp ule <4 x i64> undef, undef
518  %v8i64 = icmp ule <8 x i64> undef, undef
519
520  %nxv1i64 = icmp ule <vscale x 1 x i64> undef, undef
521  %nxv2i64 = icmp ule <vscale x 2 x i64> undef, undef
522  %nxv4i64 = icmp ule <vscale x 4 x i64> undef, undef
523  %nxv8i64 = icmp ule <vscale x 8 x i64> undef, undef
524
525  ret void
526}
527
528define void @icmp_sgt() {
529; CHECK-LABEL: 'icmp_sgt'
530; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp sgt <2 x i8> undef, undef
531; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp sgt <4 x i8> undef, undef
532; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp sgt <8 x i8> undef, undef
533; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp sgt <16 x i8> undef, undef
534; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp sgt <32 x i8> undef, undef
535; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp sgt <vscale x 1 x i8> undef, undef
536; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp sgt <vscale x 2 x i8> undef, undef
537; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp sgt <vscale x 4 x i8> undef, undef
538; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp sgt <vscale x 8 x i8> undef, undef
539; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp sgt <vscale x 16 x i8> undef, undef
540; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp sgt <vscale x 32 x i8> undef, undef
541; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp sgt <2 x i16> undef, undef
542; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp sgt <4 x i16> undef, undef
543; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp sgt <8 x i16> undef, undef
544; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp sgt <16 x i16> undef, undef
545; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp sgt <vscale x 1 x i16> undef, undef
546; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp sgt <vscale x 2 x i16> undef, undef
547; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp sgt <vscale x 4 x i16> undef, undef
548; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp sgt <vscale x 8 x i16> undef, undef
549; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp sgt <vscale x 16 x i16> undef, undef
550; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp sgt <2 x i32> undef, undef
551; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp sgt <4 x i32> undef, undef
552; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp sgt <8 x i32> undef, undef
553; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp sgt <16 x i32> undef, undef
554; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp sgt <vscale x 1 x i32> undef, undef
555; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp sgt <vscale x 2 x i32> undef, undef
556; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp sgt <vscale x 4 x i32> undef, undef
557; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp sgt <vscale x 8 x i32> undef, undef
558; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp sgt <vscale x 16 x i32> undef, undef
559; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp sgt <2 x i64> undef, undef
560; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp sgt <4 x i64> undef, undef
561; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp sgt <8 x i64> undef, undef
562; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp sgt <vscale x 1 x i64> undef, undef
563; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp sgt <vscale x 2 x i64> undef, undef
564; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp sgt <vscale x 4 x i64> undef, undef
565; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp sgt <vscale x 8 x i64> undef, undef
566; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
567;
568  %v2i8 = icmp sgt <2 x i8> undef, undef
569  %v4i8 = icmp sgt <4 x i8> undef, undef
570  %v8i8 = icmp sgt <8 x i8> undef, undef
571  %v16i8 = icmp sgt <16 x i8> undef, undef
572  %v32i8 = icmp sgt <32 x i8> undef, undef
573
574  %nxv1i8 = icmp sgt <vscale x 1 x i8> undef, undef
575  %nxv2i8 = icmp sgt <vscale x 2 x i8> undef, undef
576  %nxv4i8 = icmp sgt <vscale x 4 x i8> undef, undef
577  %nxv8i8 = icmp sgt <vscale x 8 x i8> undef, undef
578  %nxv16i8 = icmp sgt <vscale x 16 x i8> undef, undef
579  %nxv32i8 = icmp sgt <vscale x 32 x i8> undef, undef
580
581  %v2i16 = icmp sgt <2 x i16> undef, undef
582  %v4i16 = icmp sgt <4 x i16> undef, undef
583  %v8i16 = icmp sgt <8 x i16> undef, undef
584  %v16i16 = icmp sgt <16 x i16> undef, undef
585
586  %nxv1i16 = icmp sgt <vscale x 1 x i16> undef, undef
587  %nxv2i16 = icmp sgt <vscale x 2 x i16> undef, undef
588  %nxv4i16 = icmp sgt <vscale x 4 x i16> undef, undef
589  %nxv8i16 = icmp sgt <vscale x 8 x i16> undef, undef
590  %nxv16i16 = icmp sgt <vscale x 16 x i16> undef, undef
591
592  %v2i32 = icmp sgt <2 x i32> undef, undef
593  %v4i32 = icmp sgt <4 x i32> undef, undef
594  %v8i32 = icmp sgt <8 x i32> undef, undef
595  %v16i32 = icmp sgt <16 x i32> undef, undef
596
597  %nxv1i32 = icmp sgt <vscale x 1 x i32> undef, undef
598  %nxv2i32 = icmp sgt <vscale x 2 x i32> undef, undef
599  %nxv4i32 = icmp sgt <vscale x 4 x i32> undef, undef
600  %nxv8i32 = icmp sgt <vscale x 8 x i32> undef, undef
601  %nxv16i32 = icmp sgt <vscale x 16 x i32> undef, undef
602
603  %v2i64 = icmp sgt <2 x i64> undef, undef
604  %v4i64 = icmp sgt <4 x i64> undef, undef
605  %v8i64 = icmp sgt <8 x i64> undef, undef
606
607  %nxv1i64 = icmp sgt <vscale x 1 x i64> undef, undef
608  %nxv2i64 = icmp sgt <vscale x 2 x i64> undef, undef
609  %nxv4i64 = icmp sgt <vscale x 4 x i64> undef, undef
610  %nxv8i64 = icmp sgt <vscale x 8 x i64> undef, undef
611
612  ret void
613}
614
615define void @icmp_sge() {
616; CHECK-LABEL: 'icmp_sge'
617; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp sge <2 x i8> undef, undef
618; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp sge <4 x i8> undef, undef
619; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp sge <8 x i8> undef, undef
620; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp sge <16 x i8> undef, undef
621; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp sge <32 x i8> undef, undef
622; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp sge <vscale x 1 x i8> undef, undef
623; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp sge <vscale x 2 x i8> undef, undef
624; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp sge <vscale x 4 x i8> undef, undef
625; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp sge <vscale x 8 x i8> undef, undef
626; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp sge <vscale x 16 x i8> undef, undef
627; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp sge <vscale x 32 x i8> undef, undef
628; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp sge <2 x i16> undef, undef
629; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp sge <4 x i16> undef, undef
630; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp sge <8 x i16> undef, undef
631; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp sge <16 x i16> undef, undef
632; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp sge <vscale x 1 x i16> undef, undef
633; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp sge <vscale x 2 x i16> undef, undef
634; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp sge <vscale x 4 x i16> undef, undef
635; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp sge <vscale x 8 x i16> undef, undef
636; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp sge <vscale x 16 x i16> undef, undef
637; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp sge <2 x i32> undef, undef
638; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp sge <4 x i32> undef, undef
639; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp sge <8 x i32> undef, undef
640; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp sge <16 x i32> undef, undef
641; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp sge <vscale x 1 x i32> undef, undef
642; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp sge <vscale x 2 x i32> undef, undef
643; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp sge <vscale x 4 x i32> undef, undef
644; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp sge <vscale x 8 x i32> undef, undef
645; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp sge <vscale x 16 x i32> undef, undef
646; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp sge <2 x i64> undef, undef
647; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp sge <4 x i64> undef, undef
648; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp sge <8 x i64> undef, undef
649; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp sge <vscale x 1 x i64> undef, undef
650; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp sge <vscale x 2 x i64> undef, undef
651; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp sge <vscale x 4 x i64> undef, undef
652; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp sge <vscale x 8 x i64> undef, undef
653; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
654;
655  %v2i8 = icmp sge <2 x i8> undef, undef
656  %v4i8 = icmp sge <4 x i8> undef, undef
657  %v8i8 = icmp sge <8 x i8> undef, undef
658  %v16i8 = icmp sge <16 x i8> undef, undef
659  %v32i8 = icmp sge <32 x i8> undef, undef
660
661  %nxv1i8 = icmp sge <vscale x 1 x i8> undef, undef
662  %nxv2i8 = icmp sge <vscale x 2 x i8> undef, undef
663  %nxv4i8 = icmp sge <vscale x 4 x i8> undef, undef
664  %nxv8i8 = icmp sge <vscale x 8 x i8> undef, undef
665  %nxv16i8 = icmp sge <vscale x 16 x i8> undef, undef
666  %nxv32i8 = icmp sge <vscale x 32 x i8> undef, undef
667
668  %v2i16 = icmp sge <2 x i16> undef, undef
669  %v4i16 = icmp sge <4 x i16> undef, undef
670  %v8i16 = icmp sge <8 x i16> undef, undef
671  %v16i16 = icmp sge <16 x i16> undef, undef
672
673  %nxv1i16 = icmp sge <vscale x 1 x i16> undef, undef
674  %nxv2i16 = icmp sge <vscale x 2 x i16> undef, undef
675  %nxv4i16 = icmp sge <vscale x 4 x i16> undef, undef
676  %nxv8i16 = icmp sge <vscale x 8 x i16> undef, undef
677  %nxv16i16 = icmp sge <vscale x 16 x i16> undef, undef
678
679  %v2i32 = icmp sge <2 x i32> undef, undef
680  %v4i32 = icmp sge <4 x i32> undef, undef
681  %v8i32 = icmp sge <8 x i32> undef, undef
682  %v16i32 = icmp sge <16 x i32> undef, undef
683
684  %nxv1i32 = icmp sge <vscale x 1 x i32> undef, undef
685  %nxv2i32 = icmp sge <vscale x 2 x i32> undef, undef
686  %nxv4i32 = icmp sge <vscale x 4 x i32> undef, undef
687  %nxv8i32 = icmp sge <vscale x 8 x i32> undef, undef
688  %nxv16i32 = icmp sge <vscale x 16 x i32> undef, undef
689
690  %v2i64 = icmp sge <2 x i64> undef, undef
691  %v4i64 = icmp sge <4 x i64> undef, undef
692  %v8i64 = icmp sge <8 x i64> undef, undef
693
694  %nxv1i64 = icmp sge <vscale x 1 x i64> undef, undef
695  %nxv2i64 = icmp sge <vscale x 2 x i64> undef, undef
696  %nxv4i64 = icmp sge <vscale x 4 x i64> undef, undef
697  %nxv8i64 = icmp sge <vscale x 8 x i64> undef, undef
698
699  ret void
700}
701
702define void @icmp_slt() {
703; CHECK-LABEL: 'icmp_slt'
704; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp slt <2 x i8> undef, undef
705; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp slt <4 x i8> undef, undef
706; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp slt <8 x i8> undef, undef
707; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp slt <16 x i8> undef, undef
708; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp slt <32 x i8> undef, undef
709; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp slt <vscale x 1 x i8> undef, undef
710; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp slt <vscale x 2 x i8> undef, undef
711; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp slt <vscale x 4 x i8> undef, undef
712; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp slt <vscale x 8 x i8> undef, undef
713; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp slt <vscale x 16 x i8> undef, undef
714; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp slt <vscale x 32 x i8> undef, undef
715; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp slt <2 x i16> undef, undef
716; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp slt <4 x i16> undef, undef
717; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp slt <8 x i16> undef, undef
718; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp slt <16 x i16> undef, undef
719; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp slt <vscale x 1 x i16> undef, undef
720; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp slt <vscale x 2 x i16> undef, undef
721; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp slt <vscale x 4 x i16> undef, undef
722; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp slt <vscale x 8 x i16> undef, undef
723; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp slt <vscale x 16 x i16> undef, undef
724; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp slt <2 x i32> undef, undef
725; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp slt <4 x i32> undef, undef
726; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp slt <8 x i32> undef, undef
727; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp slt <16 x i32> undef, undef
728; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp slt <vscale x 1 x i32> undef, undef
729; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp slt <vscale x 2 x i32> undef, undef
730; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp slt <vscale x 4 x i32> undef, undef
731; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp slt <vscale x 8 x i32> undef, undef
732; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp slt <vscale x 16 x i32> undef, undef
733; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp slt <2 x i64> undef, undef
734; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp slt <4 x i64> undef, undef
735; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp slt <8 x i64> undef, undef
736; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp slt <vscale x 1 x i64> undef, undef
737; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp slt <vscale x 2 x i64> undef, undef
738; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp slt <vscale x 4 x i64> undef, undef
739; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp slt <vscale x 8 x i64> undef, undef
740; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
741;
742  %v2i8 = icmp slt <2 x i8> undef, undef
743  %v4i8 = icmp slt <4 x i8> undef, undef
744  %v8i8 = icmp slt <8 x i8> undef, undef
745  %v16i8 = icmp slt <16 x i8> undef, undef
746  %v32i8 = icmp slt <32 x i8> undef, undef
747
748  %nxv1i8 = icmp slt <vscale x 1 x i8> undef, undef
749  %nxv2i8 = icmp slt <vscale x 2 x i8> undef, undef
750  %nxv4i8 = icmp slt <vscale x 4 x i8> undef, undef
751  %nxv8i8 = icmp slt <vscale x 8 x i8> undef, undef
752  %nxv16i8 = icmp slt <vscale x 16 x i8> undef, undef
753  %nxv32i8 = icmp slt <vscale x 32 x i8> undef, undef
754
755  %v2i16 = icmp slt <2 x i16> undef, undef
756  %v4i16 = icmp slt <4 x i16> undef, undef
757  %v8i16 = icmp slt <8 x i16> undef, undef
758  %v16i16 = icmp slt <16 x i16> undef, undef
759
760  %nxv1i16 = icmp slt <vscale x 1 x i16> undef, undef
761  %nxv2i16 = icmp slt <vscale x 2 x i16> undef, undef
762  %nxv4i16 = icmp slt <vscale x 4 x i16> undef, undef
763  %nxv8i16 = icmp slt <vscale x 8 x i16> undef, undef
764  %nxv16i16 = icmp slt <vscale x 16 x i16> undef, undef
765
766  %v2i32 = icmp slt <2 x i32> undef, undef
767  %v4i32 = icmp slt <4 x i32> undef, undef
768  %v8i32 = icmp slt <8 x i32> undef, undef
769  %v16i32 = icmp slt <16 x i32> undef, undef
770
771  %nxv1i32 = icmp slt <vscale x 1 x i32> undef, undef
772  %nxv2i32 = icmp slt <vscale x 2 x i32> undef, undef
773  %nxv4i32 = icmp slt <vscale x 4 x i32> undef, undef
774  %nxv8i32 = icmp slt <vscale x 8 x i32> undef, undef
775  %nxv16i32 = icmp slt <vscale x 16 x i32> undef, undef
776
777  %v2i64 = icmp slt <2 x i64> undef, undef
778  %v4i64 = icmp slt <4 x i64> undef, undef
779  %v8i64 = icmp slt <8 x i64> undef, undef
780
781  %nxv1i64 = icmp slt <vscale x 1 x i64> undef, undef
782  %nxv2i64 = icmp slt <vscale x 2 x i64> undef, undef
783  %nxv4i64 = icmp slt <vscale x 4 x i64> undef, undef
784  %nxv8i64 = icmp slt <vscale x 8 x i64> undef, undef
785
786  ret void
787}
788
789define void @icmp_sle() {
790; CHECK-LABEL: 'icmp_sle'
791; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i8 = icmp sle <2 x i8> undef, undef
792; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i8 = icmp sle <4 x i8> undef, undef
793; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i8 = icmp sle <8 x i8> undef, undef
794; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16i8 = icmp sle <16 x i8> undef, undef
795; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v32i8 = icmp sle <32 x i8> undef, undef
796; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i8 = icmp sle <vscale x 1 x i8> undef, undef
797; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i8 = icmp sle <vscale x 2 x i8> undef, undef
798; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i8 = icmp sle <vscale x 4 x i8> undef, undef
799; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8i8 = icmp sle <vscale x 8 x i8> undef, undef
800; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv16i8 = icmp sle <vscale x 16 x i8> undef, undef
801; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv32i8 = icmp sle <vscale x 32 x i8> undef, undef
802; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i16 = icmp sle <2 x i16> undef, undef
803; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i16 = icmp sle <4 x i16> undef, undef
804; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8i16 = icmp sle <8 x i16> undef, undef
805; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v16i16 = icmp sle <16 x i16> undef, undef
806; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i16 = icmp sle <vscale x 1 x i16> undef, undef
807; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i16 = icmp sle <vscale x 2 x i16> undef, undef
808; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4i16 = icmp sle <vscale x 4 x i16> undef, undef
809; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv8i16 = icmp sle <vscale x 8 x i16> undef, undef
810; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv16i16 = icmp sle <vscale x 16 x i16> undef, undef
811; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i32 = icmp sle <2 x i32> undef, undef
812; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4i32 = icmp sle <4 x i32> undef, undef
813; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8i32 = icmp sle <8 x i32> undef, undef
814; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16i32 = icmp sle <16 x i32> undef, undef
815; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i32 = icmp sle <vscale x 1 x i32> undef, undef
816; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2i32 = icmp sle <vscale x 2 x i32> undef, undef
817; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4i32 = icmp sle <vscale x 4 x i32> undef, undef
818; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8i32 = icmp sle <vscale x 8 x i32> undef, undef
819; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16i32 = icmp sle <vscale x 16 x i32> undef, undef
820; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2i64 = icmp sle <2 x i64> undef, undef
821; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4i64 = icmp sle <4 x i64> undef, undef
822; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8i64 = icmp sle <8 x i64> undef, undef
823; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1i64 = icmp sle <vscale x 1 x i64> undef, undef
824; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2i64 = icmp sle <vscale x 2 x i64> undef, undef
825; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4i64 = icmp sle <vscale x 4 x i64> undef, undef
826; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8i64 = icmp sle <vscale x 8 x i64> undef, undef
827; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
828;
829  %v2i8 = icmp sle <2 x i8> undef, undef
830  %v4i8 = icmp sle <4 x i8> undef, undef
831  %v8i8 = icmp sle <8 x i8> undef, undef
832  %v16i8 = icmp sle <16 x i8> undef, undef
833  %v32i8 = icmp sle <32 x i8> undef, undef
834
835  %nxv1i8 = icmp sle <vscale x 1 x i8> undef, undef
836  %nxv2i8 = icmp sle <vscale x 2 x i8> undef, undef
837  %nxv4i8 = icmp sle <vscale x 4 x i8> undef, undef
838  %nxv8i8 = icmp sle <vscale x 8 x i8> undef, undef
839  %nxv16i8 = icmp sle <vscale x 16 x i8> undef, undef
840  %nxv32i8 = icmp sle <vscale x 32 x i8> undef, undef
841
842  %v2i16 = icmp sle <2 x i16> undef, undef
843  %v4i16 = icmp sle <4 x i16> undef, undef
844  %v8i16 = icmp sle <8 x i16> undef, undef
845  %v16i16 = icmp sle <16 x i16> undef, undef
846
847  %nxv1i16 = icmp sle <vscale x 1 x i16> undef, undef
848  %nxv2i16 = icmp sle <vscale x 2 x i16> undef, undef
849  %nxv4i16 = icmp sle <vscale x 4 x i16> undef, undef
850  %nxv8i16 = icmp sle <vscale x 8 x i16> undef, undef
851  %nxv16i16 = icmp sle <vscale x 16 x i16> undef, undef
852
853  %v2i32 = icmp sle <2 x i32> undef, undef
854  %v4i32 = icmp sle <4 x i32> undef, undef
855  %v8i32 = icmp sle <8 x i32> undef, undef
856  %v16i32 = icmp sle <16 x i32> undef, undef
857
858  %nxv1i32 = icmp sle <vscale x 1 x i32> undef, undef
859  %nxv2i32 = icmp sle <vscale x 2 x i32> undef, undef
860  %nxv4i32 = icmp sle <vscale x 4 x i32> undef, undef
861  %nxv8i32 = icmp sle <vscale x 8 x i32> undef, undef
862  %nxv16i32 = icmp sle <vscale x 16 x i32> undef, undef
863
864  %v2i64 = icmp sle <2 x i64> undef, undef
865  %v4i64 = icmp sle <4 x i64> undef, undef
866  %v8i64 = icmp sle <8 x i64> undef, undef
867
868  %nxv1i64 = icmp sle <vscale x 1 x i64> undef, undef
869  %nxv2i64 = icmp sle <vscale x 2 x i64> undef, undef
870  %nxv4i64 = icmp sle <vscale x 4 x i64> undef, undef
871  %nxv8i64 = icmp sle <vscale x 8 x i64> undef, undef
872
873  ret void
874}
875
876define void @fcmp_oeq() {
877; CHECK-LABEL: 'fcmp_oeq'
878; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp oeq <2 x float> undef, undef
879; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp oeq <4 x float> undef, undef
880; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8f32 = fcmp oeq <8 x float> undef, undef
881; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16f32 = fcmp oeq <16 x float> undef, undef
882; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp oeq <vscale x 1 x float> undef, undef
883; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp oeq <vscale x 2 x float> undef, undef
884; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32 = fcmp oeq <vscale x 4 x float> undef, undef
885; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8f32 = fcmp oeq <vscale x 8 x float> undef, undef
886; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16f32 = fcmp oeq <vscale x 16 x float> undef, undef
887; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp oeq <2 x double> undef, undef
888; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f64 = fcmp oeq <4 x double> undef, undef
889; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8f64 = fcmp oeq <8 x double> undef, undef
890; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp oeq <vscale x 1 x double> undef, undef
891; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64 = fcmp oeq <vscale x 2 x double> undef, undef
892; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4f64 = fcmp oeq <vscale x 4 x double> undef, undef
893; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8f64 = fcmp oeq <vscale x 8 x double> undef, undef
894; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
895;
896
897
898  %v2f32 = fcmp oeq <2 x float> undef, undef
899  %v4f32 = fcmp oeq <4 x float> undef, undef
900  %v8f32 = fcmp oeq <8 x float> undef, undef
901  %v16f32 = fcmp oeq <16 x float> undef, undef
902
903  %nxv1f32 = fcmp oeq <vscale x 1 x float> undef, undef
904  %nxv2f32 = fcmp oeq <vscale x 2 x float> undef, undef
905  %nxv4f32 = fcmp oeq <vscale x 4 x float> undef, undef
906  %nxv8f32 = fcmp oeq <vscale x 8 x float> undef, undef
907  %nxv16f32 = fcmp oeq <vscale x 16 x float> undef, undef
908
909  %v2f64 = fcmp oeq <2 x double> undef, undef
910  %v4f64 = fcmp oeq <4 x double> undef, undef
911  %v8f64 = fcmp oeq <8 x double> undef, undef
912
913  %nxv1f64 = fcmp oeq <vscale x 1 x double> undef, undef
914  %nxv2f64 = fcmp oeq <vscale x 2 x double> undef, undef
915  %nxv4f64 = fcmp oeq <vscale x 4 x double> undef, undef
916  %nxv8f64 = fcmp oeq <vscale x 8 x double> undef, undef
917
918  ret void
919}
920
921define void @fcmp_one() {
922; CHECK-LABEL: 'fcmp_one'
923; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v2f32 = fcmp one <2 x float> undef, undef
924; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v4f32 = fcmp one <4 x float> undef, undef
925; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v8f32 = fcmp one <8 x float> undef, undef
926; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %v16f32 = fcmp one <16 x float> undef, undef
927; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv1f32 = fcmp one <vscale x 1 x float> undef, undef
928; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv2f32 = fcmp one <vscale x 2 x float> undef, undef
929; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv4f32 = fcmp one <vscale x 4 x float> undef, undef
930; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv8f32 = fcmp one <vscale x 8 x float> undef, undef
931; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %nxv16f32 = fcmp one <vscale x 16 x float> undef, undef
932; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v2f64 = fcmp one <2 x double> undef, undef
933; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v4f64 = fcmp one <4 x double> undef, undef
934; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %v8f64 = fcmp one <8 x double> undef, undef
935; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv1f64 = fcmp one <vscale x 1 x double> undef, undef
936; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv2f64 = fcmp one <vscale x 2 x double> undef, undef
937; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv4f64 = fcmp one <vscale x 4 x double> undef, undef
938; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %nxv8f64 = fcmp one <vscale x 8 x double> undef, undef
939; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
940;
941
942
943  %v2f32 = fcmp one <2 x float> undef, undef
944  %v4f32 = fcmp one <4 x float> undef, undef
945  %v8f32 = fcmp one <8 x float> undef, undef
946  %v16f32 = fcmp one <16 x float> undef, undef
947
948  %nxv1f32 = fcmp one <vscale x 1 x float> undef, undef
949  %nxv2f32 = fcmp one <vscale x 2 x float> undef, undef
950  %nxv4f32 = fcmp one <vscale x 4 x float> undef, undef
951  %nxv8f32 = fcmp one <vscale x 8 x float> undef, undef
952  %nxv16f32 = fcmp one <vscale x 16 x float> undef, undef
953
954  %v2f64 = fcmp one <2 x double> undef, undef
955  %v4f64 = fcmp one <4 x double> undef, undef
956  %v8f64 = fcmp one <8 x double> undef, undef
957
958  %nxv1f64 = fcmp one <vscale x 1 x double> undef, undef
959  %nxv2f64 = fcmp one <vscale x 2 x double> undef, undef
960  %nxv4f64 = fcmp one <vscale x 4 x double> undef, undef
961  %nxv8f64 = fcmp one <vscale x 8 x double> undef, undef
962
963  ret void
964}
965
966define void @fcmp_olt() {
967; CHECK-LABEL: 'fcmp_olt'
968; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp olt <2 x float> undef, undef
969; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp olt <4 x float> undef, undef
970; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8f32 = fcmp olt <8 x float> undef, undef
971; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16f32 = fcmp olt <16 x float> undef, undef
972; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp olt <vscale x 1 x float> undef, undef
973; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp olt <vscale x 2 x float> undef, undef
974; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32 = fcmp olt <vscale x 4 x float> undef, undef
975; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8f32 = fcmp olt <vscale x 8 x float> undef, undef
976; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16f32 = fcmp olt <vscale x 16 x float> undef, undef
977; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp olt <2 x double> undef, undef
978; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f64 = fcmp olt <4 x double> undef, undef
979; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8f64 = fcmp olt <8 x double> undef, undef
980; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp olt <vscale x 1 x double> undef, undef
981; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64 = fcmp olt <vscale x 2 x double> undef, undef
982; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4f64 = fcmp olt <vscale x 4 x double> undef, undef
983; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8f64 = fcmp olt <vscale x 8 x double> undef, undef
984; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
985;
986
987
988  %v2f32 = fcmp olt <2 x float> undef, undef
989  %v4f32 = fcmp olt <4 x float> undef, undef
990  %v8f32 = fcmp olt <8 x float> undef, undef
991  %v16f32 = fcmp olt <16 x float> undef, undef
992
993  %nxv1f32 = fcmp olt <vscale x 1 x float> undef, undef
994  %nxv2f32 = fcmp olt <vscale x 2 x float> undef, undef
995  %nxv4f32 = fcmp olt <vscale x 4 x float> undef, undef
996  %nxv8f32 = fcmp olt <vscale x 8 x float> undef, undef
997  %nxv16f32 = fcmp olt <vscale x 16 x float> undef, undef
998
999  %v2f64 = fcmp olt <2 x double> undef, undef
1000  %v4f64 = fcmp olt <4 x double> undef, undef
1001  %v8f64 = fcmp olt <8 x double> undef, undef
1002
1003  %nxv1f64 = fcmp olt <vscale x 1 x double> undef, undef
1004  %nxv2f64 = fcmp olt <vscale x 2 x double> undef, undef
1005  %nxv4f64 = fcmp olt <vscale x 4 x double> undef, undef
1006  %nxv8f64 = fcmp olt <vscale x 8 x double> undef, undef
1007
1008  ret void
1009}
1010
1011define void @fcmp_ole() {
1012; CHECK-LABEL: 'fcmp_ole'
1013; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp ole <2 x float> undef, undef
1014; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp ole <4 x float> undef, undef
1015; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8f32 = fcmp ole <8 x float> undef, undef
1016; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16f32 = fcmp ole <16 x float> undef, undef
1017; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp ole <vscale x 1 x float> undef, undef
1018; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp ole <vscale x 2 x float> undef, undef
1019; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32 = fcmp ole <vscale x 4 x float> undef, undef
1020; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8f32 = fcmp ole <vscale x 8 x float> undef, undef
1021; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16f32 = fcmp ole <vscale x 16 x float> undef, undef
1022; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp ole <2 x double> undef, undef
1023; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f64 = fcmp ole <4 x double> undef, undef
1024; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8f64 = fcmp ole <8 x double> undef, undef
1025; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp ole <vscale x 1 x double> undef, undef
1026; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64 = fcmp ole <vscale x 2 x double> undef, undef
1027; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4f64 = fcmp ole <vscale x 4 x double> undef, undef
1028; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8f64 = fcmp ole <vscale x 8 x double> undef, undef
1029; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1030;
1031
1032
1033  %v2f32 = fcmp ole <2 x float> undef, undef
1034  %v4f32 = fcmp ole <4 x float> undef, undef
1035  %v8f32 = fcmp ole <8 x float> undef, undef
1036  %v16f32 = fcmp ole <16 x float> undef, undef
1037
1038  %nxv1f32 = fcmp ole <vscale x 1 x float> undef, undef
1039  %nxv2f32 = fcmp ole <vscale x 2 x float> undef, undef
1040  %nxv4f32 = fcmp ole <vscale x 4 x float> undef, undef
1041  %nxv8f32 = fcmp ole <vscale x 8 x float> undef, undef
1042  %nxv16f32 = fcmp ole <vscale x 16 x float> undef, undef
1043
1044  %v2f64 = fcmp ole <2 x double> undef, undef
1045  %v4f64 = fcmp ole <4 x double> undef, undef
1046  %v8f64 = fcmp ole <8 x double> undef, undef
1047
1048  %nxv1f64 = fcmp ole <vscale x 1 x double> undef, undef
1049  %nxv2f64 = fcmp ole <vscale x 2 x double> undef, undef
1050  %nxv4f64 = fcmp ole <vscale x 4 x double> undef, undef
1051  %nxv8f64 = fcmp ole <vscale x 8 x double> undef, undef
1052
1053  ret void
1054}
1055
1056define void @fcmp_ogt() {
1057; CHECK-LABEL: 'fcmp_ogt'
1058; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp ogt <2 x float> undef, undef
1059; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp ogt <4 x float> undef, undef
1060; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8f32 = fcmp ogt <8 x float> undef, undef
1061; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16f32 = fcmp ogt <16 x float> undef, undef
1062; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp ogt <vscale x 1 x float> undef, undef
1063; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp ogt <vscale x 2 x float> undef, undef
1064; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32 = fcmp ogt <vscale x 4 x float> undef, undef
1065; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8f32 = fcmp ogt <vscale x 8 x float> undef, undef
1066; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16f32 = fcmp ogt <vscale x 16 x float> undef, undef
1067; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp ogt <2 x double> undef, undef
1068; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f64 = fcmp ogt <4 x double> undef, undef
1069; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8f64 = fcmp ogt <8 x double> undef, undef
1070; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp ogt <vscale x 1 x double> undef, undef
1071; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64 = fcmp ogt <vscale x 2 x double> undef, undef
1072; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4f64 = fcmp ogt <vscale x 4 x double> undef, undef
1073; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8f64 = fcmp ogt <vscale x 8 x double> undef, undef
1074; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1075;
1076
1077
1078  %v2f32 = fcmp ogt <2 x float> undef, undef
1079  %v4f32 = fcmp ogt <4 x float> undef, undef
1080  %v8f32 = fcmp ogt <8 x float> undef, undef
1081  %v16f32 = fcmp ogt <16 x float> undef, undef
1082
1083  %nxv1f32 = fcmp ogt <vscale x 1 x float> undef, undef
1084  %nxv2f32 = fcmp ogt <vscale x 2 x float> undef, undef
1085  %nxv4f32 = fcmp ogt <vscale x 4 x float> undef, undef
1086  %nxv8f32 = fcmp ogt <vscale x 8 x float> undef, undef
1087  %nxv16f32 = fcmp ogt <vscale x 16 x float> undef, undef
1088
1089  %v2f64 = fcmp ogt <2 x double> undef, undef
1090  %v4f64 = fcmp ogt <4 x double> undef, undef
1091  %v8f64 = fcmp ogt <8 x double> undef, undef
1092
1093  %nxv1f64 = fcmp ogt <vscale x 1 x double> undef, undef
1094  %nxv2f64 = fcmp ogt <vscale x 2 x double> undef, undef
1095  %nxv4f64 = fcmp ogt <vscale x 4 x double> undef, undef
1096  %nxv8f64 = fcmp ogt <vscale x 8 x double> undef, undef
1097
1098  ret void
1099}
1100
1101define void @fcmp_oge() {
1102; CHECK-LABEL: 'fcmp_oge'
1103; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp oge <2 x float> undef, undef
1104; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp oge <4 x float> undef, undef
1105; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8f32 = fcmp oge <8 x float> undef, undef
1106; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16f32 = fcmp oge <16 x float> undef, undef
1107; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp oge <vscale x 1 x float> undef, undef
1108; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp oge <vscale x 2 x float> undef, undef
1109; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32 = fcmp oge <vscale x 4 x float> undef, undef
1110; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8f32 = fcmp oge <vscale x 8 x float> undef, undef
1111; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16f32 = fcmp oge <vscale x 16 x float> undef, undef
1112; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp oge <2 x double> undef, undef
1113; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f64 = fcmp oge <4 x double> undef, undef
1114; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8f64 = fcmp oge <8 x double> undef, undef
1115; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp oge <vscale x 1 x double> undef, undef
1116; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64 = fcmp oge <vscale x 2 x double> undef, undef
1117; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4f64 = fcmp oge <vscale x 4 x double> undef, undef
1118; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8f64 = fcmp oge <vscale x 8 x double> undef, undef
1119; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1120;
1121
1122
1123  %v2f32 = fcmp oge <2 x float> undef, undef
1124  %v4f32 = fcmp oge <4 x float> undef, undef
1125  %v8f32 = fcmp oge <8 x float> undef, undef
1126  %v16f32 = fcmp oge <16 x float> undef, undef
1127
1128  %nxv1f32 = fcmp oge <vscale x 1 x float> undef, undef
1129  %nxv2f32 = fcmp oge <vscale x 2 x float> undef, undef
1130  %nxv4f32 = fcmp oge <vscale x 4 x float> undef, undef
1131  %nxv8f32 = fcmp oge <vscale x 8 x float> undef, undef
1132  %nxv16f32 = fcmp oge <vscale x 16 x float> undef, undef
1133
1134  %v2f64 = fcmp oge <2 x double> undef, undef
1135  %v4f64 = fcmp oge <4 x double> undef, undef
1136  %v8f64 = fcmp oge <8 x double> undef, undef
1137
1138  %nxv1f64 = fcmp oge <vscale x 1 x double> undef, undef
1139  %nxv2f64 = fcmp oge <vscale x 2 x double> undef, undef
1140  %nxv4f64 = fcmp oge <vscale x 4 x double> undef, undef
1141  %nxv8f64 = fcmp oge <vscale x 8 x double> undef, undef
1142
1143  ret void
1144}
1145
1146define void @fcmp_ueq() {
1147; CHECK-LABEL: 'fcmp_ueq'
1148; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v2f32 = fcmp ueq <2 x float> undef, undef
1149; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v4f32 = fcmp ueq <4 x float> undef, undef
1150; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v8f32 = fcmp ueq <8 x float> undef, undef
1151; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %v16f32 = fcmp ueq <16 x float> undef, undef
1152; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv1f32 = fcmp ueq <vscale x 1 x float> undef, undef
1153; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv2f32 = fcmp ueq <vscale x 2 x float> undef, undef
1154; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv4f32 = fcmp ueq <vscale x 4 x float> undef, undef
1155; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv8f32 = fcmp ueq <vscale x 8 x float> undef, undef
1156; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %nxv16f32 = fcmp ueq <vscale x 16 x float> undef, undef
1157; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v2f64 = fcmp ueq <2 x double> undef, undef
1158; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v4f64 = fcmp ueq <4 x double> undef, undef
1159; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %v8f64 = fcmp ueq <8 x double> undef, undef
1160; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv1f64 = fcmp ueq <vscale x 1 x double> undef, undef
1161; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv2f64 = fcmp ueq <vscale x 2 x double> undef, undef
1162; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv4f64 = fcmp ueq <vscale x 4 x double> undef, undef
1163; CHECK-NEXT:  Cost Model: Found an estimated cost of 17 for instruction: %nxv8f64 = fcmp ueq <vscale x 8 x double> undef, undef
1164; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1165;
1166
1167
1168  %v2f32 = fcmp ueq <2 x float> undef, undef
1169  %v4f32 = fcmp ueq <4 x float> undef, undef
1170  %v8f32 = fcmp ueq <8 x float> undef, undef
1171  %v16f32 = fcmp ueq <16 x float> undef, undef
1172
1173  %nxv1f32 = fcmp ueq <vscale x 1 x float> undef, undef
1174  %nxv2f32 = fcmp ueq <vscale x 2 x float> undef, undef
1175  %nxv4f32 = fcmp ueq <vscale x 4 x float> undef, undef
1176  %nxv8f32 = fcmp ueq <vscale x 8 x float> undef, undef
1177  %nxv16f32 = fcmp ueq <vscale x 16 x float> undef, undef
1178
1179  %v2f64 = fcmp ueq <2 x double> undef, undef
1180  %v4f64 = fcmp ueq <4 x double> undef, undef
1181  %v8f64 = fcmp ueq <8 x double> undef, undef
1182
1183  %nxv1f64 = fcmp ueq <vscale x 1 x double> undef, undef
1184  %nxv2f64 = fcmp ueq <vscale x 2 x double> undef, undef
1185  %nxv4f64 = fcmp ueq <vscale x 4 x double> undef, undef
1186  %nxv8f64 = fcmp ueq <vscale x 8 x double> undef, undef
1187
1188  ret void
1189}
1190
1191define void @fcmp_une() {
1192; CHECK-LABEL: 'fcmp_une'
1193; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp une <2 x float> undef, undef
1194; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp une <4 x float> undef, undef
1195; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v8f32 = fcmp une <8 x float> undef, undef
1196; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v16f32 = fcmp une <16 x float> undef, undef
1197; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp une <vscale x 1 x float> undef, undef
1198; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp une <vscale x 2 x float> undef, undef
1199; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv4f32 = fcmp une <vscale x 4 x float> undef, undef
1200; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv8f32 = fcmp une <vscale x 8 x float> undef, undef
1201; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv16f32 = fcmp une <vscale x 16 x float> undef, undef
1202; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp une <2 x double> undef, undef
1203; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f64 = fcmp une <4 x double> undef, undef
1204; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %v8f64 = fcmp une <8 x double> undef, undef
1205; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp une <vscale x 1 x double> undef, undef
1206; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f64 = fcmp une <vscale x 2 x double> undef, undef
1207; CHECK-NEXT:  Cost Model: Found an estimated cost of 4 for instruction: %nxv4f64 = fcmp une <vscale x 4 x double> undef, undef
1208; CHECK-NEXT:  Cost Model: Found an estimated cost of 8 for instruction: %nxv8f64 = fcmp une <vscale x 8 x double> undef, undef
1209; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1210;
1211
1212
1213  %v2f32 = fcmp une <2 x float> undef, undef
1214  %v4f32 = fcmp une <4 x float> undef, undef
1215  %v8f32 = fcmp une <8 x float> undef, undef
1216  %v16f32 = fcmp une <16 x float> undef, undef
1217
1218  %nxv1f32 = fcmp une <vscale x 1 x float> undef, undef
1219  %nxv2f32 = fcmp une <vscale x 2 x float> undef, undef
1220  %nxv4f32 = fcmp une <vscale x 4 x float> undef, undef
1221  %nxv8f32 = fcmp une <vscale x 8 x float> undef, undef
1222  %nxv16f32 = fcmp une <vscale x 16 x float> undef, undef
1223
1224  %v2f64 = fcmp une <2 x double> undef, undef
1225  %v4f64 = fcmp une <4 x double> undef, undef
1226  %v8f64 = fcmp une <8 x double> undef, undef
1227
1228  %nxv1f64 = fcmp une <vscale x 1 x double> undef, undef
1229  %nxv2f64 = fcmp une <vscale x 2 x double> undef, undef
1230  %nxv4f64 = fcmp une <vscale x 4 x double> undef, undef
1231  %nxv8f64 = fcmp une <vscale x 8 x double> undef, undef
1232
1233  ret void
1234}
1235
1236define void @fcmp_ult() {
1237; CHECK-LABEL: 'fcmp_ult'
1238; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f32 = fcmp ult <2 x float> undef, undef
1239; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f32 = fcmp ult <4 x float> undef, undef
1240; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v8f32 = fcmp ult <8 x float> undef, undef
1241; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v16f32 = fcmp ult <16 x float> undef, undef
1242; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32 = fcmp ult <vscale x 1 x float> undef, undef
1243; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32 = fcmp ult <vscale x 2 x float> undef, undef
1244; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv4f32 = fcmp ult <vscale x 4 x float> undef, undef
1245; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv8f32 = fcmp ult <vscale x 8 x float> undef, undef
1246; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv16f32 = fcmp ult <vscale x 16 x float> undef, undef
1247; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f64 = fcmp ult <2 x double> undef, undef
1248; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v4f64 = fcmp ult <4 x double> undef, undef
1249; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v8f64 = fcmp ult <8 x double> undef, undef
1250; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64 = fcmp ult <vscale x 1 x double> undef, undef
1251; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv2f64 = fcmp ult <vscale x 2 x double> undef, undef
1252; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv4f64 = fcmp ult <vscale x 4 x double> undef, undef
1253; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv8f64 = fcmp ult <vscale x 8 x double> undef, undef
1254; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1255;
1256
1257
1258  %v2f32 = fcmp ult <2 x float> undef, undef
1259  %v4f32 = fcmp ult <4 x float> undef, undef
1260  %v8f32 = fcmp ult <8 x float> undef, undef
1261  %v16f32 = fcmp ult <16 x float> undef, undef
1262
1263  %nxv1f32 = fcmp ult <vscale x 1 x float> undef, undef
1264  %nxv2f32 = fcmp ult <vscale x 2 x float> undef, undef
1265  %nxv4f32 = fcmp ult <vscale x 4 x float> undef, undef
1266  %nxv8f32 = fcmp ult <vscale x 8 x float> undef, undef
1267  %nxv16f32 = fcmp ult <vscale x 16 x float> undef, undef
1268
1269  %v2f64 = fcmp ult <2 x double> undef, undef
1270  %v4f64 = fcmp ult <4 x double> undef, undef
1271  %v8f64 = fcmp ult <8 x double> undef, undef
1272
1273  %nxv1f64 = fcmp ult <vscale x 1 x double> undef, undef
1274  %nxv2f64 = fcmp ult <vscale x 2 x double> undef, undef
1275  %nxv4f64 = fcmp ult <vscale x 4 x double> undef, undef
1276  %nxv8f64 = fcmp ult <vscale x 8 x double> undef, undef
1277
1278  ret void
1279}
1280
1281define void @fcmp_ule() {
1282; CHECK-LABEL: 'fcmp_ule'
1283; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f32 = fcmp ule <2 x float> undef, undef
1284; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f32 = fcmp ule <4 x float> undef, undef
1285; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v8f32 = fcmp ule <8 x float> undef, undef
1286; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v16f32 = fcmp ule <16 x float> undef, undef
1287; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32 = fcmp ule <vscale x 1 x float> undef, undef
1288; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32 = fcmp ule <vscale x 2 x float> undef, undef
1289; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv4f32 = fcmp ule <vscale x 4 x float> undef, undef
1290; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv8f32 = fcmp ule <vscale x 8 x float> undef, undef
1291; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv16f32 = fcmp ule <vscale x 16 x float> undef, undef
1292; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f64 = fcmp ule <2 x double> undef, undef
1293; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v4f64 = fcmp ule <4 x double> undef, undef
1294; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v8f64 = fcmp ule <8 x double> undef, undef
1295; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64 = fcmp ule <vscale x 1 x double> undef, undef
1296; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv2f64 = fcmp ule <vscale x 2 x double> undef, undef
1297; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv4f64 = fcmp ule <vscale x 4 x double> undef, undef
1298; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv8f64 = fcmp ule <vscale x 8 x double> undef, undef
1299; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1300;
1301
1302
1303  %v2f32 = fcmp ule <2 x float> undef, undef
1304  %v4f32 = fcmp ule <4 x float> undef, undef
1305  %v8f32 = fcmp ule <8 x float> undef, undef
1306  %v16f32 = fcmp ule <16 x float> undef, undef
1307
1308  %nxv1f32 = fcmp ule <vscale x 1 x float> undef, undef
1309  %nxv2f32 = fcmp ule <vscale x 2 x float> undef, undef
1310  %nxv4f32 = fcmp ule <vscale x 4 x float> undef, undef
1311  %nxv8f32 = fcmp ule <vscale x 8 x float> undef, undef
1312  %nxv16f32 = fcmp ule <vscale x 16 x float> undef, undef
1313
1314  %v2f64 = fcmp ule <2 x double> undef, undef
1315  %v4f64 = fcmp ule <4 x double> undef, undef
1316  %v8f64 = fcmp ule <8 x double> undef, undef
1317
1318  %nxv1f64 = fcmp ule <vscale x 1 x double> undef, undef
1319  %nxv2f64 = fcmp ule <vscale x 2 x double> undef, undef
1320  %nxv4f64 = fcmp ule <vscale x 4 x double> undef, undef
1321  %nxv8f64 = fcmp ule <vscale x 8 x double> undef, undef
1322
1323  ret void
1324}
1325
1326define void @fcmp_ugt() {
1327; CHECK-LABEL: 'fcmp_ugt'
1328; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f32 = fcmp ugt <2 x float> undef, undef
1329; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f32 = fcmp ugt <4 x float> undef, undef
1330; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v8f32 = fcmp ugt <8 x float> undef, undef
1331; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v16f32 = fcmp ugt <16 x float> undef, undef
1332; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32 = fcmp ugt <vscale x 1 x float> undef, undef
1333; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32 = fcmp ugt <vscale x 2 x float> undef, undef
1334; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv4f32 = fcmp ugt <vscale x 4 x float> undef, undef
1335; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv8f32 = fcmp ugt <vscale x 8 x float> undef, undef
1336; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv16f32 = fcmp ugt <vscale x 16 x float> undef, undef
1337; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f64 = fcmp ugt <2 x double> undef, undef
1338; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v4f64 = fcmp ugt <4 x double> undef, undef
1339; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v8f64 = fcmp ugt <8 x double> undef, undef
1340; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64 = fcmp ugt <vscale x 1 x double> undef, undef
1341; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv2f64 = fcmp ugt <vscale x 2 x double> undef, undef
1342; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv4f64 = fcmp ugt <vscale x 4 x double> undef, undef
1343; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv8f64 = fcmp ugt <vscale x 8 x double> undef, undef
1344; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1345;
1346
1347
1348  %v2f32 = fcmp ugt <2 x float> undef, undef
1349  %v4f32 = fcmp ugt <4 x float> undef, undef
1350  %v8f32 = fcmp ugt <8 x float> undef, undef
1351  %v16f32 = fcmp ugt <16 x float> undef, undef
1352
1353  %nxv1f32 = fcmp ugt <vscale x 1 x float> undef, undef
1354  %nxv2f32 = fcmp ugt <vscale x 2 x float> undef, undef
1355  %nxv4f32 = fcmp ugt <vscale x 4 x float> undef, undef
1356  %nxv8f32 = fcmp ugt <vscale x 8 x float> undef, undef
1357  %nxv16f32 = fcmp ugt <vscale x 16 x float> undef, undef
1358
1359  %v2f64 = fcmp ugt <2 x double> undef, undef
1360  %v4f64 = fcmp ugt <4 x double> undef, undef
1361  %v8f64 = fcmp ugt <8 x double> undef, undef
1362
1363  %nxv1f64 = fcmp ugt <vscale x 1 x double> undef, undef
1364  %nxv2f64 = fcmp ugt <vscale x 2 x double> undef, undef
1365  %nxv4f64 = fcmp ugt <vscale x 4 x double> undef, undef
1366  %nxv8f64 = fcmp ugt <vscale x 8 x double> undef, undef
1367
1368  ret void
1369}
1370
1371define void @fcmp_uge() {
1372; CHECK-LABEL: 'fcmp_uge'
1373; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f32 = fcmp uge <2 x float> undef, undef
1374; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v4f32 = fcmp uge <4 x float> undef, undef
1375; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v8f32 = fcmp uge <8 x float> undef, undef
1376; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v16f32 = fcmp uge <16 x float> undef, undef
1377; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f32 = fcmp uge <vscale x 1 x float> undef, undef
1378; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv2f32 = fcmp uge <vscale x 2 x float> undef, undef
1379; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv4f32 = fcmp uge <vscale x 4 x float> undef, undef
1380; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv8f32 = fcmp uge <vscale x 8 x float> undef, undef
1381; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv16f32 = fcmp uge <vscale x 16 x float> undef, undef
1382; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %v2f64 = fcmp uge <2 x double> undef, undef
1383; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %v4f64 = fcmp uge <4 x double> undef, undef
1384; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %v8f64 = fcmp uge <8 x double> undef, undef
1385; CHECK-NEXT:  Cost Model: Found an estimated cost of 2 for instruction: %nxv1f64 = fcmp uge <vscale x 1 x double> undef, undef
1386; CHECK-NEXT:  Cost Model: Found an estimated cost of 3 for instruction: %nxv2f64 = fcmp uge <vscale x 2 x double> undef, undef
1387; CHECK-NEXT:  Cost Model: Found an estimated cost of 5 for instruction: %nxv4f64 = fcmp uge <vscale x 4 x double> undef, undef
1388; CHECK-NEXT:  Cost Model: Found an estimated cost of 9 for instruction: %nxv8f64 = fcmp uge <vscale x 8 x double> undef, undef
1389; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1390;
1391
1392
1393  %v2f32 = fcmp uge <2 x float> undef, undef
1394  %v4f32 = fcmp uge <4 x float> undef, undef
1395  %v8f32 = fcmp uge <8 x float> undef, undef
1396  %v16f32 = fcmp uge <16 x float> undef, undef
1397
1398  %nxv1f32 = fcmp uge <vscale x 1 x float> undef, undef
1399  %nxv2f32 = fcmp uge <vscale x 2 x float> undef, undef
1400  %nxv4f32 = fcmp uge <vscale x 4 x float> undef, undef
1401  %nxv8f32 = fcmp uge <vscale x 8 x float> undef, undef
1402  %nxv16f32 = fcmp uge <vscale x 16 x float> undef, undef
1403
1404  %v2f64 = fcmp uge <2 x double> undef, undef
1405  %v4f64 = fcmp uge <4 x double> undef, undef
1406  %v8f64 = fcmp uge <8 x double> undef, undef
1407
1408  %nxv1f64 = fcmp uge <vscale x 1 x double> undef, undef
1409  %nxv2f64 = fcmp uge <vscale x 2 x double> undef, undef
1410  %nxv4f64 = fcmp uge <vscale x 4 x double> undef, undef
1411  %nxv8f64 = fcmp uge <vscale x 8 x double> undef, undef
1412
1413  ret void
1414}
1415
1416define void @fcmp_true() {
1417; CHECK-LABEL: 'fcmp_true'
1418; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp true <2 x float> undef, undef
1419; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp true <4 x float> undef, undef
1420; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8f32 = fcmp true <8 x float> undef, undef
1421; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16f32 = fcmp true <16 x float> undef, undef
1422; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp true <vscale x 1 x float> undef, undef
1423; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp true <vscale x 2 x float> undef, undef
1424; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4f32 = fcmp true <vscale x 4 x float> undef, undef
1425; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8f32 = fcmp true <vscale x 8 x float> undef, undef
1426; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv16f32 = fcmp true <vscale x 16 x float> undef, undef
1427; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp true <2 x double> undef, undef
1428; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f64 = fcmp true <4 x double> undef, undef
1429; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8f64 = fcmp true <8 x double> undef, undef
1430; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp true <vscale x 1 x double> undef, undef
1431; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f64 = fcmp true <vscale x 2 x double> undef, undef
1432; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4f64 = fcmp true <vscale x 4 x double> undef, undef
1433; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8f64 = fcmp true <vscale x 8 x double> undef, undef
1434; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1435;
1436
1437
1438  %v2f32 = fcmp true <2 x float> undef, undef
1439  %v4f32 = fcmp true <4 x float> undef, undef
1440  %v8f32 = fcmp true <8 x float> undef, undef
1441  %v16f32 = fcmp true <16 x float> undef, undef
1442
1443  %nxv1f32 = fcmp true <vscale x 1 x float> undef, undef
1444  %nxv2f32 = fcmp true <vscale x 2 x float> undef, undef
1445  %nxv4f32 = fcmp true <vscale x 4 x float> undef, undef
1446  %nxv8f32 = fcmp true <vscale x 8 x float> undef, undef
1447  %nxv16f32 = fcmp true <vscale x 16 x float> undef, undef
1448
1449  %v2f64 = fcmp true <2 x double> undef, undef
1450  %v4f64 = fcmp true <4 x double> undef, undef
1451  %v8f64 = fcmp true <8 x double> undef, undef
1452
1453  %nxv1f64 = fcmp true <vscale x 1 x double> undef, undef
1454  %nxv2f64 = fcmp true <vscale x 2 x double> undef, undef
1455  %nxv4f64 = fcmp true <vscale x 4 x double> undef, undef
1456  %nxv8f64 = fcmp true <vscale x 8 x double> undef, undef
1457
1458  ret void
1459}
1460
1461define void @fcmp_false() {
1462; CHECK-LABEL: 'fcmp_false'
1463; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f32 = fcmp false <2 x float> undef, undef
1464; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f32 = fcmp false <4 x float> undef, undef
1465; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8f32 = fcmp false <8 x float> undef, undef
1466; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v16f32 = fcmp false <16 x float> undef, undef
1467; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f32 = fcmp false <vscale x 1 x float> undef, undef
1468; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f32 = fcmp false <vscale x 2 x float> undef, undef
1469; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4f32 = fcmp false <vscale x 4 x float> undef, undef
1470; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8f32 = fcmp false <vscale x 8 x float> undef, undef
1471; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv16f32 = fcmp false <vscale x 16 x float> undef, undef
1472; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v2f64 = fcmp false <2 x double> undef, undef
1473; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v4f64 = fcmp false <4 x double> undef, undef
1474; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %v8f64 = fcmp false <8 x double> undef, undef
1475; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv1f64 = fcmp false <vscale x 1 x double> undef, undef
1476; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv2f64 = fcmp false <vscale x 2 x double> undef, undef
1477; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv4f64 = fcmp false <vscale x 4 x double> undef, undef
1478; CHECK-NEXT:  Cost Model: Found an estimated cost of 1 for instruction: %nxv8f64 = fcmp false <vscale x 8 x double> undef, undef
1479; CHECK-NEXT:  Cost Model: Found an estimated cost of 0 for instruction: ret void
1480;
1481
1482
1483  %v2f32 = fcmp false <2 x float> undef, undef
1484  %v4f32 = fcmp false <4 x float> undef, undef
1485  %v8f32 = fcmp false <8 x float> undef, undef
1486  %v16f32 = fcmp false <16 x float> undef, undef
1487
1488  %nxv1f32 = fcmp false <vscale x 1 x float> undef, undef
1489  %nxv2f32 = fcmp false <vscale x 2 x float> undef, undef
1490  %nxv4f32 = fcmp false <vscale x 4 x float> undef, undef
1491  %nxv8f32 = fcmp false <vscale x 8 x float> undef, undef
1492  %nxv16f32 = fcmp false <vscale x 16 x float> undef, undef
1493
1494  %v2f64 = fcmp false <2 x double> undef, undef
1495  %v4f64 = fcmp false <4 x double> undef, undef
1496  %v8f64 = fcmp false <8 x double> undef, undef
1497
1498  %nxv1f64 = fcmp false <vscale x 1 x double> undef, undef
1499  %nxv2f64 = fcmp false <vscale x 2 x double> undef, undef
1500  %nxv4f64 = fcmp false <vscale x 4 x double> undef, undef
1501  %nxv8f64 = fcmp false <vscale x 8 x double> undef, undef
1502
1503  ret void
1504}
1505