Hi Sun,

Sure.

The situation is as following.

There is implementation of the intrinsic "sqrt", for a number of types, such
as F4, F8, and so on. While, the compiler want to determine the exact type
of the sqrt by context. For example,

double a, b;
a = sqrt(b);

Then the type is F8.

Usually it works, but for the following code:

double x;
int y;
y = sqrt(x*x)>1?1:0;

The result of sqrt is used by the > operator. While, the operator > would
like to promote the type of the two operands, so they match. So it would not
provide type information for the sqrt intrinsic. So, the compiler simply
generate something like

VSTID...
VSQRT ...

The change is to set default type to F8, for such case.

Best Regards,
yiran


On Fri, Sep 10, 2010 at 2:54 PM, Sun Chan <sun.c...@gmail.com> wrote:

> please give a brief description of the bug. Or a simple test case. The
> portion of code change is not enough for me to tell why F8 is the
> right type, but not, say, F4, or V8....
> Sun
>
> On Sat, Sep 11, 2010 at 2:58 AM, Yiran Wang <yiran.w...@gmail.com> wrote:
> > Hi All,
> > Could a gatekeeper please review it?
> > Simply, the ret_mtype should be reset automatically, if it is void. This
> is
> > already done for a number of other intrinsics.
> > The bug is triggered when the combination of > and ?: operator is used,
> as
> > the result type is not set by parent of the intrinsic.
> > Best Regards,
> > yiran
> >
> > Index: wgen_expr.cxx
> > ===================================================================
> > --- wgen_expr.cxx       (revision 3338)
> > +++ wgen_expr.cxx       (working copy)
> > @@ -8153,6 +8153,7 @@
> >  #ifndef TARG_MIPS  // MIPS needs quad emulation for sqrt operation
> >                case GSBI_BUILT_IN_SQRTL:
> >  #endif
> > +               if (ret_mtype == MTYPE_V) ret_mtype = MTYPE_F8;
> >                 if (! gs_flag_errno_math(program)) {
> >                   arg_wn = WGEN_Expand_Expr (gs_tree_value
> (gs_tree_operand
> > (exp, 1)));
> >                   wn = WN_CreateExp1 (OPR_SQRT, ret_mtype, MTYPE_V,
> arg_wn);
> >
> >
> ------------------------------------------------------------------------------
> > Start uncovering the many advantages of virtual appliances
> > and start using them to simplify application deployment and
> > accelerate your shift to cloud computing
> > http://p.sf.net/sfu/novell-sfdev2dev
> >
> > _______________________________________________
> > Open64-devel mailing list
> > Open64-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/open64-devel
> >
> >
>
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to