1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; Check that cmp's of scalable vector splats are simplified
4 ; RUN: opt -passes=instsimplify -S < %s | FileCheck %s
6 define <2 x i1> @i32cmp_eq_fixed_zero() {
7 ; CHECK-LABEL: @i32cmp_eq_fixed_zero(
8 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
10 %res = icmp eq <2 x i32> zeroinitializer, zeroinitializer
14 define <vscale x 2 x i1> @i32cmp_eq_scalable_zero() {
15 ; CHECK-LABEL: @i32cmp_eq_scalable_zero(
16 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
18 %res = icmp eq <vscale x 2 x i32> zeroinitializer, zeroinitializer
19 ret <vscale x 2 x i1> %res
22 define <2 x i1> @i32cmp_eq_fixed_one() {
23 ; CHECK-LABEL: @i32cmp_eq_fixed_one(
24 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
26 %res = icmp eq <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
30 define <vscale x 2 x i1> @i32cmp_eq_scalable_one() {
31 ; CHECK-LABEL: @i32cmp_eq_scalable_one(
32 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
34 %res = icmp eq <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
35 ret <vscale x 2 x i1> %res
38 define <2 x i1> @i32cmp_ne_fixed_zero() {
39 ; CHECK-LABEL: @i32cmp_ne_fixed_zero(
40 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
42 %res = icmp ne <2 x i32> zeroinitializer, zeroinitializer
46 define <vscale x 2 x i1> @i32cmp_ne_scalable_zero() {
47 ; CHECK-LABEL: @i32cmp_ne_scalable_zero(
48 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
50 %res = icmp ne <vscale x 2 x i32> zeroinitializer, zeroinitializer
51 ret <vscale x 2 x i1> %res
54 define <2 x i1> @i32cmp_ne_fixed_one() {
55 ; CHECK-LABEL: @i32cmp_ne_fixed_one(
56 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
58 %res = icmp ne <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
62 define <vscale x 2 x i1> @i32cmp_ne_scalable_one() {
63 ; CHECK-LABEL: @i32cmp_ne_scalable_one(
64 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
66 %res = icmp ne <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
67 ret <vscale x 2 x i1> %res
70 define <2 x i1> @i32cmp_ugt_fixed_zero() {
71 ; CHECK-LABEL: @i32cmp_ugt_fixed_zero(
72 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
74 %res = icmp ugt <2 x i32> zeroinitializer, zeroinitializer
78 define <vscale x 2 x i1> @i32cmp_ugt_scalable_zero() {
79 ; CHECK-LABEL: @i32cmp_ugt_scalable_zero(
80 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
82 %res = icmp ugt <vscale x 2 x i32> zeroinitializer, zeroinitializer
83 ret <vscale x 2 x i1> %res
86 define <2 x i1> @i32cmp_ugt_fixed_one() {
87 ; CHECK-LABEL: @i32cmp_ugt_fixed_one(
88 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
90 %res = icmp ugt <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
94 define <vscale x 2 x i1> @i32cmp_ugt_scalable_one() {
95 ; CHECK-LABEL: @i32cmp_ugt_scalable_one(
96 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
98 %res = icmp ugt <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
99 ret <vscale x 2 x i1> %res
102 define <2 x i1> @i32cmp_uge_fixed_zero() {
103 ; CHECK-LABEL: @i32cmp_uge_fixed_zero(
104 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
106 %res = icmp uge <2 x i32> zeroinitializer, zeroinitializer
110 define <vscale x 2 x i1> @i32cmp_uge_scalable_zero() {
111 ; CHECK-LABEL: @i32cmp_uge_scalable_zero(
112 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
114 %res = icmp uge <vscale x 2 x i32> zeroinitializer, zeroinitializer
115 ret <vscale x 2 x i1> %res
118 define <2 x i1> @i32cmp_uge_fixed_one() {
119 ; CHECK-LABEL: @i32cmp_uge_fixed_one(
120 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
122 %res = icmp uge <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
126 define <vscale x 2 x i1> @i32cmp_uge_scalable_one() {
127 ; CHECK-LABEL: @i32cmp_uge_scalable_one(
128 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
130 %res = icmp uge <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
131 ret <vscale x 2 x i1> %res
134 define <2 x i1> @i32cmp_ult_fixed_zero() {
135 ; CHECK-LABEL: @i32cmp_ult_fixed_zero(
136 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
138 %res = icmp ult <2 x i32> zeroinitializer, zeroinitializer
142 define <vscale x 2 x i1> @i32cmp_ult_scalable_zero() {
143 ; CHECK-LABEL: @i32cmp_ult_scalable_zero(
144 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
146 %res = icmp ult <vscale x 2 x i32> zeroinitializer, zeroinitializer
147 ret <vscale x 2 x i1> %res
150 define <2 x i1> @i32cmp_ult_fixed_one() {
151 ; CHECK-LABEL: @i32cmp_ult_fixed_one(
152 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
154 %res = icmp ult <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
158 define <vscale x 2 x i1> @i32cmp_ult_scalable_one() {
159 ; CHECK-LABEL: @i32cmp_ult_scalable_one(
160 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
162 %res = icmp ult <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
163 ret <vscale x 2 x i1> %res
166 define <2 x i1> @i32cmp_ule_fixed_zero() {
167 ; CHECK-LABEL: @i32cmp_ule_fixed_zero(
168 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
170 %res = icmp ule <2 x i32> zeroinitializer, zeroinitializer
174 define <vscale x 2 x i1> @i32cmp_ule_scalable_zero() {
175 ; CHECK-LABEL: @i32cmp_ule_scalable_zero(
176 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
178 %res = icmp ule <vscale x 2 x i32> zeroinitializer, zeroinitializer
179 ret <vscale x 2 x i1> %res
182 define <2 x i1> @i32cmp_ule_fixed_one() {
183 ; CHECK-LABEL: @i32cmp_ule_fixed_one(
184 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
186 %res = icmp ule <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
190 define <vscale x 2 x i1> @i32cmp_ule_scalable_one() {
191 ; CHECK-LABEL: @i32cmp_ule_scalable_one(
192 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
194 %res = icmp ule <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
195 ret <vscale x 2 x i1> %res
198 define <2 x i1> @i32cmp_sgt_fixed_zero() {
199 ; CHECK-LABEL: @i32cmp_sgt_fixed_zero(
200 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
202 %res = icmp sgt <2 x i32> zeroinitializer, zeroinitializer
206 define <vscale x 2 x i1> @i32cmp_sgt_scalable_zero() {
207 ; CHECK-LABEL: @i32cmp_sgt_scalable_zero(
208 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
210 %res = icmp sgt <vscale x 2 x i32> zeroinitializer, zeroinitializer
211 ret <vscale x 2 x i1> %res
214 define <2 x i1> @i32cmp_sgt_fixed_one() {
215 ; CHECK-LABEL: @i32cmp_sgt_fixed_one(
216 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
218 %res = icmp sgt <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
222 define <vscale x 2 x i1> @i32cmp_sgt_scalable_one() {
223 ; CHECK-LABEL: @i32cmp_sgt_scalable_one(
224 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
226 %res = icmp sgt <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
227 ret <vscale x 2 x i1> %res
230 define <2 x i1> @i32cmp_sge_fixed_zero() {
231 ; CHECK-LABEL: @i32cmp_sge_fixed_zero(
232 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
234 %res = icmp sge <2 x i32> zeroinitializer, zeroinitializer
238 define <vscale x 2 x i1> @i32cmp_sge_scalable_zero() {
239 ; CHECK-LABEL: @i32cmp_sge_scalable_zero(
240 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
242 %res = icmp sge <vscale x 2 x i32> zeroinitializer, zeroinitializer
243 ret <vscale x 2 x i1> %res
246 define <2 x i1> @i32cmp_sge_fixed_one() {
247 ; CHECK-LABEL: @i32cmp_sge_fixed_one(
248 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
250 %res = icmp sge <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
254 define <vscale x 2 x i1> @i32cmp_sge_scalable_one() {
255 ; CHECK-LABEL: @i32cmp_sge_scalable_one(
256 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
258 %res = icmp sge <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
259 ret <vscale x 2 x i1> %res
262 define <2 x i1> @i32cmp_slt_fixed_zero() {
263 ; CHECK-LABEL: @i32cmp_slt_fixed_zero(
264 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
266 %res = icmp slt <2 x i32> zeroinitializer, zeroinitializer
270 define <vscale x 2 x i1> @i32cmp_slt_scalable_zero() {
271 ; CHECK-LABEL: @i32cmp_slt_scalable_zero(
272 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
274 %res = icmp slt <vscale x 2 x i32> zeroinitializer, zeroinitializer
275 ret <vscale x 2 x i1> %res
278 define <2 x i1> @i32cmp_slt_fixed_one() {
279 ; CHECK-LABEL: @i32cmp_slt_fixed_one(
280 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
282 %res = icmp slt <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
286 define <vscale x 2 x i1> @i32cmp_slt_scalable_one() {
287 ; CHECK-LABEL: @i32cmp_slt_scalable_one(
288 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
290 %res = icmp slt <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
291 ret <vscale x 2 x i1> %res
294 define <2 x i1> @i32cmp_sle_fixed_zero() {
295 ; CHECK-LABEL: @i32cmp_sle_fixed_zero(
296 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
298 %res = icmp sle <2 x i32> zeroinitializer, zeroinitializer
302 define <vscale x 2 x i1> @i32cmp_sle_scalable_zero() {
303 ; CHECK-LABEL: @i32cmp_sle_scalable_zero(
304 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
306 %res = icmp sle <vscale x 2 x i32> zeroinitializer, zeroinitializer
307 ret <vscale x 2 x i1> %res
310 define <2 x i1> @i32cmp_sle_fixed_one() {
311 ; CHECK-LABEL: @i32cmp_sle_fixed_one(
312 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
314 %res = icmp sle <2 x i32> <i32 1, i32 1>, <i32 1, i32 1>
318 define <vscale x 2 x i1> @i32cmp_sle_scalable_one() {
319 ; CHECK-LABEL: @i32cmp_sle_scalable_one(
320 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
322 %res = icmp sle <vscale x 2 x i32> shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x i32> insertelement (<vscale x 2 x i32> undef, i32 1, i32 0), <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer)
323 ret <vscale x 2 x i1> %res
326 define <2 x i1> @floatcmp_false_fixed_zero() {
327 ; CHECK-LABEL: @floatcmp_false_fixed_zero(
328 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
330 %res = fcmp false <2 x float> zeroinitializer, zeroinitializer
334 define <vscale x 2 x i1> @floatcmp_false_scalable_zero() {
335 ; CHECK-LABEL: @floatcmp_false_scalable_zero(
336 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
338 %res = fcmp false <vscale x 2 x float> zeroinitializer, zeroinitializer
339 ret <vscale x 2 x i1> %res
342 define <2 x i1> @floatcmp_false_fixed_one() {
343 ; CHECK-LABEL: @floatcmp_false_fixed_one(
344 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
346 %res = fcmp false <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
350 define <vscale x 2 x i1> @floatcmp_false_scalable_one() {
351 ; CHECK-LABEL: @floatcmp_false_scalable_one(
352 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
354 %res = fcmp false <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
355 ret <vscale x 2 x i1> %res
358 define <2 x i1> @floatcmp_oeq_fixed_zero() {
359 ; CHECK-LABEL: @floatcmp_oeq_fixed_zero(
360 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
362 %res = fcmp oeq <2 x float> zeroinitializer, zeroinitializer
366 define <vscale x 2 x i1> @floatcmp_oeq_scalable_zero() {
367 ; CHECK-LABEL: @floatcmp_oeq_scalable_zero(
368 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
370 %res = fcmp oeq <vscale x 2 x float> zeroinitializer, zeroinitializer
371 ret <vscale x 2 x i1> %res
374 define <2 x i1> @floatcmp_oeq_fixed_one() {
375 ; CHECK-LABEL: @floatcmp_oeq_fixed_one(
376 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
378 %res = fcmp oeq <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
382 define <vscale x 2 x i1> @floatcmp_oeq_scalable_one() {
383 ; CHECK-LABEL: @floatcmp_oeq_scalable_one(
384 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
386 %res = fcmp oeq <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
387 ret <vscale x 2 x i1> %res
390 define <2 x i1> @floatcmp_ogt_fixed_zero() {
391 ; CHECK-LABEL: @floatcmp_ogt_fixed_zero(
392 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
394 %res = fcmp ogt <2 x float> zeroinitializer, zeroinitializer
398 define <vscale x 2 x i1> @floatcmp_ogt_scalable_zero() {
399 ; CHECK-LABEL: @floatcmp_ogt_scalable_zero(
400 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
402 %res = fcmp ogt <vscale x 2 x float> zeroinitializer, zeroinitializer
403 ret <vscale x 2 x i1> %res
406 define <2 x i1> @floatcmp_ogt_fixed_one() {
407 ; CHECK-LABEL: @floatcmp_ogt_fixed_one(
408 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
410 %res = fcmp ogt <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
414 define <vscale x 2 x i1> @floatcmp_ogt_scalable_one() {
415 ; CHECK-LABEL: @floatcmp_ogt_scalable_one(
416 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
418 %res = fcmp ogt <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
419 ret <vscale x 2 x i1> %res
422 define <2 x i1> @floatcmp_oge_fixed_zero() {
423 ; CHECK-LABEL: @floatcmp_oge_fixed_zero(
424 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
426 %res = fcmp oge <2 x float> zeroinitializer, zeroinitializer
430 define <vscale x 2 x i1> @floatcmp_oge_scalable_zero() {
431 ; CHECK-LABEL: @floatcmp_oge_scalable_zero(
432 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
434 %res = fcmp oge <vscale x 2 x float> zeroinitializer, zeroinitializer
435 ret <vscale x 2 x i1> %res
438 define <2 x i1> @floatcmp_oge_fixed_one() {
439 ; CHECK-LABEL: @floatcmp_oge_fixed_one(
440 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
442 %res = fcmp oge <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
446 define <vscale x 2 x i1> @floatcmp_oge_scalable_one() {
447 ; CHECK-LABEL: @floatcmp_oge_scalable_one(
448 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
450 %res = fcmp oge <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
451 ret <vscale x 2 x i1> %res
454 define <2 x i1> @floatcmp_olt_fixed_zero() {
455 ; CHECK-LABEL: @floatcmp_olt_fixed_zero(
456 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
458 %res = fcmp olt <2 x float> zeroinitializer, zeroinitializer
462 define <vscale x 2 x i1> @floatcmp_olt_scalable_zero() {
463 ; CHECK-LABEL: @floatcmp_olt_scalable_zero(
464 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
466 %res = fcmp olt <vscale x 2 x float> zeroinitializer, zeroinitializer
467 ret <vscale x 2 x i1> %res
470 define <2 x i1> @floatcmp_olt_fixed_one() {
471 ; CHECK-LABEL: @floatcmp_olt_fixed_one(
472 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
474 %res = fcmp olt <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
478 define <vscale x 2 x i1> @floatcmp_olt_scalable_one() {
479 ; CHECK-LABEL: @floatcmp_olt_scalable_one(
480 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
482 %res = fcmp olt <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
483 ret <vscale x 2 x i1> %res
486 define <2 x i1> @floatcmp_ole_fixed_zero() {
487 ; CHECK-LABEL: @floatcmp_ole_fixed_zero(
488 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
490 %res = fcmp ole <2 x float> zeroinitializer, zeroinitializer
494 define <vscale x 2 x i1> @floatcmp_ole_scalable_zero() {
495 ; CHECK-LABEL: @floatcmp_ole_scalable_zero(
496 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
498 %res = fcmp ole <vscale x 2 x float> zeroinitializer, zeroinitializer
499 ret <vscale x 2 x i1> %res
502 define <2 x i1> @floatcmp_ole_fixed_one() {
503 ; CHECK-LABEL: @floatcmp_ole_fixed_one(
504 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
506 %res = fcmp ole <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
510 define <vscale x 2 x i1> @floatcmp_ole_scalable_one() {
511 ; CHECK-LABEL: @floatcmp_ole_scalable_one(
512 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
514 %res = fcmp ole <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
515 ret <vscale x 2 x i1> %res
518 define <2 x i1> @floatcmp_one_fixed_zero() {
519 ; CHECK-LABEL: @floatcmp_one_fixed_zero(
520 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
522 %res = fcmp one <2 x float> zeroinitializer, zeroinitializer
526 define <vscale x 2 x i1> @floatcmp_one_scalable_zero() {
527 ; CHECK-LABEL: @floatcmp_one_scalable_zero(
528 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
530 %res = fcmp one <vscale x 2 x float> zeroinitializer, zeroinitializer
531 ret <vscale x 2 x i1> %res
534 define <2 x i1> @floatcmp_one_fixed_one() {
535 ; CHECK-LABEL: @floatcmp_one_fixed_one(
536 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
538 %res = fcmp one <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
542 define <vscale x 2 x i1> @floatcmp_one_scalable_one() {
543 ; CHECK-LABEL: @floatcmp_one_scalable_one(
544 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
546 %res = fcmp one <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
547 ret <vscale x 2 x i1> %res
550 define <2 x i1> @floatcmp_ord_fixed_zero() {
551 ; CHECK-LABEL: @floatcmp_ord_fixed_zero(
552 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
554 %res = fcmp ord <2 x float> zeroinitializer, zeroinitializer
558 define <vscale x 2 x i1> @floatcmp_ord_scalable_zero() {
559 ; CHECK-LABEL: @floatcmp_ord_scalable_zero(
560 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
562 %res = fcmp ord <vscale x 2 x float> zeroinitializer, zeroinitializer
563 ret <vscale x 2 x i1> %res
566 define <2 x i1> @floatcmp_ord_fixed_one() {
567 ; CHECK-LABEL: @floatcmp_ord_fixed_one(
568 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
570 %res = fcmp ord <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
574 define <vscale x 2 x i1> @floatcmp_ord_scalable_one() {
575 ; CHECK-LABEL: @floatcmp_ord_scalable_one(
576 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
578 %res = fcmp ord <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
579 ret <vscale x 2 x i1> %res
582 define <2 x i1> @floatcmp_ueq_fixed_zero() {
583 ; CHECK-LABEL: @floatcmp_ueq_fixed_zero(
584 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
586 %res = fcmp ueq <2 x float> zeroinitializer, zeroinitializer
590 define <vscale x 2 x i1> @floatcmp_ueq_scalable_zero() {
591 ; CHECK-LABEL: @floatcmp_ueq_scalable_zero(
592 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
594 %res = fcmp ueq <vscale x 2 x float> zeroinitializer, zeroinitializer
595 ret <vscale x 2 x i1> %res
598 define <2 x i1> @floatcmp_ueq_fixed_one() {
599 ; CHECK-LABEL: @floatcmp_ueq_fixed_one(
600 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
602 %res = fcmp ueq <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
606 define <vscale x 2 x i1> @floatcmp_ueq_scalable_one() {
607 ; CHECK-LABEL: @floatcmp_ueq_scalable_one(
608 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
610 %res = fcmp ueq <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
611 ret <vscale x 2 x i1> %res
614 define <2 x i1> @floatcmp_ugt_fixed_zero() {
615 ; CHECK-LABEL: @floatcmp_ugt_fixed_zero(
616 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
618 %res = fcmp ugt <2 x float> zeroinitializer, zeroinitializer
622 define <vscale x 2 x i1> @floatcmp_ugt_scalable_zero() {
623 ; CHECK-LABEL: @floatcmp_ugt_scalable_zero(
624 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
626 %res = fcmp ugt <vscale x 2 x float> zeroinitializer, zeroinitializer
627 ret <vscale x 2 x i1> %res
630 define <2 x i1> @floatcmp_ugt_fixed_one() {
631 ; CHECK-LABEL: @floatcmp_ugt_fixed_one(
632 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
634 %res = fcmp ugt <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
638 define <vscale x 2 x i1> @floatcmp_ugt_scalable_one() {
639 ; CHECK-LABEL: @floatcmp_ugt_scalable_one(
640 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
642 %res = fcmp ugt <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
643 ret <vscale x 2 x i1> %res
646 define <2 x i1> @floatcmp_uge_fixed_zero() {
647 ; CHECK-LABEL: @floatcmp_uge_fixed_zero(
648 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
650 %res = fcmp uge <2 x float> zeroinitializer, zeroinitializer
654 define <vscale x 2 x i1> @floatcmp_uge_scalable_zero() {
655 ; CHECK-LABEL: @floatcmp_uge_scalable_zero(
656 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
658 %res = fcmp uge <vscale x 2 x float> zeroinitializer, zeroinitializer
659 ret <vscale x 2 x i1> %res
662 define <2 x i1> @floatcmp_uge_fixed_one() {
663 ; CHECK-LABEL: @floatcmp_uge_fixed_one(
664 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
666 %res = fcmp uge <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
670 define <vscale x 2 x i1> @floatcmp_uge_scalable_one() {
671 ; CHECK-LABEL: @floatcmp_uge_scalable_one(
672 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
674 %res = fcmp uge <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
675 ret <vscale x 2 x i1> %res
678 define <2 x i1> @floatcmp_ult_fixed_zero() {
679 ; CHECK-LABEL: @floatcmp_ult_fixed_zero(
680 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
682 %res = fcmp ult <2 x float> zeroinitializer, zeroinitializer
686 define <vscale x 2 x i1> @floatcmp_ult_scalable_zero() {
687 ; CHECK-LABEL: @floatcmp_ult_scalable_zero(
688 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
690 %res = fcmp ult <vscale x 2 x float> zeroinitializer, zeroinitializer
691 ret <vscale x 2 x i1> %res
694 define <2 x i1> @floatcmp_ult_fixed_one() {
695 ; CHECK-LABEL: @floatcmp_ult_fixed_one(
696 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
698 %res = fcmp ult <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
702 define <vscale x 2 x i1> @floatcmp_ult_scalable_one() {
703 ; CHECK-LABEL: @floatcmp_ult_scalable_one(
704 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
706 %res = fcmp ult <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
707 ret <vscale x 2 x i1> %res
710 define <2 x i1> @floatcmp_ule_fixed_zero() {
711 ; CHECK-LABEL: @floatcmp_ule_fixed_zero(
712 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
714 %res = fcmp ule <2 x float> zeroinitializer, zeroinitializer
718 define <vscale x 2 x i1> @floatcmp_ule_scalable_zero() {
719 ; CHECK-LABEL: @floatcmp_ule_scalable_zero(
720 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
722 %res = fcmp ule <vscale x 2 x float> zeroinitializer, zeroinitializer
723 ret <vscale x 2 x i1> %res
726 define <2 x i1> @floatcmp_ule_fixed_one() {
727 ; CHECK-LABEL: @floatcmp_ule_fixed_one(
728 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
730 %res = fcmp ule <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
734 define <vscale x 2 x i1> @floatcmp_ule_scalable_one() {
735 ; CHECK-LABEL: @floatcmp_ule_scalable_one(
736 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
738 %res = fcmp ule <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
739 ret <vscale x 2 x i1> %res
742 define <2 x i1> @floatcmp_une_fixed_zero() {
743 ; CHECK-LABEL: @floatcmp_une_fixed_zero(
744 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
746 %res = fcmp une <2 x float> zeroinitializer, zeroinitializer
750 define <vscale x 2 x i1> @floatcmp_une_scalable_zero() {
751 ; CHECK-LABEL: @floatcmp_une_scalable_zero(
752 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
754 %res = fcmp une <vscale x 2 x float> zeroinitializer, zeroinitializer
755 ret <vscale x 2 x i1> %res
758 define <2 x i1> @floatcmp_une_fixed_one() {
759 ; CHECK-LABEL: @floatcmp_une_fixed_one(
760 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
762 %res = fcmp une <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
766 define <vscale x 2 x i1> @floatcmp_une_scalable_one() {
767 ; CHECK-LABEL: @floatcmp_une_scalable_one(
768 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
770 %res = fcmp une <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
771 ret <vscale x 2 x i1> %res
774 define <2 x i1> @floatcmp_uno_fixed_zero() {
775 ; CHECK-LABEL: @floatcmp_uno_fixed_zero(
776 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
778 %res = fcmp uno <2 x float> zeroinitializer, zeroinitializer
782 define <vscale x 2 x i1> @floatcmp_uno_scalable_zero() {
783 ; CHECK-LABEL: @floatcmp_uno_scalable_zero(
784 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
786 %res = fcmp uno <vscale x 2 x float> zeroinitializer, zeroinitializer
787 ret <vscale x 2 x i1> %res
790 define <2 x i1> @floatcmp_uno_fixed_one() {
791 ; CHECK-LABEL: @floatcmp_uno_fixed_one(
792 ; CHECK-NEXT: ret <2 x i1> zeroinitializer
794 %res = fcmp uno <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
798 define <vscale x 2 x i1> @floatcmp_uno_scalable_one() {
799 ; CHECK-LABEL: @floatcmp_uno_scalable_one(
800 ; CHECK-NEXT: ret <vscale x 2 x i1> zeroinitializer
802 %res = fcmp uno <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
803 ret <vscale x 2 x i1> %res
806 define <2 x i1> @floatcmp_true_fixed_zero() {
807 ; CHECK-LABEL: @floatcmp_true_fixed_zero(
808 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
810 %res = fcmp true <2 x float> zeroinitializer, zeroinitializer
814 define <vscale x 2 x i1> @floatcmp_true_scalable_zero() {
815 ; CHECK-LABEL: @floatcmp_true_scalable_zero(
816 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
818 %res = fcmp true <vscale x 2 x float> zeroinitializer, zeroinitializer
819 ret <vscale x 2 x i1> %res
822 define <2 x i1> @floatcmp_true_fixed_one() {
823 ; CHECK-LABEL: @floatcmp_true_fixed_one(
824 ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
826 %res = fcmp true <2 x float> <float 1.0, float 1.0>, <float 1.0, float 1.0>
830 define <vscale x 2 x i1> @floatcmp_true_scalable_one() {
831 ; CHECK-LABEL: @floatcmp_true_scalable_one(
832 ; CHECK-NEXT: ret <vscale x 2 x i1> shufflevector (<vscale x 2 x i1> insertelement (<vscale x 2 x i1> poison, i1 true, i64 0), <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer)
834 %res = fcmp true <vscale x 2 x float> shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer), shufflevector (<vscale x 2 x float> insertelement (<vscale x 2 x float> undef, float 1.0, i32 0), <vscale x 2 x float> undef, <vscale x 2 x i32> zeroinitializer)
835 ret <vscale x 2 x i1> %res