@@ -682,8 +682,7 @@ define nofpclass(inf) float @ret_nofpclass_inf__copysign_negative_select_pinf_rh
682682define nofpclass(pinf pnorm psub pzero) float @ret_nofpclass_nopositives_copysign (float %x , float %unknown.sign ) {
683683; CHECK-LABEL: define nofpclass(pinf pzero psub pnorm) float @ret_nofpclass_nopositives_copysign
684684; CHECK-SAME: (float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
685- ; CHECK-NEXT: [[TMP1:%.*]] = call float @llvm.fabs.f32(float [[X]])
686- ; CHECK-NEXT: [[COPYSIGN:%.*]] = fneg float [[TMP1]]
685+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.copysign.f32(float [[X]], float [[UNKNOWN_SIGN]])
687686; CHECK-NEXT: ret float [[COPYSIGN]]
688687;
689688 %copysign = call float @llvm.copysign.f32 (float %x , float %unknown.sign )
@@ -694,8 +693,7 @@ define nofpclass(pinf pnorm psub pzero) float @ret_nofpclass_nopositives_copysig
694693define nofpclass(pinf pnorm psub pzero) float @ret_nofpclass_nopositives_copysign_nnan_flag (float %x , float %unknown.sign ) {
695694; CHECK-LABEL: define nofpclass(pinf pzero psub pnorm) float @ret_nofpclass_nopositives_copysign_nnan_flag
696695; CHECK-SAME: (float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
697- ; CHECK-NEXT: [[TMP1:%.*]] = call nnan float @llvm.fabs.f32(float [[X]])
698- ; CHECK-NEXT: [[COPYSIGN:%.*]] = fneg nnan float [[TMP1]]
696+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call nnan float @llvm.copysign.f32(float [[X]], float [[UNKNOWN_SIGN]])
699697; CHECK-NEXT: ret float [[COPYSIGN]]
700698;
701699 %copysign = call nnan float @llvm.copysign.f32 (float %x , float %unknown.sign )
@@ -718,7 +716,7 @@ define nofpclass(nan pinf pnorm psub pzero) float @ret_nofpclass_nopositives_non
718716define nofpclass(ninf nnorm nsub nzero) float @ret_nofpclass_nonegatives_copysign (float %x , float %unknown.sign ) {
719717; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_nofpclass_nonegatives_copysign
720718; CHECK-SAME: (float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
721- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.fabs .f32(float [[X]])
719+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.copysign .f32(float [[X]], float [[UNKNOWN_SIGN ]])
722720; CHECK-NEXT: ret float [[COPYSIGN]]
723721;
724722 %copysign = call float @llvm.copysign.f32 (float %x , float %unknown.sign )
@@ -729,7 +727,7 @@ define nofpclass(ninf nnorm nsub nzero) float @ret_nofpclass_nonegatives_copysig
729727define nofpclass(ninf nnorm nsub nzero) float @ret_nofpclass_nonegatives_copysign_nnan_flag (float %x , float %unknown.sign ) {
730728; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_nofpclass_nonegatives_copysign_nnan_flag
731729; CHECK-SAME: (float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
732- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call nnan float @llvm.fabs .f32(float [[X]])
730+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call nnan float @llvm.copysign .f32(float [[X]], float [[UNKNOWN_SIGN ]])
733731; CHECK-NEXT: ret float [[COPYSIGN]]
734732;
735733 %copysign = call nnan float @llvm.copysign.f32 (float %x , float %unknown.sign )
@@ -763,7 +761,7 @@ define nofpclass(pinf pnorm psub pzero) float @ret_nofpclass_nopositives__copysi
763761define nofpclass(inf nnorm nsub nzero) float @ret_nofpclass_no_negatives_noinf__copysign_unknown_select_pinf_rhs (i1 %cond , float %x , float %unknown.sign ) {
764762; CHECK-LABEL: define nofpclass(inf nzero nsub nnorm) float @ret_nofpclass_no_negatives_noinf__copysign_unknown_select_pinf_rhs
765763; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
766- ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.fabs .f32(float [[X]])
764+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.copysign .f32(float [[X]], float [[UNKNOWN_SIGN ]])
767765; CHECK-NEXT: ret float [[COPYSIGN]]
768766;
769767 %select = select i1 %cond , float %x , float 0x7FF0000000000000
@@ -775,8 +773,7 @@ define nofpclass(inf nnorm nsub nzero) float @ret_nofpclass_no_negatives_noinf__
775773define nofpclass(inf pnorm psub pzero) float @ret_nofpclass_no_positives_noinf__copysign_unknown_select_pinf_rhs (i1 %cond , float %x , float %unknown.sign ) {
776774; CHECK-LABEL: define nofpclass(inf pzero psub pnorm) float @ret_nofpclass_no_positives_noinf__copysign_unknown_select_pinf_rhs
777775; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
778- ; CHECK-NEXT: [[TMP1:%.*]] = call float @llvm.fabs.f32(float [[X]])
779- ; CHECK-NEXT: [[COPYSIGN:%.*]] = fneg float [[TMP1]]
776+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.copysign.f32(float [[X]], float [[UNKNOWN_SIGN]])
780777; CHECK-NEXT: ret float [[COPYSIGN]]
781778;
782779 %select = select i1 %cond , float %x , float 0x7FF0000000000000
@@ -788,8 +785,8 @@ define nofpclass(inf pnorm psub pzero) float @ret_nofpclass_no_positives_noinf__
788785define nofpclass(ninf nnorm nsub nzero) float @ret_nofpclass_no_negatives__copysign_unknown_select_pinf_rhs (i1 %cond , float %x , float %unknown.sign ) {
789786; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_nofpclass_no_negatives__copysign_unknown_select_pinf_rhs
790787; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
791- ; CHECK-NEXT: [[TMP1 :%.*]] = call float @llvm.fabs.f32( float [[X]])
792- ; CHECK-NEXT: [[COPYSIGN:%.*]] = select i1 [[COND ]], float [[TMP1]], float 0x7FF0000000000000
788+ ; CHECK-NEXT: [[SELECT :%.*]] = select i1 [[COND]], float [[X]], float 0x7FF0000000000000
789+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.copysign.f32(float [[SELECT ]], float [[UNKNOWN_SIGN]])
793790; CHECK-NEXT: ret float [[COPYSIGN]]
794791;
795792 %select = select i1 %cond , float %x , float 0x7FF0000000000000
@@ -801,9 +798,8 @@ define nofpclass(ninf nnorm nsub nzero) float @ret_nofpclass_no_negatives__copys
801798define nofpclass(pinf pnorm psub pzero) float @ret_nofpclass_no_positives__copysign_unknown_select_pinf_rhs (i1 %cond , float %x , float %unknown.sign ) {
802799; CHECK-LABEL: define nofpclass(pinf pzero psub pnorm) float @ret_nofpclass_no_positives__copysign_unknown_select_pinf_rhs
803800; CHECK-SAME: (i1 [[COND:%.*]], float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
804- ; CHECK-NEXT: [[TMP1:%.*]] = call float @llvm.fabs.f32(float [[X]])
805- ; CHECK-NEXT: [[DOTNEG:%.*]] = fneg float [[TMP1]]
806- ; CHECK-NEXT: [[COPYSIGN:%.*]] = select i1 [[COND]], float [[DOTNEG]], float 0xFFF0000000000000
801+ ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[COND]], float [[X]], float 0x7FF0000000000000
802+ ; CHECK-NEXT: [[COPYSIGN:%.*]] = call float @llvm.copysign.f32(float [[SELECT]], float [[UNKNOWN_SIGN]])
807803; CHECK-NEXT: ret float [[COPYSIGN]]
808804;
809805 %select = select i1 %cond , float %x , float 0x7FF0000000000000
0 commit comments