[llvm] 1ce5f93 - InstSimplify: Add new baseline tests for fdiv

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 7 08:43:28 PST 2022


Author: Matt Arsenault
Date: 2022-11-07T08:43:22-08:00
New Revision: 1ce5f93d03c24ad780f099eccc2dc768e9e9e30f

URL: https://github.com/llvm/llvm-project/commit/1ce5f93d03c24ad780f099eccc2dc768e9e9e30f
DIFF: https://github.com/llvm/llvm-project/commit/1ce5f93d03c24ad780f099eccc2dc768e9e9e30f.diff

LOG: InstSimplify: Add new baseline tests for fdiv

Added: 
    

Modified: 
    llvm/test/Transforms/InstSimplify/fdiv.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/InstSimplify/fdiv.ll b/llvm/test/Transforms/InstSimplify/fdiv.ll
index 2b998b3e73234..2b583a04818fa 100644
--- a/llvm/test/Transforms/InstSimplify/fdiv.ll
+++ b/llvm/test/Transforms/InstSimplify/fdiv.ll
@@ -59,3 +59,102 @@ define <2 x i1> @pr6096() {
   %fcmp = fcmp ole <2 x float> %fdiv, zeroinitializer
   ret <2 x i1> %fcmp
 }
+
+
+; https://alive2.llvm.org/ce/z/JxX5in
+define float @fdiv_nnan_ninf_by_zero_f32(float %x) {
+; CHECK-LABEL: @fdiv_nnan_ninf_by_zero_f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan ninf float [[X:%.*]], 0.000000e+00
+; CHECK-NEXT:    ret float [[FDIV]]
+;
+  %fdiv = fdiv nnan ninf float %x, 0.0
+  ret float %fdiv
+}
+
+define float @fdiv_nnan_ninf_by_negzero_f32(float %x) {
+; CHECK-LABEL: @fdiv_nnan_ninf_by_negzero_f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan ninf float [[X:%.*]], -0.000000e+00
+; CHECK-NEXT:    ret float [[FDIV]]
+;
+  %fdiv = fdiv nnan ninf float %x, -0.0
+  ret float %fdiv
+}
+
+define float @fdiv_nnan_ninf_by_undef_f32(float %x) {
+; CHECK-LABEL: @fdiv_nnan_ninf_by_undef_f32(
+; CHECK-NEXT:    ret float poison
+;
+  %fdiv = fdiv nnan ninf float %x, undef
+  ret float %fdiv
+}
+
+define float @fdiv_nnan_ninf_by_poison_f32(float %x) {
+; CHECK-LABEL: @fdiv_nnan_ninf_by_poison_f32(
+; CHECK-NEXT:    ret float poison
+;
+  %fdiv = fdiv nnan ninf float %x, poison
+  ret float %fdiv
+}
+
+define <2 x float> @fdiv_nnan_ninf_by_zero_v2f32(<2 x float> %x) {
+; CHECK-LABEL: @fdiv_nnan_ninf_by_zero_v2f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan ninf <2 x float> [[X:%.*]], zeroinitializer
+; CHECK-NEXT:    ret <2 x float> [[FDIV]]
+;
+  %fdiv = fdiv nnan ninf <2 x float> %x, zeroinitializer
+  ret <2 x float> %fdiv
+}
+
+define <2 x float> @fdiv_nnan_ninf_by_undef_v2f32(<2 x float> %x) {
+; CHECK-LABEL: @fdiv_nnan_ninf_by_undef_v2f32(
+; CHECK-NEXT:    ret <2 x float> poison
+;
+  %fdiv = fdiv nnan ninf <2 x float> %x, undef
+  ret <2 x float> %fdiv
+}
+
+define <2 x float> @fdiv_nnan_ninf_by_zero_undef_v2f32(<2 x float> %x) {
+; CHECK-LABEL: @fdiv_nnan_ninf_by_zero_undef_v2f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan ninf <2 x float> [[X:%.*]], <float 0.000000e+00, float undef>
+; CHECK-NEXT:    ret <2 x float> [[FDIV]]
+;
+  %fdiv = fdiv nnan ninf <2 x float> %x, <float 0.0, float undef>
+  ret <2 x float> %fdiv
+}
+
+; https://alive2.llvm.org/ce/z/wRV28p
+define float @fdiv_nnan_nsz_ninf_by_zero_f32(float %x) {
+; CHECK-LABEL: @fdiv_nnan_nsz_ninf_by_zero_f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan nsz float [[X:%.*]], 0.000000e+00
+; CHECK-NEXT:    ret float [[FDIV]]
+;
+  %fdiv = fdiv nnan nsz float %x, 0.0
+  ret float %fdiv
+}
+
+define float @fdiv_nnan_nsz_ninf_by_negzero_f32(float %x) {
+; CHECK-LABEL: @fdiv_nnan_nsz_ninf_by_negzero_f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan nsz float [[X:%.*]], -0.000000e+00
+; CHECK-NEXT:    ret float [[FDIV]]
+;
+  %fdiv = fdiv nnan nsz float %x, -0.0
+  ret float %fdiv
+}
+
+define <2 x float> @fdiv_nnan_nsz_ninf_by_zero_v2f32(<2 x float> %x) {
+; CHECK-LABEL: @fdiv_nnan_nsz_ninf_by_zero_v2f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan nsz <2 x float> [[X:%.*]], zeroinitializer
+; CHECK-NEXT:    ret <2 x float> [[FDIV]]
+;
+  %fdiv = fdiv nnan nsz <2 x float> %x, zeroinitializer
+  ret <2 x float> %fdiv
+}
+
+define <2 x float> @fdiv_nnan_nsz_ninf_by_negzero_v2f32(<2 x float> %x) {
+; CHECK-LABEL: @fdiv_nnan_nsz_ninf_by_negzero_v2f32(
+; CHECK-NEXT:    [[FDIV:%.*]] = fdiv nnan nsz <2 x float> [[X:%.*]], <float -0.000000e+00, float -0.000000e+00>
+; CHECK-NEXT:    ret <2 x float> [[FDIV]]
+;
+  %fdiv = fdiv nnan nsz <2 x float> %x, <float -0.0, float -0.0>
+  ret <2 x float> %fdiv
+}


        


More information about the llvm-commits mailing list