@@ -4614,7 +4614,7 @@ define i1 @intersect_fmf_4(double %a, double %b) {
4614
4614
define i1 @clang_builtin_isnormal_inf_check (half %x ) {
4615
4615
; CHECK-LABEL: @clang_builtin_isnormal_inf_check(
4616
4616
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4617
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4617
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4618
4618
; CHECK-NEXT: ret i1 [[AND]]
4619
4619
;
4620
4620
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4627,7 +4627,7 @@ define i1 @clang_builtin_isnormal_inf_check(half %x) {
4627
4627
define <2 x i1 > @clang_builtin_isnormal_inf_check_vector (<2 x half > %x ) {
4628
4628
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_vector(
4629
4629
; CHECK-NEXT: [[FABS_X:%.*]] = call <2 x half> @llvm.fabs.v2f16(<2 x half> [[X:%.*]])
4630
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge <2 x half> [[FABS_X]], <half 0xH7C00, half 0xH7C00>
4630
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq <2 x half> [[FABS_X]], <half 0xH7C00, half 0xH7C00>
4631
4631
; CHECK-NEXT: ret <2 x i1> [[AND]]
4632
4632
;
4633
4633
%fabs.x = call <2 x half > @llvm.fabs.v2f16 (<2 x half > %x )
@@ -4640,7 +4640,7 @@ define <2 x i1> @clang_builtin_isnormal_inf_check_vector(<2 x half> %x) {
4640
4640
define i1 @clang_builtin_isnormal_inf_check_commute (half %x ) {
4641
4641
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute(
4642
4642
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4643
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4643
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4644
4644
; CHECK-NEXT: ret i1 [[AND]]
4645
4645
;
4646
4646
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4653,7 +4653,7 @@ define i1 @clang_builtin_isnormal_inf_check_commute(half %x) {
4653
4653
define i1 @clang_builtin_isnormal_inf_check_commute_nsz_rhs (half %x ) {
4654
4654
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute_nsz_rhs(
4655
4655
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4656
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4656
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4657
4657
; CHECK-NEXT: ret i1 [[AND]]
4658
4658
;
4659
4659
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4666,7 +4666,7 @@ define i1 @clang_builtin_isnormal_inf_check_commute_nsz_rhs(half %x) {
4666
4666
define i1 @clang_builtin_isnormal_inf_check_commute_nsz_lhs (half %x ) {
4667
4667
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute_nsz_lhs(
4668
4668
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4669
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4669
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4670
4670
; CHECK-NEXT: ret i1 [[AND]]
4671
4671
;
4672
4672
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4690,7 +4690,7 @@ define i1 @clang_builtin_isnormal_inf_check_commute_nofabs_ueq(half %x) {
4690
4690
define i1 @clang_builtin_isnormal_inf_check_commute_nsz (half %x ) {
4691
4691
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_commute_nsz(
4692
4692
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4693
- ; CHECK-NEXT: [[AND:%.*]] = fcmp nsz oge half [[FABS_X]], 0xH7C00
4693
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp nsz oeq half [[FABS_X]], 0xH7C00
4694
4694
; CHECK-NEXT: ret i1 [[AND]]
4695
4695
;
4696
4696
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4716,7 +4716,7 @@ define i1 @clang_builtin_isnormal_inf_check_ugt(half %x) {
4716
4716
define i1 @clang_builtin_isnormal_inf_check_ult (half %x ) {
4717
4717
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_ult(
4718
4718
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4719
- ; CHECK-NEXT: [[AND:%.*]] = fcmp olt half [[FABS_X]], 0xH7C00
4719
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp one half [[FABS_X]], 0xH7C00
4720
4720
; CHECK-NEXT: ret i1 [[AND]]
4721
4721
;
4722
4722
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4820,8 +4820,8 @@ define i1 @clang_builtin_isnormal_inf_check_olt(half %x) {
4820
4820
4821
4821
define i1 @clang_builtin_isnormal_inf_check_ole (half %x ) {
4822
4822
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_ole(
4823
- ; CHECK-NEXT: [[AND :%.*]] = fcmp ord half [[X:%.*]], 0xH0000
4824
- ; CHECK-NEXT: ret i1 [[AND ]]
4823
+ ; CHECK-NEXT: [[CMP :%.*]] = fcmp ord half [[X:%.*]], 0xH0000
4824
+ ; CHECK-NEXT: ret i1 [[CMP ]]
4825
4825
;
4826
4826
%fabs.x = call half @llvm.fabs.f16 (half %x )
4827
4827
%ord = fcmp ord half %fabs.x , 0 .0
@@ -4846,7 +4846,7 @@ define i1 @clang_builtin_isnormal_inf_check_oeq(half %x) {
4846
4846
define i1 @clang_builtin_isnormal_inf_check_unnececcary_fabs (half %x ) {
4847
4847
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_unnececcary_fabs(
4848
4848
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4849
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4849
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4850
4850
; CHECK-NEXT: ret i1 [[AND]]
4851
4851
;
4852
4852
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4871,7 +4871,7 @@ define i1 @clang_builtin_isnormal_inf_check_not_ord(half %x) {
4871
4871
4872
4872
define i1 @clang_builtin_isnormal_inf_check_missing_fabs (half %x ) {
4873
4873
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_missing_fabs(
4874
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00
4874
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[X:%.*]], 0xH7C00
4875
4875
; CHECK-NEXT: ret i1 [[AND]]
4876
4876
;
4877
4877
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4912,7 +4912,7 @@ define i1 @clang_builtin_isnormal_inf_check_not_inf(half %x) {
4912
4912
define i1 @clang_builtin_isnormal_inf_check_nsz_lhs (half %x ) {
4913
4913
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_nsz_lhs(
4914
4914
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4915
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4915
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4916
4916
; CHECK-NEXT: ret i1 [[AND]]
4917
4917
;
4918
4918
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4925,7 +4925,7 @@ define i1 @clang_builtin_isnormal_inf_check_nsz_lhs(half %x) {
4925
4925
define i1 @clang_builtin_isnormal_inf_check_nsz_rhs (half %x ) {
4926
4926
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_nsz_rhs(
4927
4927
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4928
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4928
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4929
4929
; CHECK-NEXT: ret i1 [[AND]]
4930
4930
;
4931
4931
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4938,7 +4938,7 @@ define i1 @clang_builtin_isnormal_inf_check_nsz_rhs(half %x) {
4938
4938
define i1 @clang_builtin_isnormal_inf_check_nsz (half %x ) {
4939
4939
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_nsz(
4940
4940
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4941
- ; CHECK-NEXT: [[AND:%.*]] = fcmp nsz oge half [[FABS_X]], 0xH7C00
4941
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp nsz oeq half [[FABS_X]], 0xH7C00
4942
4942
; CHECK-NEXT: ret i1 [[AND]]
4943
4943
;
4944
4944
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4950,7 +4950,7 @@ define i1 @clang_builtin_isnormal_inf_check_nsz(half %x) {
4950
4950
4951
4951
define i1 @clang_builtin_isnormal_inf_check_fneg (half %x ) {
4952
4952
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_fneg(
4953
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[X:%.*]], 0xH7C00
4953
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[X:%.*]], 0xH7C00
4954
4954
; CHECK-NEXT: ret i1 [[AND]]
4955
4955
;
4956
4956
%fneg.x = fneg half %x
@@ -4963,7 +4963,7 @@ define i1 @clang_builtin_isnormal_inf_check_fneg(half %x) {
4963
4963
define i1 @clang_builtin_isnormal_inf_check_copysign (half %x , half %y ) {
4964
4964
; CHECK-LABEL: @clang_builtin_isnormal_inf_check_copysign(
4965
4965
; CHECK-NEXT: [[COPYSIGN_X:%.*]] = call half @llvm.copysign.f16(half [[X:%.*]], half [[Y:%.*]])
4966
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[COPYSIGN_X]], 0xH7C00
4966
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[COPYSIGN_X]], 0xH7C00
4967
4967
; CHECK-NEXT: ret i1 [[AND]]
4968
4968
;
4969
4969
%copysign.x = call half @llvm.copysign.f16 (half %x , half %y )
@@ -4976,7 +4976,7 @@ define i1 @clang_builtin_isnormal_inf_check_copysign(half %x, half %y) {
4976
4976
define i1 @isnormal_logical_select_0 (half %x ) {
4977
4977
; CHECK-LABEL: @isnormal_logical_select_0(
4978
4978
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4979
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4979
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4980
4980
; CHECK-NEXT: ret i1 [[AND]]
4981
4981
;
4982
4982
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -4989,7 +4989,7 @@ define i1 @isnormal_logical_select_0(half %x) {
4989
4989
define i1 @isnormal_logical_select_1 (half %x ) {
4990
4990
; CHECK-LABEL: @isnormal_logical_select_1(
4991
4991
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
4992
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
4992
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
4993
4993
; CHECK-NEXT: ret i1 [[AND]]
4994
4994
;
4995
4995
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -5002,7 +5002,7 @@ define i1 @isnormal_logical_select_1(half %x) {
5002
5002
define i1 @isnormal_logical_select_0_fmf0 (half %x ) {
5003
5003
; CHECK-LABEL: @isnormal_logical_select_0_fmf0(
5004
5004
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
5005
- ; CHECK-NEXT: [[AND:%.*]] = fcmp reassoc nsz arcp oge half [[FABS_X]], 0xH7C00
5005
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp reassoc nsz arcp oeq half [[FABS_X]], 0xH7C00
5006
5006
; CHECK-NEXT: ret i1 [[AND]]
5007
5007
;
5008
5008
%fabs.x = call half @llvm.fabs.f16 (half %x )
@@ -5015,7 +5015,7 @@ define i1 @isnormal_logical_select_0_fmf0(half %x) {
5015
5015
define i1 @isnormal_logical_select_0_fmf1 (half %x ) {
5016
5016
; CHECK-LABEL: @isnormal_logical_select_0_fmf1(
5017
5017
; CHECK-NEXT: [[FABS_X:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
5018
- ; CHECK-NEXT: [[AND:%.*]] = fcmp oge half [[FABS_X]], 0xH7C00
5018
+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[FABS_X]], 0xH7C00
5019
5019
; CHECK-NEXT: ret i1 [[AND]]
5020
5020
;
5021
5021
%fabs.x = call half @llvm.fabs.f16 (half %x )
0 commit comments