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