harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor V Chebykin (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-2873) [drlvm][jit][opt] frem and drem instructions return incorrect result when divisor is Float/Double MIN_VALUE
Date Wed, 13 Jun 2007 09:26:26 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-2873?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Igor V Chebykin updated HARMONY-2873:
-------------------------------------

    Attachment: H2873.patch.txt

The fix for the jira.
1. Usage of fmodf replaced by usage of fmod 
2. Usage of fmod replaced by new function "double jitrino_ieee754_fmod_double(double,double)"
     defined in new files Algorithms.h, Algorithms.cpp


> [drlvm][jit][opt] frem and drem instructions return incorrect result when divisor is
Float/Double MIN_VALUE
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2873
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2873
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>         Environment: Linux and Windows
>            Reporter: Vera Petrashkova
>            Assignee: Alexey Varlamov
>         Attachments: H2873.patch.txt
>
>
> The following test demonstrates that frem and drem instructions return incorrect result
when divisor
> is correspondently Float or Double MIN_VALUE. The result equals to dividend.
> This issue is reproducible only on Jitrino/OPT.
> On  interpreter and on Jitrino/JET result is equal to 0.0.
> ---------------------test.java---------------
> public class test {
>     public static void main(String[] args) {
>         float f1 = 5.5f;
>         float f2 = Float.MIN_VALUE;
>         float ff = f1 % f2;
>         System.out.println( ff == 0.0f ? 
>                        "Float test passed. "+f1+" % "+f2+" = "+ff : 
>                        "Float test failed. "+f1+" % "+f2+" = "+ff +" instead of 0.0"
);
>         double d1 = 3.3d;
>         double d2 = Double.MIN_VALUE;
>         double dd = d1 % d2;
>         System.out.println( dd == 0.0d ? 
>                        "Double test passed. "+d1+" % "+d2+" = "+dd : 
>                        "Double test failed. "+d1+" % "+d2+" = "+dd +" instead of 0.0"
);
>     }
> }
> ------------------------
> Output is:
> Float test failed. 5.5 % 1.4E-45 = 5.5 instead of 0.0
> Double test failed. 3.3 % 4.9E-324 = 3.3 instead of 0.0

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message