Hi Mei,

I made fix for both place.

In patch file.
@@ -4848,6 +4848,23 @@
is for the then branch and
@@ -4936,6 +4959,11 @@
is for the else branch.

I only add comment in first place.

2010/8/18 Ye, Mei <mei...@amd.com>

>  Sorry for the late reply. Somehow did not see your Email.
>
> I mean,
>
>
>
> if (WN_kid0(loop_end) == tmp) {
>
>     if (opr == OPR_LT) {
>
>      ….                          --- you fixed here
>
>    }
>
>    …
>
> }
>
> else {
>
>    if (opr == OPR_LT) {
>
>     …..                      --- looks like you miss here.
>
>   }
>
> ……
>
> }
>
>
>   ------------------------------
>
> *From:* Hui Shi [mailto:kalin....@gmail.com]
> *Sent:* Friday, August 13, 2010 9:29 PM
> *To:* Ye, Mei; Sun Chan
> *Cc:* open64-devel@lists.sourceforge.net
> *Subject:* Re: [Open64-devel] Simd_Finalize_Loops bug in handling unsigned
> comparison loop end
>
>
>
> Hi, Mei
>
>
>
> I fix loop's end update in both branch.
>
> Do you mean I miss fixing for the remainder loop's tart?
>
> remainder_start = start + (((end-start) + 1)/vect)*vect, because end>=start
> has the do loop guard, I guess the start value is always correct.
>
>
>
>
> 2010/8/12 Sun Chan <sun.c...@gmail.com>
>
> if the fix need to be in multiple places, perhaps make a template out of
> that?
> Sun
>
>
> On Thu, Aug 12, 2010 at 9:27 AM, Ye, Mei <mei...@amd.com> wrote:
> > Hello Kalin,
> >
> >
> >
> > Looks like you missed another place in Simd_Finalize_Loops that may
> require
> > a similar fix.
> >
> >
> >
> > -Mei
> >
> >
> >
> > ________________________________
> >
> > From: Ju, Roy
> > Sent: Wednesday, August 11, 2010 3:11 PM
> > To: Ye, Mei
> > Subject: FW: [Open64-devel] Simd_Finalize_Loops bug in handling unsigned
> > comparison loop end
> >
> >
> >
> > Mei,
> >
> > See if you can review this changelist. Thanks.
> >
> >
> >
> > Roy
> >
> >
> >
> > From: Hui Shi [mailto:]
> > Sent: Sunday, August 08, 2010 7:46 PM
> > To:
> > Subject: [Open64-devel] Simd_Finalize_Loops bug in handling unsigned
> > comparison loop end
> >
> >
> >
> > Hi, All
> >
> >
> >
> > Can LNO gatekeeper help review this fix?
> >
> >
> >
> > This bug happens in -m32 on x8664 linux.
> >
> > Attached is the test case and patch.
> >
> > command line is
> >
> > opencc -O3 unsigned_loop_end.c -INLINE:ne=foo:ne=init:ne=check
> > -OPT:unroll_times_max=1 -m32
> >
> >
> >
> > The bug happens when vectorization is happend on following loop.
> >
> >    int a[100]
> >
> >    int start;
> >    unsigned i, end;
> >    for( i = start; i < end; i++) {
> >      a[i] = a[i+1];
> >    }
> >
> > with -m64 unsigned comparison is transformed to signed comparison in
> > STD_Canonicalize_Upper_Bound.
> >
> > with -m32 unsigned comparison is kept in LNO.
> >
> >
> >
> > will update loop_end align to vecotrize factor (vect)
> >
> > i <= start + (((end - start + 1) / vect) * vect) -1
> > suppose start is 0, end is 2, vect is 4, original serial loop is
> > for( i = 0; i < 2; i++)
> > after Simd_Finalize_Loops transformation, simd loop becomes
> > for(i = 0, i <= -1; i++),
> >
> > This loop will itreate 0xffffffff times.
> >
> >
> >
> > The fix is change loop end to following form when compraion is unsigned.
> > i < start + (((end - start + 1) / vect) * vect)
> >
> >
> >
> >
> >
> > As discussed with Shuxin, we also doubt why SIMD loop's upper need
> aligned
> > with vecotrized factor. Can SIMD only update loop's step?
> >
> > like  for(i = start, i <= end-1; i+= vector_factor)?
> >
> >
> >
> >
> >
> > Best Regards
> >
> > Shi, Hui
> >
>
> >
> ------------------------------------------------------------------------------
> > This SF.net email is sponsored by
> >
> > Make an app they can't live without
> > Enter the BlackBerry Developer Challenge
> > http://p.sf.net/sfu/RIM-dev2dev
> > _______________________________________________
> > Open64-devel mailing list
> > Open64-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/open64-devel
> >
> >
>
>
>
------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to