@@ -250,7 +250,8 @@ define i1 @olt_0_or_fabs_ueq_inf(half %x) {
250250; Negative test
251251define i1 @oeq_0_or_fabs_ult_inf (half %x ) {
252252; CHECK-LABEL: @oeq_0_or_fabs_ult_inf(
253- ; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 507)
253+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
254+ ; CHECK-NEXT: [[CLASS:%.*]] = fcmp une half [[TMP1]], 0xH7C00
254255; CHECK-NEXT: ret i1 [[CLASS]]
255256;
256257 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -623,7 +624,8 @@ define i1 @fneg_fabs_olt_neg_smallest_normal_or_inf(half %x) {
623624
624625define i1 @issubnormal_or_finite_olt (half %x ) {
625626; CHECK-LABEL: @issubnormal_or_finite_olt(
626- ; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 504)
627+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
628+ ; CHECK-NEXT: [[OR:%.*]] = fcmp one half [[TMP1]], 0xH7C00
627629; CHECK-NEXT: ret i1 [[OR]]
628630;
629631 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -724,7 +726,8 @@ define i1 @is_finite_or_ord(half %x) {
724726
725727define i1 @is_finite_or_uno (half %x ) {
726728; CHECK-LABEL: @is_finite_or_uno(
727- ; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 519)
729+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
730+ ; CHECK-NEXT: [[OR:%.*]] = fcmp ueq half [[TMP1]], 0xH7C00
728731; CHECK-NEXT: ret i1 [[OR]]
729732;
730733 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -736,7 +739,8 @@ define i1 @is_finite_or_uno(half %x) {
736739
737740define i1 @oeq_isinf_or_uno (half %x ) {
738741; CHECK-LABEL: @oeq_isinf_or_uno(
739- ; CHECK-NEXT: [[CLASS:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 519)
742+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
743+ ; CHECK-NEXT: [[CLASS:%.*]] = fcmp ueq half [[TMP1]], 0xH7C00
740744; CHECK-NEXT: ret i1 [[CLASS]]
741745;
742746 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -771,7 +775,8 @@ define i1 @oeq_isinf_and_uno(half %x) {
771775
772776define i1 @oeq_isinf_and_ord (half %x ) {
773777; CHECK-LABEL: @oeq_isinf_and_ord(
774- ; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516)
778+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
779+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[TMP1]], 0xH7C00
775780; CHECK-NEXT: ret i1 [[AND]]
776781;
777782 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -902,7 +907,8 @@ define i1 @isnormalinf_or_posinf(half %x) #0 {
902907; -> pinf|ninf
903908define i1 @isnormalinf_and_inf (half %x ) #0 {
904909; CHECK-LABEL: @isnormalinf_and_inf(
905- ; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516)
910+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
911+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[TMP1]], 0xH7C00
906912; CHECK-NEXT: ret i1 [[AND]]
907913;
908914 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -970,7 +976,8 @@ define i1 @not_isnormalinf_and_ord(half %x) #0 {
970976; -> ~ninf
971977define i1 @not_isnormalinf_or_inf (half %x ) #0 {
972978; CHECK-LABEL: @not_isnormalinf_or_inf(
973- ; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 507)
979+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
980+ ; CHECK-NEXT: [[OR:%.*]] = fcmp une half [[TMP1]], 0xH7C00
974981; CHECK-NEXT: ret i1 [[OR]]
975982;
976983 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -1287,7 +1294,8 @@ define i1 @olt_smallest_normal_and_une_inf_or_one_smallest_normal(half %x) #0 {
12871294
12881295define i1 @oge_fabs_eq_inf_and_ord (half %x ) #0 {
12891296; CHECK-LABEL: @oge_fabs_eq_inf_and_ord(
1290- ; CHECK-NEXT: [[AND:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 516)
1297+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
1298+ ; CHECK-NEXT: [[AND:%.*]] = fcmp oeq half [[TMP1]], 0xH7C00
12911299; CHECK-NEXT: ret i1 [[AND]]
12921300;
12931301 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -1310,7 +1318,8 @@ define i1 @oge_eq_inf_and_ord(half %x) #0 {
13101318
13111319define i1 @oge_fabs_eq_inf_or_uno (half %x ) #0 {
13121320; CHECK-LABEL: @oge_fabs_eq_inf_or_uno(
1313- ; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 519)
1321+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
1322+ ; CHECK-NEXT: [[OR:%.*]] = fcmp ueq half [[TMP1]], 0xH7C00
13141323; CHECK-NEXT: ret i1 [[OR]]
13151324;
13161325 %fabs = call half @llvm.fabs.f16 (half %x )
@@ -1357,7 +1366,8 @@ define i1 @ult_eq_inf_and_ord(half %x) #0 {
13571366
13581367define i1 @ult_fabs_eq_inf_or_uno (half %x ) #0 {
13591368; CHECK-LABEL: @ult_fabs_eq_inf_or_uno(
1360- ; CHECK-NEXT: [[OR:%.*]] = call i1 @llvm.is.fpclass.f16(half [[X:%.*]], i32 507)
1369+ ; CHECK-NEXT: [[TMP1:%.*]] = call half @llvm.fabs.f16(half [[X:%.*]])
1370+ ; CHECK-NEXT: [[OR:%.*]] = fcmp une half [[TMP1]], 0xH7C00
13611371; CHECK-NEXT: ret i1 [[OR]]
13621372;
13631373 %fabs = call half @llvm.fabs.f16 (half %x )
0 commit comments