Lines Matching refs:fcmp

12 ; CHECK-NEXT:    [[CMP:%.*]] = fcmp nnan ogt float [[X:%.*]], [[Y:%.*]]
17 %cmp = fcmp nnan ogt double %ext1, %ext2
23 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ogt float [[A:%.*]], 1.000000e+00
27 %cmp = fcmp ninf ogt double %ext, 1.000000e+00
33 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan ole <2 x half> [[A:%.*]], <half 0xH5140, half 0xH5140>
37 %cmp = fcmp nnan ole <2 x double> %ext, <double 42.0, double 42.0>
44 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double [[EXT]], 0x3FF0000000000001
48 %cmp = fcmp ogt double %ext, 0x3FF0000000000001 ; more precision than float.
55 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt double [[EXT]], 0x36A0000000000000
59 %cmp = fcmp ogt double %ext, 0x36A0000000000000 ; denormal in float.
65 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[X:%.*]], -1.000000e+00
69 %cmp = fcmp ogt float %neg, 1.0
75 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[X:%.*]], -1.000000e+00
79 %cmp = fcmp ogt float %neg, 1.0
85 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <2 x float> [[X:%.*]], <float -1.000000e+00, float -2.00000…
89 %cmp = fcmp ogt <2 x float> %neg, <float 1.0, float 2.0>
95 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <2 x float> [[X:%.*]], <float -1.000000e+00, float -2.00000…
99 %cmp = fcmp ogt <2 x float> %neg, <float 1.0, float 2.0>
105 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt <2 x float> [[X:%.*]], <float -1.000000e+00, float -2.00000…
109 %cmp = fcmp ogt <2 x float> %neg, <float 1.0, float 2.0>
113 ; The new fcmp should have the same FMF as the original.
117 ; CHECK-NEXT: [[R:%.*]] = fcmp fast oeq float [[X:%.*]], -4.200000e+01
121 %r = fcmp fast oeq float %n, 42.0
127 ; CHECK-NEXT: [[R:%.*]] = fcmp fast oeq float [[X:%.*]], -4.200000e+01
131 %r = fcmp fast oeq float %n, 42.0
135 ; The new fcmp should have the same FMF as the original, vector edition.
139 ; CHECK-NEXT: [[R:%.*]] = fcmp reassoc nnan ule <2 x float> [[X:%.*]], <float -4.200000e+01, flo…
143 %r = fcmp nnan reassoc uge <2 x float> %n, <float 42.0, float -19.0>
149 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan ogt float [[X:%.*]], [[Y:%.*]]
154 %cmp = fcmp nnan olt float %neg1, %neg2
160 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan ogt float [[X:%.*]], [[Y:%.*]]
165 %cmp = fcmp nnan olt float %neg1, %neg2
171 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan ogt float [[X:%.*]], [[Y:%.*]]
176 %cmp = fcmp nnan olt float %neg1, %neg2
182 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan ogt float [[X:%.*]], [[Y:%.*]]
187 %cmp = fcmp nnan olt float %neg1, %neg2
193 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ogt <2 x float> [[X:%.*]], [[Y:%.*]]
198 %cmp = fcmp ninf olt <2 x float> %neg1, %neg2
204 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ogt <2 x float> [[X:%.*]], [[Y:%.*]]
209 %cmp = fcmp ninf olt <2 x float> %neg1, %neg2
215 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ogt <2 x float> [[X:%.*]], [[Y:%.*]]
220 %cmp = fcmp ninf olt <2 x float> %neg1, %neg2
226 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ogt <2 x float> [[X:%.*]], [[Y:%.*]]
231 %cmp = fcmp ninf olt <2 x float> %neg1, %neg2
237 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <2 x float> [[X:%.*]], [[Y:%.*]]
242 %cmp = fcmp olt <2 x float> %neg1, %neg2
248 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <2 x float> [[X:%.*]], [[Y:%.*]]
253 %cmp = fcmp olt <2 x float> %neg1, %neg2
259 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt <2 x float> [[X:%.*]], [[Y:%.*]]
264 %cmp = fcmp olt <2 x float> %neg1, %neg2
270 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[X:%.*]], 0.000000e+00
274 %cmp = fcmp ogt ppc_fp128 %ext, 0xM00000000000000000000000000000000
280 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[X:%.*]], 0.000000e+00
285 %cmp = fcmp olt double %conv, 0.000000e+00
297 %cmp = fcmp uge double %call, 0.0
306 %cmp = fcmp olt half %call, 0.0
312 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf oeq <2 x float> [[A:%.*]], zeroinitializer
316 %cmp = fcmp ninf ole <2 x float> %call, zeroinitializer
322 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf arcp ueq <2 x float> [[A:%.*]], zeroinitializer
326 %cmp = fcmp ninf arcp ule <2 x float> %call, zeroinitializer
332 ; CHECK-NEXT: [[CMP:%.*]] = fcmp reassoc one double [[A:%.*]], 0.000000e+00
336 %cmp = fcmp reassoc ogt double %call, 0.0
342 ; CHECK-NEXT: [[CMP:%.*]] = fcmp reassoc ninf une double [[A:%.*]], 0.000000e+00
346 %cmp = fcmp ninf reassoc ugt double %call, 0.0
352 ; CHECK-NEXT: [[CMP:%.*]] = fcmp afn ord double [[A:%.*]], 0.000000e+00
356 %cmp = fcmp afn oge double %call, 0.0
362 ; CHECK-NEXT: [[CMP:%.*]] = fcmp reassoc arcp uno double [[A:%.*]], 0.000000e+00
366 %cmp = fcmp reassoc arcp ult double %call, 0.0
375 %cmp = fcmp nnan reassoc arcp ult <2 x float> %call, zeroinitializer
381 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf une half [[A:%.*]], 0xH0000
385 %cmp = fcmp ninf une half %call, 0.0
391 ; CHECK-NEXT: [[CMP:%.*]] = fcmp reassoc ninf oeq double [[A:%.*]], 0.000000e+00
395 %cmp = fcmp ninf reassoc oeq double %call, 0.0
401 ; CHECK-NEXT: [[CMP:%.*]] = fcmp fast one double [[A:%.*]], 0.000000e+00
405 %cmp = fcmp fast one double %call, 0.0
411 ; CHECK-NEXT: [[CMP:%.*]] = fcmp arcp ueq <2 x float> [[A:%.*]], zeroinitializer
415 %cmp = fcmp arcp ueq <2 x float> %call, zeroinitializer
421 ; CHECK-NEXT: [[CMP:%.*]] = fcmp arcp ord <2 x float> [[A:%.*]], zeroinitializer
425 %cmp = fcmp arcp ord <2 x float> %call, zeroinitializer
431 ; CHECK-NEXT: [[CMP:%.*]] = fcmp arcp uno <2 x float> [[A:%.*]], zeroinitializer
435 %cmp = fcmp arcp uno <2 x float> %call, zeroinitializer
443 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ueq double [[CALL]], 0.000000e+00
448 %cmp = fcmp ueq double %call, 0.000000e+00
453 ; Can fold fcmp with undef on one side by choosing NaN for the undef
458 %cmp = fcmp ueq float %a, undef
462 ; Can fold fcmp with undef on one side by choosing NaN for the undef
467 %cmp = fcmp oeq float %a, undef
472 ; Can fold fcmp with undef on both side
473 ; fcmp u_pred undef, undef -> true
474 ; fcmp o_pred undef, undef -> false
481 %cmp = fcmp ueq float undef, undef
489 %cmp = fcmp oeq float undef, undef
496 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf olt float [[X:%.*]], 0.000000e+00
500 %cmp = fcmp ninf olt float %div, 0.0
507 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf oge float [[X:%.*]], 0.000000e+00
511 %cmp = fcmp ninf ole float %div, 0.0
518 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ogt float [[X:%.*]], 0.000000e+00
522 %cmp = fcmp ninf ogt float %div, 0.0
529 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ole float [[X:%.*]], 0.000000e+00
533 %cmp = fcmp ninf oge float %div, 0.0
541 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[DIV]], 0.000000e+00
545 %cmp = fcmp ogt float %div, 0.0
553 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ogt float [[DIV]], 0.000000e+00
557 %cmp = fcmp ninf ogt float %div, 0.0
565 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ugt float [[DIV]], 0.000000e+00
569 %cmp = fcmp ninf ugt float %div, 0.0
576 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf olt <2 x float> [[X:%.*]], zeroinitializer
580 %cmp = fcmp ninf ogt <2 x float> %div, <float -0.0, float -0.0>
591 %r = fcmp olt double %s, 0.0
598 ; CHECK-NEXT: [[R:%.*]] = fcmp ult double [[S]], 0.000000e+00
602 %r = fcmp ult double %s, 0.0
609 ; CHECK-NEXT: [[R:%.*]] = fcmp ole double [[S]], 0.000000e+00
613 %r = fcmp ole double %s, 0.0
620 ; CHECK-NEXT: [[R:%.*]] = fcmp ule double [[S]], 0.000000e+00
624 %r = fcmp ule double %s, 0.0
637 %r = fcmp olt <2 x double> %s, <double -0.0, double 0.0>
646 ; CHECK-NEXT: [[R:%.*]] = fcmp ogt double [[S]], 0.000000e+00
650 %r = fcmp ogt double %s, 0.0
657 ; CHECK-NEXT: [[R:%.*]] = fcmp ugt double [[S]], 0.000000e+00
661 %r = fcmp ugt double %s, 0.0
668 ; CHECK-NEXT: [[R:%.*]] = fcmp oge double [[S]], 0.000000e+00
672 %r = fcmp oge double %s, 0.0
679 ; CHECK-NEXT: [[R:%.*]] = fcmp uge double [[S]], 0.000000e+00
683 %r = fcmp uge double %s, 0.0
693 ; CHECK-NEXT: [[R:%.*]] = fcmp olt double [[S]], 0.000000e+00
698 %r = fcmp olt double %s, 0.0
707 ; CHECK-NEXT: [[R:%.*]] = fcmp ogt double [[S]], 1.000000e+00
711 %r = fcmp ogt double %s, 1.0
720 ; CHECK-NEXT: [[R:%.*]] = fcmp ogt double [[S]], 0.000000e+00
724 %r = fcmp ogt double %s, 0.0
733 ; CHECK-NEXT: [[R:%.*]] = fcmp ogt double [[S]], 0.000000e+00
737 %r = fcmp ogt double %s, 0.0
746 %r = fcmp oeq <2 x double> %e, <double 0.1, double 0.1>
754 ; CHECK-NEXT: [[R:%.*]] = fcmp ord float [[X]], 0.000000e+00
759 %r = fcmp one double %e, 0.1
765 ; CHECK-NEXT: [[R:%.*]] = fcmp uno half [[X:%.*]], 0xH0000
769 %r = fcmp ueq double %e, 65536.0
778 %r = fcmp une float %e, 2049.0
785 ; CHECK-NEXT: [[R:%.*]] = fcmp ogt <2 x double> [[E]], <double 1.000000e-01, double 1.000000e-01>
789 %r = fcmp ogt <2 x double> %e, <double 0.1, double 0.1>
797 ; CHECK-NEXT: [[R:%.*]] = fcmp oge double [[E]], 1.000000e-01
802 %r = fcmp oge double %e, 0.1
809 ; CHECK-NEXT: [[R:%.*]] = fcmp olt double [[E]], 6.553600e+04
813 %r = fcmp olt double %e, 65536.0
820 ; CHECK-NEXT: [[R:%.*]] = fcmp ole float [[E]], 2.049000e+03
824 %r = fcmp ole float %e, 2049.0
831 ; CHECK-NEXT: [[R:%.*]] = fcmp ugt <2 x double> [[E]], <double 1.000000e-01, double 1.000000e-01>
835 %r = fcmp ugt <2 x double> %e, <double 0.1, double 0.1>
843 ; CHECK-NEXT: [[R:%.*]] = fcmp uge double [[E]], 1.000000e-01
848 %r = fcmp uge double %e, 0.1
855 ; CHECK-NEXT: [[R:%.*]] = fcmp ult double [[E]], 6.553600e+04
859 %r = fcmp ult double %e, 65536.0
866 ; CHECK-NEXT: [[R:%.*]] = fcmp ule float [[E]], 2.049000e+03
870 %r = fcmp ule float %e, 2049.0
876 ; CHECK-NEXT: [[R:%.*]] = fcmp ord half [[X:%.*]], 0xH0000
880 %r = fcmp ord double %e, 65536.0
886 ; CHECK-NEXT: [[R:%.*]] = fcmp uno half [[X:%.*]], 0xH0000
890 %r = fcmp uno float %e, 2049.0
896 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[A:%.*]], 0.000000e+00
900 %cmp = fcmp oeq float %fneg, %a
906 ; CHECK-NEXT: [[CMP:%.*]] = fcmp fast olt half [[A:%.*]], 0xH0000
910 %cmp = fcmp fast ogt half %fneg, %a
916 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ole <2 x float> [[A:%.*]], zeroinitializer
920 %cmp = fcmp oge <2 x float> %fneg, %a
928 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ogt float [[A]], 0.000000e+00
933 %cmp = fcmp olt float %fneg, %a
939 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nsz oge float [[A:%.*]], 0.000000e+00
943 %cmp = fcmp nsz ole float %fneg, %a
949 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan one float [[A:%.*]], 0.000000e+00
953 %cmp = fcmp nnan one float %fneg, %a
959 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ord float [[A:%.*]], 0.000000e+00
963 %cmp = fcmp ninf ord float %fneg, %a
969 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[A:%.*]], 0.000000e+00
973 %cmp = fcmp uno float %fneg, %a
979 ; CHECK-NEXT: [[CMP:%.*]] = fcmp fast ueq half [[A:%.*]], 0xH0000
983 %cmp = fcmp fast ueq half %fneg, %a
989 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ult <2 x float> [[A:%.*]], zeroinitializer
993 %cmp = fcmp ugt <2 x float> %fneg, %a
1001 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ule float [[A]], 0.000000e+00
1006 %cmp = fcmp uge float %fneg, %a
1012 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nsz ugt float [[A:%.*]], 0.000000e+00
1016 %cmp = fcmp nsz ult float %fneg, %a
1022 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan uge float [[A:%.*]], 0.000000e+00
1026 %cmp = fcmp nnan ule float %fneg, %a
1032 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf une float [[A:%.*]], 0.000000e+00
1036 %cmp = fcmp ninf une float %fneg, %a
1043 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oeq float [[A]], 0.000000e+00
1048 %cmp = fcmp oeq float %a, %fneg
1055 ; CHECK-NEXT: [[CMP:%.*]] = fcmp fast ogt half [[A]], 0xH0000
1060 %cmp = fcmp fast ogt half %a, %fneg
1067 ; CHECK-NEXT: [[CMP:%.*]] = fcmp oge <2 x float> [[A]], zeroinitializer
1072 %cmp = fcmp oge <2 x float> %a, %fneg
1081 ; CHECK-NEXT: [[CMP:%.*]] = fcmp olt float [[A]], 0.000000e+00
1087 %cmp = fcmp olt float %a, %fneg
1094 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nsz ole float [[A]], 0.000000e+00
1099 %cmp = fcmp nsz ole float %a, %fneg
1106 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan one float [[A]], 0.000000e+00
1111 %cmp = fcmp nnan one float %a, %fneg
1118 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf ord float [[A]], 0.000000e+00
1123 %cmp = fcmp ninf ord float %a, %fneg
1130 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uno float [[A]], 0.000000e+00
1135 %cmp = fcmp uno float %a, %fneg
1142 ; CHECK-NEXT: [[CMP:%.*]] = fcmp fast ueq half [[A]], 0xH0000
1147 %cmp = fcmp fast ueq half %a, %fneg
1154 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ugt <2 x float> [[A]], zeroinitializer
1159 %cmp = fcmp ugt <2 x float> %a, %fneg
1168 ; CHECK-NEXT: [[CMP:%.*]] = fcmp uge float [[A]], 0.000000e+00
1174 %cmp = fcmp uge float %a, %fneg
1181 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nsz ult float [[A]], 0.000000e+00
1186 %cmp = fcmp nsz ult float %a, %fneg
1193 ; CHECK-NEXT: [[CMP:%.*]] = fcmp nnan ule float [[A]], 0.000000e+00
1198 %cmp = fcmp nnan ule float %a, %fneg
1205 ; CHECK-NEXT: [[CMP:%.*]] = fcmp ninf une float [[A]], 0.000000e+00
1210 %cmp = fcmp ninf une float %a, %fneg