Could you show larger portion of the code around it. The variable is
ret_mtype, so may be it is only for return type. For a single
statement, the result type usually follows that of the use.
Sun

On Sat, Sep 11, 2010 at 6:18 AM, Yiran Wang <yiran.w...@gmail.com> wrote:
> The simple reason may be F8 is the largest type for sqrt.
> Another solution may be to set the type to the operand. But I simply want to
> make it consistent to other intrinsics with similar issue (they solve it in
> this way).
>
> Best Regards,
> yiran
>
> On Fri, Sep 10, 2010 at 3:14 PM, Sun Chan <sun.c...@gmail.com> wrote:
>>
>> why is F8 the default, but not others?
>> Sun
>>
>> On Sat, Sep 11, 2010 at 6:08 AM, Yiran Wang <yiran.w...@gmail.com> wrote:
>> > 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