1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2
- ; RUN: llc < %s -mtriple=i686-linux | FileCheck %s -check-prefixes=X86
2
+ ; RUN: llc < %s -mtriple=i686-linux | FileCheck %s -check-prefixes=X86,X86-SDAGISEL
3
3
; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s -check-prefixes=X64,X64-SDAGISEL
4
4
; RUN: llc < %s -mtriple=i686-linux -fast-isel -fast-isel-abort=1 | FileCheck %s -check-prefixes=X86-FASTISEL
5
5
; RUN: llc < %s -mtriple=x86_64-linux -fast-isel -fast-isel-abort=1 | FileCheck %s -check-prefixes=X64,X64-FASTISEL
6
- ; RUN: llc < %s -mtriple=i686-linux -global-isel -global-isel-abort=1 | FileCheck %s -check-prefixes=X86-GISEL
6
+ ; RUN: llc < %s -mtriple=i686-linux -global-isel -global-isel-abort=1 | FileCheck %s -check-prefixes=X86,X86 -GISEL
7
7
; RUN: llc < %s -mtriple=x86_64-linux -global-isel -global-isel-abort=1 | FileCheck %s -check-prefixes=X64,X64-GISEL
8
8
9
9
define i1 @isnone_f (float %x ) {
10
- ; X86-SDAGISEL- LABEL: isnone_f:
11
- ; X86-SDAGISEL : # %bb.0: # %entry
12
- ; X86-SDAGISEL- NEXT: xorl %eax, %eax
13
- ; X86-SDAGISEL- NEXT: retl
10
+ ; X86-LABEL: isnone_f:
11
+ ; X86: # %bb.0: # %entry
12
+ ; X86-NEXT: xorl %eax, %eax
13
+ ; X86-NEXT: retl
14
14
;
15
15
; X64-LABEL: isnone_f:
16
16
; X64: # %bb.0: # %entry
@@ -23,11 +23,6 @@ define i1 @isnone_f(float %x) {
23
23
; X86-FASTISEL-NEXT: fstp %st(0)
24
24
; X86-FASTISEL-NEXT: xorl %eax, %eax
25
25
; X86-FASTISEL-NEXT: retl
26
- ;
27
- ; X86-GISEL-LABEL: isnone_f:
28
- ; X86-GISEL: # %bb.0: # %entry
29
- ; X86-GISEL-NEXT: xorl %eax, %eax
30
- ; X86-GISEL-NEXT: retl
31
26
entry:
32
27
%0 = tail call i1 @llvm.is.fpclass.f32 (float %x , i32 0 )
33
28
ret i1 %0
@@ -50,27 +45,22 @@ define i1 @isany_f(float %x) nounwind {
50
45
; X86-FASTISEL-NEXT: fstp %st(0)
51
46
; X86-FASTISEL-NEXT: movb $1, %al
52
47
; X86-FASTISEL-NEXT: retl
53
- ;
54
- ; X86-GISEL-LABEL: isany_f:
55
- ; X86-GISEL: # %bb.0: # %entry
56
- ; X86-GISEL-NEXT: movb $1, %al
57
- ; X86-GISEL-NEXT: retl
58
48
entry:
59
49
%0 = tail call i1 @llvm.is.fpclass.f32 (float %x , i32 1023 )
60
50
ret i1 %0
61
51
}
62
52
63
53
define i1 @issignaling_f (float %x ) nounwind {
64
- ; X86-LABEL: issignaling_f:
65
- ; X86: # %bb.0:
66
- ; X86-NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
67
- ; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
68
- ; X86-NEXT: cmpl $2143289344, %eax # imm = 0x7FC00000
69
- ; X86-NEXT: setl %cl
70
- ; X86-NEXT: cmpl $2139095041, %eax # imm = 0x7F800001
71
- ; X86-NEXT: setge %al
72
- ; X86-NEXT: andb %cl, %al
73
- ; X86-NEXT: retl
54
+ ; X86-SDAGISEL- LABEL: issignaling_f:
55
+ ; X86-SDAGISEL : # %bb.0:
56
+ ; X86-SDAGISEL- NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
57
+ ; X86-SDAGISEL- NEXT: andl {{[0-9]+}}(%esp), %eax
58
+ ; X86-SDAGISEL- NEXT: cmpl $2143289344, %eax # imm = 0x7FC00000
59
+ ; X86-SDAGISEL- NEXT: setl %cl
60
+ ; X86-SDAGISEL- NEXT: cmpl $2139095041, %eax # imm = 0x7F800001
61
+ ; X86-SDAGISEL- NEXT: setge %al
62
+ ; X86-SDAGISEL- NEXT: andb %cl, %al
63
+ ; X86-SDAGISEL- NEXT: retl
74
64
;
75
65
; X64-SDAGISEL-LABEL: issignaling_f:
76
66
; X64-SDAGISEL: # %bb.0:
@@ -139,13 +129,13 @@ define i1 @issignaling_f(float %x) nounwind {
139
129
}
140
130
141
131
define i1 @isquiet_f (float %x ) nounwind {
142
- ; X86-LABEL: isquiet_f:
143
- ; X86: # %bb.0: # %entry
144
- ; X86-NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
145
- ; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
146
- ; X86-NEXT: cmpl $2143289344, %eax # imm = 0x7FC00000
147
- ; X86-NEXT: setge %al
148
- ; X86-NEXT: retl
132
+ ; X86-SDAGISEL- LABEL: isquiet_f:
133
+ ; X86-SDAGISEL : # %bb.0: # %entry
134
+ ; X86-SDAGISEL- NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
135
+ ; X86-SDAGISEL- NEXT: andl {{[0-9]+}}(%esp), %eax
136
+ ; X86-SDAGISEL- NEXT: cmpl $2143289344, %eax # imm = 0x7FC00000
137
+ ; X86-SDAGISEL- NEXT: setge %al
138
+ ; X86-SDAGISEL- NEXT: retl
149
139
;
150
140
; X64-SDAGISEL-LABEL: isquiet_f:
151
141
; X64-SDAGISEL: # %bb.0: # %entry
@@ -200,13 +190,13 @@ define i1 @issignaling_f(float %x) nounwind {
200
190
}
201
191
202
192
define i1 @not_isquiet_f (float %x ) nounwind {
203
- ; X86-LABEL: not_isquiet_f:
204
- ; X86: # %bb.0: # %entry
205
- ; X86-NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
206
- ; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
207
- ; X86-NEXT: cmpl $2143289344, %eax # imm = 0x7FC00000
208
- ; X86-NEXT: setl %al
209
- ; X86-NEXT: retl
193
+ ; X86-SDAGISEL- LABEL: not_isquiet_f:
194
+ ; X86-SDAGISEL : # %bb.0: # %entry
195
+ ; X86-SDAGISEL- NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
196
+ ; X86-SDAGISEL- NEXT: andl {{[0-9]+}}(%esp), %eax
197
+ ; X86-SDAGISEL- NEXT: cmpl $2143289344, %eax # imm = 0x7FC00000
198
+ ; X86-SDAGISEL- NEXT: setl %al
199
+ ; X86-SDAGISEL- NEXT: retl
210
200
;
211
201
; X64-SDAGISEL-LABEL: not_isquiet_f:
212
202
; X64-SDAGISEL: # %bb.0: # %entry
@@ -279,13 +269,13 @@ entry:
279
269
}
280
270
281
271
define i1 @isinf_f (float %x ) nounwind {
282
- ; X86-LABEL: isinf_f:
283
- ; X86: # %bb.0: # %entry
284
- ; X86-NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
285
- ; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
286
- ; X86-NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
287
- ; X86-NEXT: sete %al
288
- ; X86-NEXT: retl
272
+ ; X86-SDAGISEL- LABEL: isinf_f:
273
+ ; X86-SDAGISEL : # %bb.0: # %entry
274
+ ; X86-SDAGISEL- NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
275
+ ; X86-SDAGISEL- NEXT: andl {{[0-9]+}}(%esp), %eax
276
+ ; X86-SDAGISEL- NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
277
+ ; X86-SDAGISEL- NEXT: sete %al
278
+ ; X86-SDAGISEL- NEXT: retl
289
279
;
290
280
; X64-SDAGISEL-LABEL: isinf_f:
291
281
; X64-SDAGISEL: # %bb.0: # %entry
@@ -340,13 +330,13 @@ entry:
340
330
}
341
331
342
332
define i1 @not_isinf_f (float %x ) nounwind {
343
- ; X86-LABEL: not_isinf_f:
344
- ; X86: # %bb.0: # %entry
345
- ; X86-NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
346
- ; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
347
- ; X86-NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
348
- ; X86-NEXT: setne %al
349
- ; X86-NEXT: retl
333
+ ; X86-SDAGISEL- LABEL: not_isinf_f:
334
+ ; X86-SDAGISEL : # %bb.0: # %entry
335
+ ; X86-SDAGISEL- NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
336
+ ; X86-SDAGISEL- NEXT: andl {{[0-9]+}}(%esp), %eax
337
+ ; X86-SDAGISEL- NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
338
+ ; X86-SDAGISEL- NEXT: setne %al
339
+ ; X86-SDAGISEL- NEXT: retl
350
340
;
351
341
; X64-SDAGISEL-LABEL: not_isinf_f:
352
342
; X64-SDAGISEL: # %bb.0: # %entry
@@ -407,11 +397,11 @@ entry:
407
397
}
408
398
409
399
define i1 @is_plus_inf_f (float %x ) nounwind {
410
- ; X86-LABEL: is_plus_inf_f:
411
- ; X86: # %bb.0: # %entry
412
- ; X86-NEXT: cmpl $2139095040, {{[0-9]+}}(%esp) # imm = 0x7F800000
413
- ; X86-NEXT: sete %al
414
- ; X86-NEXT: retl
400
+ ; X86-SDAGISEL- LABEL: is_plus_inf_f:
401
+ ; X86-SDAGISEL : # %bb.0: # %entry
402
+ ; X86-SDAGISEL- NEXT: cmpl $2139095040, {{[0-9]+}}(%esp) # imm = 0x7F800000
403
+ ; X86-SDAGISEL- NEXT: sete %al
404
+ ; X86-SDAGISEL- NEXT: retl
415
405
;
416
406
; X64-SDAGISEL-LABEL: is_plus_inf_f:
417
407
; X64-SDAGISEL: # %bb.0: # %entry
@@ -459,11 +449,11 @@ entry:
459
449
}
460
450
461
451
define i1 @is_minus_inf_f (float %x ) nounwind {
462
- ; X86-LABEL: is_minus_inf_f:
463
- ; X86: # %bb.0: # %entry
464
- ; X86-NEXT: cmpl $-8388608, {{[0-9]+}}(%esp) # imm = 0xFF800000
465
- ; X86-NEXT: sete %al
466
- ; X86-NEXT: retl
452
+ ; X86-SDAGISEL- LABEL: is_minus_inf_f:
453
+ ; X86-SDAGISEL : # %bb.0: # %entry
454
+ ; X86-SDAGISEL- NEXT: cmpl $-8388608, {{[0-9]+}}(%esp) # imm = 0xFF800000
455
+ ; X86-SDAGISEL- NEXT: sete %al
456
+ ; X86-SDAGISEL- NEXT: retl
467
457
;
468
458
; X64-SDAGISEL-LABEL: is_minus_inf_f:
469
459
; X64-SDAGISEL: # %bb.0: # %entry
@@ -511,11 +501,11 @@ entry:
511
501
}
512
502
513
503
define i1 @not_is_minus_inf_f (float %x ) nounwind {
514
- ; X86-LABEL: not_is_minus_inf_f:
515
- ; X86: # %bb.0: # %entry
516
- ; X86-NEXT: cmpl $-8388608, {{[0-9]+}}(%esp) # imm = 0xFF800000
517
- ; X86-NEXT: setne %al
518
- ; X86-NEXT: retl
504
+ ; X86-SDAGISEL- LABEL: not_is_minus_inf_f:
505
+ ; X86-SDAGISEL : # %bb.0: # %entry
506
+ ; X86-SDAGISEL- NEXT: cmpl $-8388608, {{[0-9]+}}(%esp) # imm = 0xFF800000
507
+ ; X86-SDAGISEL- NEXT: setne %al
508
+ ; X86-SDAGISEL- NEXT: retl
519
509
;
520
510
; X64-SDAGISEL-LABEL: not_is_minus_inf_f:
521
511
; X64-SDAGISEL: # %bb.0: # %entry
@@ -544,8 +534,6 @@ define i1 @not_is_minus_inf_f(float %x) nounwind {
544
534
; X86-GISEL-LABEL: not_is_minus_inf_f:
545
535
; X86-GISEL: # %bb.0: # %entry
546
536
; X86-GISEL-NEXT: pushl %ebx
547
- ; X86-GISEL-NEXT: .cfi_def_cfa_offset 8
548
- ; X86-GISEL-NEXT: .cfi_offset %ebx, -8
549
537
; X86-GISEL-NEXT: movl {{[0-9]+}}(%esp), %eax
550
538
; X86-GISEL-NEXT: movl %eax, %ecx
551
539
; X86-GISEL-NEXT: andl $2147483647, %ecx # imm = 0x7FFFFFFF
@@ -560,7 +548,6 @@ define i1 @not_is_minus_inf_f(float %x) nounwind {
560
548
; X86-GISEL-NEXT: seta %al
561
549
; X86-GISEL-NEXT: orb %ah, %al
562
550
; X86-GISEL-NEXT: popl %ebx
563
- ; X86-GISEL-NEXT: .cfi_def_cfa_offset 4
564
551
; X86-GISEL-NEXT: retl
565
552
;
566
553
; X64-GISEL-LABEL: not_is_minus_inf_f:
@@ -585,13 +572,13 @@ entry:
585
572
}
586
573
587
574
define i1 @isfinite_f (float %x ) nounwind {
588
- ; X86-LABEL: isfinite_f:
589
- ; X86: # %bb.0: # %entry
590
- ; X86-NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
591
- ; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
592
- ; X86-NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
593
- ; X86-NEXT: setl %al
594
- ; X86-NEXT: retl
575
+ ; X86-SDAGISEL- LABEL: isfinite_f:
576
+ ; X86-SDAGISEL : # %bb.0: # %entry
577
+ ; X86-SDAGISEL- NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
578
+ ; X86-SDAGISEL- NEXT: andl {{[0-9]+}}(%esp), %eax
579
+ ; X86-SDAGISEL- NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
580
+ ; X86-SDAGISEL- NEXT: setl %al
581
+ ; X86-SDAGISEL- NEXT: retl
595
582
;
596
583
; X64-SDAGISEL-LABEL: isfinite_f:
597
584
; X64-SDAGISEL: # %bb.0: # %entry
@@ -646,13 +633,13 @@ entry:
646
633
}
647
634
648
635
define i1 @not_isfinite_f (float %x ) nounwind {
649
- ; X86-LABEL: not_isfinite_f:
650
- ; X86: # %bb.0: # %entry
651
- ; X86-NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
652
- ; X86-NEXT: andl {{[0-9]+}}(%esp), %eax
653
- ; X86-NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
654
- ; X86-NEXT: setge %al
655
- ; X86-NEXT: retl
636
+ ; X86-SDAGISEL- LABEL: not_isfinite_f:
637
+ ; X86-SDAGISEL : # %bb.0: # %entry
638
+ ; X86-SDAGISEL- NEXT: movl $2147483647, %eax # imm = 0x7FFFFFFF
639
+ ; X86-SDAGISEL- NEXT: andl {{[0-9]+}}(%esp), %eax
640
+ ; X86-SDAGISEL- NEXT: cmpl $2139095040, %eax # imm = 0x7F800000
641
+ ; X86-SDAGISEL- NEXT: setge %al
642
+ ; X86-SDAGISEL- NEXT: retl
656
643
;
657
644
; X64-SDAGISEL-LABEL: not_isfinite_f:
658
645
; X64-SDAGISEL: # %bb.0: # %entry
@@ -713,11 +700,11 @@ entry:
713
700
}
714
701
715
702
define i1 @is_plus_finite_f (float %x ) nounwind {
716
- ; X86-LABEL: is_plus_finite_f:
717
- ; X86: # %bb.0: # %entry
718
- ; X86-NEXT: cmpl $2139095040, {{[0-9]+}}(%esp) # imm = 0x7F800000
719
- ; X86-NEXT: setb %al
720
- ; X86-NEXT: retl
703
+ ; X86-SDAGISEL- LABEL: is_plus_finite_f:
704
+ ; X86-SDAGISEL : # %bb.0: # %entry
705
+ ; X86-SDAGISEL- NEXT: cmpl $2139095040, {{[0-9]+}}(%esp) # imm = 0x7F800000
706
+ ; X86-SDAGISEL- NEXT: setb %al
707
+ ; X86-SDAGISEL- NEXT: retl
721
708
;
722
709
; X64-SDAGISEL-LABEL: is_plus_finite_f:
723
710
; X64-SDAGISEL: # %bb.0: # %entry
@@ -781,11 +768,6 @@ define i1 @isnone_d(double %x) nounwind {
781
768
; X86-FASTISEL-NEXT: fstp %st(0)
782
769
; X86-FASTISEL-NEXT: xorl %eax, %eax
783
770
; X86-FASTISEL-NEXT: retl
784
- ;
785
- ; X86-GISEL-LABEL: isnone_d:
786
- ; X86-GISEL: # %bb.0: # %entry
787
- ; X86-GISEL-NEXT: xorl %eax, %eax
788
- ; X86-GISEL-NEXT: retl
789
771
entry:
790
772
%0 = tail call i1 @llvm.is.fpclass.f64 (double %x , i32 0 )
791
773
ret i1 %0
@@ -808,11 +790,6 @@ define i1 @isany_d(double %x) nounwind {
808
790
; X86-FASTISEL-NEXT: fstp %st(0)
809
791
; X86-FASTISEL-NEXT: movb $1, %al
810
792
; X86-FASTISEL-NEXT: retl
811
- ;
812
- ; X86-GISEL-LABEL: isany_d:
813
- ; X86-GISEL: # %bb.0: # %entry
814
- ; X86-GISEL-NEXT: movb $1, %al
815
- ; X86-GISEL-NEXT: retl
816
793
entry:
817
794
%0 = tail call i1 @llvm.is.fpclass.f64 (double %x , i32 1023 )
818
795
ret i1 %0
@@ -843,11 +820,6 @@ define i1 @isnone_f80(x86_fp80 %x) nounwind {
843
820
; X64-FASTISEL-NEXT: xorl %eax, %eax
844
821
; X64-FASTISEL-NEXT: retq
845
822
;
846
- ; X86-GISEL-LABEL: isnone_f80:
847
- ; X86-GISEL: # %bb.0: # %entry
848
- ; X86-GISEL-NEXT: xorl %eax, %eax
849
- ; X86-GISEL-NEXT: retl
850
- ;
851
823
; X64-GISEL-LABEL: isnone_f80:
852
824
; X64-GISEL: # %bb.0: # %entry
853
825
; X64-GISEL-NEXT: xorl %eax, %eax
@@ -882,11 +854,6 @@ define i1 @isany_f80(x86_fp80 %x) nounwind {
882
854
; X64-FASTISEL-NEXT: movb $1, %al
883
855
; X64-FASTISEL-NEXT: retq
884
856
;
885
- ; X86-GISEL-LABEL: isany_f80:
886
- ; X86-GISEL: # %bb.0: # %entry
887
- ; X86-GISEL-NEXT: movb $1, %al
888
- ; X86-GISEL-NEXT: retl
889
- ;
890
857
; X64-GISEL-LABEL: isany_f80:
891
858
; X64-GISEL: # %bb.0: # %entry
892
859
; X64-GISEL-NEXT: movb $1, %al
0 commit comments