[llvm] Fdim constant fold (PR #109235)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 19 21:53:15 PDT 2024


================
@@ -0,0 +1,37 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
+; RUN: opt < %s -passes=instcombine -S | FileCheck %s
+
+define double @fdim_double() {
+; CHECK-LABEL: define double @fdim_double() {
+; CHECK-NEXT:    ret double 2.500000e+00
+;
+  %dim = call double @fdim (double 10.5, double 8.0)
+  ret double %dim
+}
+
+define double @fdim_double1() {
+; CHECK-LABEL: define double @fdim_double1() {
+; CHECK-NEXT:    ret double 0.000000e+00
+;
+  %dim = call double @fdim (double 7.0, double 8.0)
+  ret double %dim
+}
+
+define float @fdim_float() {
+; CHECK-LABEL: define float @fdim_float() {
+; CHECK-NEXT:    ret float 2.500000e+00
+;
+  %dim = call float @fdimf (float 10.5, float 8.0)
+  ret float %dim
+}
+
+define float @fdim_float1() {
+; CHECK-LABEL: define float @fdim_float1() {
+; CHECK-NEXT:    ret float 0.000000e+00
+;
+  %dim = call float @fdimf (float 7.0, float 8.0)
+  ret float %dim
+}
+
----------------
arsenm wrote:

Needs tests for all the edge cases. Can you also test poison/undef arguments in each position 

https://github.com/llvm/llvm-project/pull/109235


More information about the llvm-commits mailing list