16
16
17
17
define i1 @i32_cast_cmp_eq_int_0_sitofp_float (i32 %i ) {
18
18
; CHECK-LABEL: @i32_cast_cmp_eq_int_0_sitofp_float(
19
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to float
20
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
21
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[B]], 0
19
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
22
20
; CHECK-NEXT: ret i1 [[CMP]]
23
21
;
24
22
%f = sitofp i32 %i to float
@@ -42,9 +40,7 @@ define <3 x i1> @i32_cast_cmp_eq_int_0_sitofp_float_vec(<3 x i32> %i) {
42
40
43
41
define i1 @i32_cast_cmp_ne_int_0_sitofp_float (i32 %i ) {
44
42
; CHECK-LABEL: @i32_cast_cmp_ne_int_0_sitofp_float(
45
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to float
46
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
47
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[B]], 0
43
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
48
44
; CHECK-NEXT: ret i1 [[CMP]]
49
45
;
50
46
%f = sitofp i32 %i to float
@@ -92,9 +88,7 @@ define <3 x i1> @i32_cast_cmp_slt_int_0_sitofp_float_vec(<3 x i32> %i) {
92
88
93
89
define i1 @i32_cast_cmp_sgt_int_0_sitofp_float (i32 %i ) {
94
90
; CHECK-LABEL: @i32_cast_cmp_sgt_int_0_sitofp_float(
95
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to float
96
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
97
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[B]], 0
91
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[I:%.*]], 0
98
92
; CHECK-NEXT: ret i1 [[CMP]]
99
93
;
100
94
%f = sitofp i32 %i to float
@@ -118,9 +112,7 @@ define <3 x i1> @i32_cast_cmp_sgt_int_0_sitofp_float_vec(<3 x i32> %i) {
118
112
119
113
define i1 @i32_cast_cmp_slt_int_1_sitofp_float (i32 %i ) {
120
114
; CHECK-LABEL: @i32_cast_cmp_slt_int_1_sitofp_float(
121
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to float
122
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
123
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[B]], 1
115
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[I:%.*]], 1
124
116
; CHECK-NEXT: ret i1 [[CMP]]
125
117
;
126
118
%f = sitofp i32 %i to float
@@ -131,9 +123,7 @@ define i1 @i32_cast_cmp_slt_int_1_sitofp_float(i32 %i) {
131
123
132
124
define <3 x i1 > @i32_cast_cmp_slt_int_1_sitofp_float_vec (<3 x i32 > %i ) {
133
125
; CHECK-LABEL: @i32_cast_cmp_slt_int_1_sitofp_float_vec(
134
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i32> [[I:%.*]] to <3 x float>
135
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x float> [[F]] to <3 x i32>
136
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i32> [[B]], <i32 1, i32 undef, i32 1>
126
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i32> [[I:%.*]], <i32 1, i32 1, i32 1>
137
127
; CHECK-NEXT: ret <3 x i1> [[CMP]]
138
128
;
139
129
%f = sitofp <3 x i32 > %i to <3 x float >
@@ -166,9 +156,7 @@ define <3 x i1> @i32_cast_cmp_sgt_int_m1_sitofp_float_vec(<3 x i32> %i) {
166
156
167
157
define i1 @i32_cast_cmp_eq_int_0_sitofp_double (i32 %i ) {
168
158
; CHECK-LABEL: @i32_cast_cmp_eq_int_0_sitofp_double(
169
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to double
170
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
171
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[B]], 0
159
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
172
160
; CHECK-NEXT: ret i1 [[CMP]]
173
161
;
174
162
%f = sitofp i32 %i to double
@@ -192,9 +180,7 @@ define <3 x i1> @i32_cast_cmp_eq_int_0_sitofp_double_vec(<3 x i32> %i) {
192
180
193
181
define i1 @i32_cast_cmp_ne_int_0_sitofp_double (i32 %i ) {
194
182
; CHECK-LABEL: @i32_cast_cmp_ne_int_0_sitofp_double(
195
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to double
196
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
197
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i64 [[B]], 0
183
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
198
184
; CHECK-NEXT: ret i1 [[CMP]]
199
185
;
200
186
%f = sitofp i32 %i to double
@@ -242,9 +228,7 @@ define <3 x i1> @i32_cast_cmp_slt_int_0_sitofp_double_vec(<3 x i32> %i) {
242
228
243
229
define i1 @i32_cast_cmp_sgt_int_0_sitofp_double (i32 %i ) {
244
230
; CHECK-LABEL: @i32_cast_cmp_sgt_int_0_sitofp_double(
245
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to double
246
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
247
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[B]], 0
231
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[I:%.*]], 0
248
232
; CHECK-NEXT: ret i1 [[CMP]]
249
233
;
250
234
%f = sitofp i32 %i to double
@@ -268,9 +252,7 @@ define <3 x i1> @i32_cast_cmp_sgt_int_0_sitofp_double_vec(<3 x i32> %i) {
268
252
269
253
define i1 @i32_cast_cmp_slt_int_1_sitofp_double (i32 %i ) {
270
254
; CHECK-LABEL: @i32_cast_cmp_slt_int_1_sitofp_double(
271
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to double
272
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
273
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[B]], 1
255
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[I:%.*]], 1
274
256
; CHECK-NEXT: ret i1 [[CMP]]
275
257
;
276
258
%f = sitofp i32 %i to double
@@ -281,9 +263,7 @@ define i1 @i32_cast_cmp_slt_int_1_sitofp_double(i32 %i) {
281
263
282
264
define <3 x i1 > @i32_cast_cmp_slt_int_1_sitofp_double_vec (<3 x i32 > %i ) {
283
265
; CHECK-LABEL: @i32_cast_cmp_slt_int_1_sitofp_double_vec(
284
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i32> [[I:%.*]] to <3 x double>
285
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x double> [[F]] to <3 x i64>
286
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i64> [[B]], <i64 1, i64 undef, i64 1>
266
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i32> [[I:%.*]], <i32 1, i32 1, i32 1>
287
267
; CHECK-NEXT: ret <3 x i1> [[CMP]]
288
268
;
289
269
%f = sitofp <3 x i32 > %i to <3 x double >
@@ -316,9 +296,7 @@ define <3 x i1> @i32_cast_cmp_sgt_int_m1_sitofp_double_vec(<3 x i32> %i) {
316
296
317
297
define i1 @i32_cast_cmp_eq_int_0_sitofp_half (i32 %i ) {
318
298
; CHECK-LABEL: @i32_cast_cmp_eq_int_0_sitofp_half(
319
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to half
320
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
321
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[B]], 0
299
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[I:%.*]], 0
322
300
; CHECK-NEXT: ret i1 [[CMP]]
323
301
;
324
302
%f = sitofp i32 %i to half
@@ -342,9 +320,7 @@ define <3 x i1> @i32_cast_cmp_eq_int_0_sitofp_half_vec(<3 x i32> %i) {
342
320
343
321
define i1 @i32_cast_cmp_ne_int_0_sitofp_half (i32 %i ) {
344
322
; CHECK-LABEL: @i32_cast_cmp_ne_int_0_sitofp_half(
345
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to half
346
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
347
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i16 [[B]], 0
323
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[I:%.*]], 0
348
324
; CHECK-NEXT: ret i1 [[CMP]]
349
325
;
350
326
%f = sitofp i32 %i to half
@@ -392,9 +368,7 @@ define <3 x i1> @i32_cast_cmp_slt_int_0_sitofp_half_vec(<3 x i32> %i) {
392
368
393
369
define i1 @i32_cast_cmp_sgt_int_0_sitofp_half (i32 %i ) {
394
370
; CHECK-LABEL: @i32_cast_cmp_sgt_int_0_sitofp_half(
395
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to half
396
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
397
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i16 [[B]], 0
371
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[I:%.*]], 0
398
372
; CHECK-NEXT: ret i1 [[CMP]]
399
373
;
400
374
%f = sitofp i32 %i to half
@@ -418,9 +392,7 @@ define <3 x i1> @i32_cast_cmp_sgt_int_0_sitofp_half_vec(<3 x i32> %i) {
418
392
419
393
define i1 @i32_cast_cmp_slt_int_1_sitofp_half (i32 %i ) {
420
394
; CHECK-LABEL: @i32_cast_cmp_slt_int_1_sitofp_half(
421
- ; CHECK-NEXT: [[F:%.*]] = sitofp i32 [[I:%.*]] to half
422
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
423
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i16 [[B]], 1
395
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[I:%.*]], 1
424
396
; CHECK-NEXT: ret i1 [[CMP]]
425
397
;
426
398
%f = sitofp i32 %i to half
@@ -431,9 +403,7 @@ define i1 @i32_cast_cmp_slt_int_1_sitofp_half(i32 %i) {
431
403
432
404
define <3 x i1 > @i32_cast_cmp_slt_int_1_sitofp_half_vec (<3 x i32 > %i ) {
433
405
; CHECK-LABEL: @i32_cast_cmp_slt_int_1_sitofp_half_vec(
434
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i32> [[I:%.*]] to <3 x half>
435
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x half> [[F]] to <3 x i16>
436
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i16> [[B]], <i16 1, i16 undef, i16 1>
406
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i32> [[I:%.*]], <i32 1, i32 1, i32 1>
437
407
; CHECK-NEXT: ret <3 x i1> [[CMP]]
438
408
;
439
409
%f = sitofp <3 x i32 > %i to <3 x half >
@@ -466,9 +436,7 @@ define <3 x i1> @i32_cast_cmp_sgt_int_m1_sitofp_half_vec(<3 x i32> %i) {
466
436
467
437
define i1 @i64_cast_cmp_eq_int_0_sitofp_float (i64 %i ) {
468
438
; CHECK-LABEL: @i64_cast_cmp_eq_int_0_sitofp_float(
469
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to float
470
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
471
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[B]], 0
439
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[I:%.*]], 0
472
440
; CHECK-NEXT: ret i1 [[CMP]]
473
441
;
474
442
%f = sitofp i64 %i to float
@@ -492,9 +460,7 @@ define <3 x i1> @i64_cast_cmp_eq_int_0_sitofp_float_vec(<3 x i64> %i) {
492
460
493
461
define i1 @i64_cast_cmp_ne_int_0_sitofp_float (i64 %i ) {
494
462
; CHECK-LABEL: @i64_cast_cmp_ne_int_0_sitofp_float(
495
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to float
496
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
497
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[B]], 0
463
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i64 [[I:%.*]], 0
498
464
; CHECK-NEXT: ret i1 [[CMP]]
499
465
;
500
466
%f = sitofp i64 %i to float
@@ -542,9 +508,7 @@ define <3 x i1> @i64_cast_cmp_slt_int_0_sitofp_float_vec(<3 x i64> %i) {
542
508
543
509
define i1 @i64_cast_cmp_sgt_int_0_sitofp_float (i64 %i ) {
544
510
; CHECK-LABEL: @i64_cast_cmp_sgt_int_0_sitofp_float(
545
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to float
546
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
547
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[B]], 0
511
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[I:%.*]], 0
548
512
; CHECK-NEXT: ret i1 [[CMP]]
549
513
;
550
514
%f = sitofp i64 %i to float
@@ -568,9 +532,7 @@ define <3 x i1> @i64_cast_cmp_sgt_int_0_sitofp_float_vec(<3 x i64> %i) {
568
532
569
533
define i1 @i64_cast_cmp_slt_int_1_sitofp_float (i64 %i ) {
570
534
; CHECK-LABEL: @i64_cast_cmp_slt_int_1_sitofp_float(
571
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to float
572
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
573
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[B]], 1
535
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[I:%.*]], 1
574
536
; CHECK-NEXT: ret i1 [[CMP]]
575
537
;
576
538
%f = sitofp i64 %i to float
@@ -581,9 +543,7 @@ define i1 @i64_cast_cmp_slt_int_1_sitofp_float(i64 %i) {
581
543
582
544
define <3 x i1 > @i64_cast_cmp_slt_int_1_sitofp_float_vec (<3 x i64 > %i ) {
583
545
; CHECK-LABEL: @i64_cast_cmp_slt_int_1_sitofp_float_vec(
584
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i64> [[I:%.*]] to <3 x float>
585
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x float> [[F]] to <3 x i32>
586
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i32> [[B]], <i32 1, i32 undef, i32 1>
546
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i64> [[I:%.*]], <i64 1, i64 1, i64 1>
587
547
; CHECK-NEXT: ret <3 x i1> [[CMP]]
588
548
;
589
549
%f = sitofp <3 x i64 > %i to <3 x float >
@@ -616,9 +576,7 @@ define <3 x i1> @i64_cast_cmp_sgt_int_m1_sitofp_float_vec(<3 x i64> %i) {
616
576
617
577
define i1 @i64_cast_cmp_eq_int_0_sitofp_double (i64 %i ) {
618
578
; CHECK-LABEL: @i64_cast_cmp_eq_int_0_sitofp_double(
619
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to double
620
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
621
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[B]], 0
579
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[I:%.*]], 0
622
580
; CHECK-NEXT: ret i1 [[CMP]]
623
581
;
624
582
%f = sitofp i64 %i to double
@@ -642,9 +600,7 @@ define <3 x i1> @i64_cast_cmp_eq_int_0_sitofp_double_vec(<3 x i64> %i) {
642
600
643
601
define i1 @i64_cast_cmp_ne_int_0_sitofp_double (i64 %i ) {
644
602
; CHECK-LABEL: @i64_cast_cmp_ne_int_0_sitofp_double(
645
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to double
646
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
647
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i64 [[B]], 0
603
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i64 [[I:%.*]], 0
648
604
; CHECK-NEXT: ret i1 [[CMP]]
649
605
;
650
606
%f = sitofp i64 %i to double
@@ -692,9 +648,7 @@ define <3 x i1> @i64_cast_cmp_slt_int_0_sitofp_double_vec(<3 x i64> %i) {
692
648
693
649
define i1 @i64_cast_cmp_sgt_int_0_sitofp_double (i64 %i ) {
694
650
; CHECK-LABEL: @i64_cast_cmp_sgt_int_0_sitofp_double(
695
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to double
696
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
697
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[B]], 0
651
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[I:%.*]], 0
698
652
; CHECK-NEXT: ret i1 [[CMP]]
699
653
;
700
654
%f = sitofp i64 %i to double
@@ -718,9 +672,7 @@ define <3 x i1> @i64_cast_cmp_sgt_int_0_sitofp_double_vec(<3 x i64> %i) {
718
672
719
673
define i1 @i64_cast_cmp_slt_int_1_sitofp_double (i64 %i ) {
720
674
; CHECK-LABEL: @i64_cast_cmp_slt_int_1_sitofp_double(
721
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to double
722
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
723
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[B]], 1
675
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[I:%.*]], 1
724
676
; CHECK-NEXT: ret i1 [[CMP]]
725
677
;
726
678
%f = sitofp i64 %i to double
@@ -731,9 +683,7 @@ define i1 @i64_cast_cmp_slt_int_1_sitofp_double(i64 %i) {
731
683
732
684
define <3 x i1 > @i64_cast_cmp_slt_int_1_sitofp_double_vec (<3 x i64 > %i ) {
733
685
; CHECK-LABEL: @i64_cast_cmp_slt_int_1_sitofp_double_vec(
734
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i64> [[I:%.*]] to <3 x double>
735
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x double> [[F]] to <3 x i64>
736
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i64> [[B]], <i64 1, i64 undef, i64 1>
686
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i64> [[I:%.*]], <i64 1, i64 1, i64 1>
737
687
; CHECK-NEXT: ret <3 x i1> [[CMP]]
738
688
;
739
689
%f = sitofp <3 x i64 > %i to <3 x double >
@@ -766,9 +716,7 @@ define <3 x i1> @i64_cast_cmp_sgt_int_m1_sitofp_double_vec(<3 x i64> %i) {
766
716
767
717
define i1 @i64_cast_cmp_eq_int_0_sitofp_half (i64 %i ) {
768
718
; CHECK-LABEL: @i64_cast_cmp_eq_int_0_sitofp_half(
769
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to half
770
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
771
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[B]], 0
719
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[I:%.*]], 0
772
720
; CHECK-NEXT: ret i1 [[CMP]]
773
721
;
774
722
%f = sitofp i64 %i to half
@@ -792,9 +740,7 @@ define <3 x i1> @i64_cast_cmp_eq_int_0_sitofp_half_vec(<3 x i64> %i) {
792
740
793
741
define i1 @i64_cast_cmp_ne_int_0_sitofp_half (i64 %i ) {
794
742
; CHECK-LABEL: @i64_cast_cmp_ne_int_0_sitofp_half(
795
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to half
796
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
797
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i16 [[B]], 0
743
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i64 [[I:%.*]], 0
798
744
; CHECK-NEXT: ret i1 [[CMP]]
799
745
;
800
746
%f = sitofp i64 %i to half
@@ -842,9 +788,7 @@ define <3 x i1> @i64_cast_cmp_slt_int_0_sitofp_half_vec(<3 x i64> %i) {
842
788
843
789
define i1 @i64_cast_cmp_sgt_int_0_sitofp_half (i64 %i ) {
844
790
; CHECK-LABEL: @i64_cast_cmp_sgt_int_0_sitofp_half(
845
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to half
846
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
847
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i16 [[B]], 0
791
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[I:%.*]], 0
848
792
; CHECK-NEXT: ret i1 [[CMP]]
849
793
;
850
794
%f = sitofp i64 %i to half
@@ -868,9 +812,7 @@ define <3 x i1> @i64_cast_cmp_sgt_int_0_sitofp_half_vec(<3 x i64> %i) {
868
812
869
813
define i1 @i64_cast_cmp_slt_int_1_sitofp_half (i64 %i ) {
870
814
; CHECK-LABEL: @i64_cast_cmp_slt_int_1_sitofp_half(
871
- ; CHECK-NEXT: [[F:%.*]] = sitofp i64 [[I:%.*]] to half
872
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
873
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i16 [[B]], 1
815
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[I:%.*]], 1
874
816
; CHECK-NEXT: ret i1 [[CMP]]
875
817
;
876
818
%f = sitofp i64 %i to half
@@ -881,9 +823,7 @@ define i1 @i64_cast_cmp_slt_int_1_sitofp_half(i64 %i) {
881
823
882
824
define <3 x i1 > @i64_cast_cmp_slt_int_1_sitofp_half_vec (<3 x i64 > %i ) {
883
825
; CHECK-LABEL: @i64_cast_cmp_slt_int_1_sitofp_half_vec(
884
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i64> [[I:%.*]] to <3 x half>
885
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x half> [[F]] to <3 x i16>
886
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i16> [[B]], <i16 1, i16 undef, i16 1>
826
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i64> [[I:%.*]], <i64 1, i64 1, i64 1>
887
827
; CHECK-NEXT: ret <3 x i1> [[CMP]]
888
828
;
889
829
%f = sitofp <3 x i64 > %i to <3 x half >
@@ -916,9 +856,7 @@ define <3 x i1> @i64_cast_cmp_sgt_int_m1_sitofp_half_vec(<3 x i64> %i) {
916
856
917
857
define i1 @i16_cast_cmp_eq_int_0_sitofp_float (i16 %i ) {
918
858
; CHECK-LABEL: @i16_cast_cmp_eq_int_0_sitofp_float(
919
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to float
920
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
921
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i32 [[B]], 0
859
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[I:%.*]], 0
922
860
; CHECK-NEXT: ret i1 [[CMP]]
923
861
;
924
862
%f = sitofp i16 %i to float
@@ -942,9 +880,7 @@ define <3 x i1> @i16_cast_cmp_eq_int_0_sitofp_float_vec(<3 x i16> %i) {
942
880
943
881
define i1 @i16_cast_cmp_ne_int_0_sitofp_float (i16 %i ) {
944
882
; CHECK-LABEL: @i16_cast_cmp_ne_int_0_sitofp_float(
945
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to float
946
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
947
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i32 [[B]], 0
883
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i16 [[I:%.*]], 0
948
884
; CHECK-NEXT: ret i1 [[CMP]]
949
885
;
950
886
%f = sitofp i16 %i to float
@@ -992,9 +928,7 @@ define <3 x i1> @i16_cast_cmp_slt_int_0_sitofp_float_vec(<3 x i16> %i) {
992
928
993
929
define i1 @i16_cast_cmp_sgt_int_0_sitofp_float (i16 %i ) {
994
930
; CHECK-LABEL: @i16_cast_cmp_sgt_int_0_sitofp_float(
995
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to float
996
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
997
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i32 [[B]], 0
931
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i16 [[I:%.*]], 0
998
932
; CHECK-NEXT: ret i1 [[CMP]]
999
933
;
1000
934
%f = sitofp i16 %i to float
@@ -1018,9 +952,7 @@ define <3 x i1> @i16_cast_cmp_sgt_int_0_sitofp_float_vec(<3 x i16> %i) {
1018
952
1019
953
define i1 @i16_cast_cmp_slt_int_1_sitofp_float (i16 %i ) {
1020
954
; CHECK-LABEL: @i16_cast_cmp_slt_int_1_sitofp_float(
1021
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to float
1022
- ; CHECK-NEXT: [[B:%.*]] = bitcast float [[F]] to i32
1023
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i32 [[B]], 1
955
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i16 [[I:%.*]], 1
1024
956
; CHECK-NEXT: ret i1 [[CMP]]
1025
957
;
1026
958
%f = sitofp i16 %i to float
@@ -1031,9 +963,7 @@ define i1 @i16_cast_cmp_slt_int_1_sitofp_float(i16 %i) {
1031
963
1032
964
define <3 x i1 > @i16_cast_cmp_slt_int_1_sitofp_float_vec (<3 x i16 > %i ) {
1033
965
; CHECK-LABEL: @i16_cast_cmp_slt_int_1_sitofp_float_vec(
1034
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i16> [[I:%.*]] to <3 x float>
1035
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x float> [[F]] to <3 x i32>
1036
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i32> [[B]], <i32 1, i32 undef, i32 1>
966
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i16> [[I:%.*]], <i16 1, i16 1, i16 1>
1037
967
; CHECK-NEXT: ret <3 x i1> [[CMP]]
1038
968
;
1039
969
%f = sitofp <3 x i16 > %i to <3 x float >
@@ -1066,9 +996,7 @@ define <3 x i1> @i16_cast_cmp_sgt_int_m1_sitofp_float_vec(<3 x i16> %i) {
1066
996
1067
997
define i1 @i16_cast_cmp_eq_int_0_sitofp_double (i16 %i ) {
1068
998
; CHECK-LABEL: @i16_cast_cmp_eq_int_0_sitofp_double(
1069
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to double
1070
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
1071
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[B]], 0
999
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[I:%.*]], 0
1072
1000
; CHECK-NEXT: ret i1 [[CMP]]
1073
1001
;
1074
1002
%f = sitofp i16 %i to double
@@ -1092,9 +1020,7 @@ define <3 x i1> @i16_cast_cmp_eq_int_0_sitofp_double_vec(<3 x i16> %i) {
1092
1020
1093
1021
define i1 @i16_cast_cmp_ne_int_0_sitofp_double (i16 %i ) {
1094
1022
; CHECK-LABEL: @i16_cast_cmp_ne_int_0_sitofp_double(
1095
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to double
1096
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
1097
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i64 [[B]], 0
1023
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i16 [[I:%.*]], 0
1098
1024
; CHECK-NEXT: ret i1 [[CMP]]
1099
1025
;
1100
1026
%f = sitofp i16 %i to double
@@ -1142,9 +1068,7 @@ define <3 x i1> @i16_cast_cmp_slt_int_0_sitofp_double_vec(<3 x i16> %i) {
1142
1068
1143
1069
define i1 @i16_cast_cmp_sgt_int_0_sitofp_double (i16 %i ) {
1144
1070
; CHECK-LABEL: @i16_cast_cmp_sgt_int_0_sitofp_double(
1145
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to double
1146
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
1147
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i64 [[B]], 0
1071
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i16 [[I:%.*]], 0
1148
1072
; CHECK-NEXT: ret i1 [[CMP]]
1149
1073
;
1150
1074
%f = sitofp i16 %i to double
@@ -1168,9 +1092,7 @@ define <3 x i1> @i16_cast_cmp_sgt_int_0_sitofp_double_vec(<3 x i16> %i) {
1168
1092
1169
1093
define i1 @i16_cast_cmp_slt_int_1_sitofp_double (i16 %i ) {
1170
1094
; CHECK-LABEL: @i16_cast_cmp_slt_int_1_sitofp_double(
1171
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to double
1172
- ; CHECK-NEXT: [[B:%.*]] = bitcast double [[F]] to i64
1173
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i64 [[B]], 1
1095
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i16 [[I:%.*]], 1
1174
1096
; CHECK-NEXT: ret i1 [[CMP]]
1175
1097
;
1176
1098
%f = sitofp i16 %i to double
@@ -1181,9 +1103,7 @@ define i1 @i16_cast_cmp_slt_int_1_sitofp_double(i16 %i) {
1181
1103
1182
1104
define <3 x i1 > @i16_cast_cmp_slt_int_1_sitofp_double_vec (<3 x i16 > %i ) {
1183
1105
; CHECK-LABEL: @i16_cast_cmp_slt_int_1_sitofp_double_vec(
1184
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i16> [[I:%.*]] to <3 x double>
1185
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x double> [[F]] to <3 x i64>
1186
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i64> [[B]], <i64 1, i64 undef, i64 1>
1106
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i16> [[I:%.*]], <i16 1, i16 1, i16 1>
1187
1107
; CHECK-NEXT: ret <3 x i1> [[CMP]]
1188
1108
;
1189
1109
%f = sitofp <3 x i16 > %i to <3 x double >
@@ -1216,9 +1136,7 @@ define <3 x i1> @i16_cast_cmp_sgt_int_m1_sitofp_double_vec(<3 x i16> %i) {
1216
1136
1217
1137
define i1 @i16_cast_cmp_eq_int_0_sitofp_half (i16 %i ) {
1218
1138
; CHECK-LABEL: @i16_cast_cmp_eq_int_0_sitofp_half(
1219
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to half
1220
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
1221
- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[B]], 0
1139
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i16 [[I:%.*]], 0
1222
1140
; CHECK-NEXT: ret i1 [[CMP]]
1223
1141
;
1224
1142
%f = sitofp i16 %i to half
@@ -1242,9 +1160,7 @@ define <3 x i1> @i16_cast_cmp_eq_int_0_sitofp_half_vec(<3 x i16> %i) {
1242
1160
1243
1161
define i1 @i16_cast_cmp_ne_int_0_sitofp_half (i16 %i ) {
1244
1162
; CHECK-LABEL: @i16_cast_cmp_ne_int_0_sitofp_half(
1245
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to half
1246
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
1247
- ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i16 [[B]], 0
1163
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp ne i16 [[I:%.*]], 0
1248
1164
; CHECK-NEXT: ret i1 [[CMP]]
1249
1165
;
1250
1166
%f = sitofp i16 %i to half
@@ -1292,9 +1208,7 @@ define <3 x i1> @i16_cast_cmp_slt_int_0_sitofp_half_vec(<3 x i16> %i) {
1292
1208
1293
1209
define i1 @i16_cast_cmp_sgt_int_0_sitofp_half (i16 %i ) {
1294
1210
; CHECK-LABEL: @i16_cast_cmp_sgt_int_0_sitofp_half(
1295
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to half
1296
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
1297
- ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i16 [[B]], 0
1211
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp sgt i16 [[I:%.*]], 0
1298
1212
; CHECK-NEXT: ret i1 [[CMP]]
1299
1213
;
1300
1214
%f = sitofp i16 %i to half
@@ -1318,9 +1232,7 @@ define <3 x i1> @i16_cast_cmp_sgt_int_0_sitofp_half_vec(<3 x i16> %i) {
1318
1232
1319
1233
define i1 @i16_cast_cmp_slt_int_1_sitofp_half (i16 %i ) {
1320
1234
; CHECK-LABEL: @i16_cast_cmp_slt_int_1_sitofp_half(
1321
- ; CHECK-NEXT: [[F:%.*]] = sitofp i16 [[I:%.*]] to half
1322
- ; CHECK-NEXT: [[B:%.*]] = bitcast half [[F]] to i16
1323
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i16 [[B]], 1
1235
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt i16 [[I:%.*]], 1
1324
1236
; CHECK-NEXT: ret i1 [[CMP]]
1325
1237
;
1326
1238
%f = sitofp i16 %i to half
@@ -1331,9 +1243,7 @@ define i1 @i16_cast_cmp_slt_int_1_sitofp_half(i16 %i) {
1331
1243
1332
1244
define <3 x i1 > @i16_cast_cmp_slt_int_1_sitofp_half_vec (<3 x i16 > %i ) {
1333
1245
; CHECK-LABEL: @i16_cast_cmp_slt_int_1_sitofp_half_vec(
1334
- ; CHECK-NEXT: [[F:%.*]] = sitofp <3 x i16> [[I:%.*]] to <3 x half>
1335
- ; CHECK-NEXT: [[B:%.*]] = bitcast <3 x half> [[F]] to <3 x i16>
1336
- ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i16> [[B]], <i16 1, i16 undef, i16 1>
1246
+ ; CHECK-NEXT: [[CMP:%.*]] = icmp slt <3 x i16> [[I:%.*]], <i16 1, i16 1, i16 1>
1337
1247
; CHECK-NEXT: ret <3 x i1> [[CMP]]
1338
1248
;
1339
1249
%f = sitofp <3 x i16 > %i to <3 x half >
0 commit comments