Skip to content

Commit 81c9a92

Browse files
committed
Add more tests. NFC.
1 parent 6c3097d commit 81c9a92

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

llvm/test/Transforms/InstCombine/simplify-demanded-fpclass.ll

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ define nofpclass(inf) float @ret_nofpclass_inf__copysign_negative_select_pinf_rh
678678
ret float %copysign
679679
}
680680

681-
; can fold to fneg(fabs(x))
681+
; can't fold to fneg(fabs(x))
682682
define 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:%.*]]) {
@@ -702,6 +702,18 @@ define nofpclass(pinf pnorm psub pzero) float @ret_nofpclass_nopositives_copysig
702702
}
703703

704704
; can fold to fneg(fabs(x))
705+
define nofpclass(pnorm psub pzero) float @ret_nofpclass_nopositive_finites_copysign_nnan_ninf_flag(float %x, float %unknown.sign) {
706+
; CHECK-LABEL: define nofpclass(pzero psub pnorm) float @ret_nofpclass_nopositive_finites_copysign_nnan_ninf_flag
707+
; CHECK-SAME: (float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
708+
; CHECK-NEXT: [[TMP1:%.*]] = call nnan ninf float @llvm.fabs.f32(float [[X]])
709+
; CHECK-NEXT: [[COPYSIGN:%.*]] = fneg nnan ninf float [[TMP1]]
710+
; CHECK-NEXT: ret float [[COPYSIGN]]
711+
;
712+
%copysign = call nnan ninf float @llvm.copysign.f32(float %x, float %unknown.sign)
713+
ret float %copysign
714+
}
715+
716+
; can't fold to fneg(fabs(x))
705717
define nofpclass(nan pinf pnorm psub pzero) float @ret_nofpclass_nopositives_nonan_copysign(float %x, float %unknown.sign) {
706718
; CHECK-LABEL: define nofpclass(nan pinf pzero psub pnorm) float @ret_nofpclass_nopositives_nonan_copysign
707719
; CHECK-SAME: (float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {
@@ -713,7 +725,7 @@ define nofpclass(nan pinf pnorm psub pzero) float @ret_nofpclass_nopositives_non
713725
ret float %copysign
714726
}
715727

716-
; can fold to fabs(x)
728+
; can't fold to fabs(x)
717729
define nofpclass(ninf nnorm nsub nzero) float @ret_nofpclass_nonegatives_copysign(float %x, float %unknown.sign) {
718730
; CHECK-LABEL: define nofpclass(ninf nzero nsub nnorm) float @ret_nofpclass_nonegatives_copysign
719731
; CHECK-SAME: (float [[X:%.*]], float [[UNKNOWN_SIGN:%.*]]) {

0 commit comments

Comments
 (0)