Below is a sample program that shows the effect of using 
-LNO:loop_model_simd=on. With this flag, simd checks whether moving an 
outerloop to innermost position will enable more vectorization and provides 
this information to loop interchange which does the actual interchange.
In the example below, the middle loop is moved to the innermost position 
enabling generation of more vectorized operations. 

$cat testcase.f
      SUBROUTINE SAMPLE(A,X,Y,Z,N1,N2,N3)
      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
 
      DIMENSION X(100,N1),Y(100,N1),Z(100),A(100)
      I3 = 0
      DO 30 I2 = 1,N3
         DO 20 I1= 1,N2
            I3 = I3 + 1
            Z(I3) = (7.0*(A(I2) - A(I1)))
            B = Z(I3)
            DO 10 I = 1,N1
               Y(I3,I) = B * X(I3,I)
   10       CONTINUE
   20    CONTINUE
   30 CONTINUE
      END
 
Sample compilations:
$ openf90 testcase.f -O3 -LNO:simd_verbose=on 
(testcase.f:7) Vectorization is not likely to be beneficial (try -LNO:simd=2 to 
vectorize it). Loop was not vectorized.
(testcase.f:11) Non-contiguous array "X" reference exists. Loop was not 
vectorized.
(testcase.f:11) Non-contiguous array "X" reference exists. Loop was not 
vectorized.
 
$ openf90 testcase.f -O3 -LNO:simd_verbose=on -LNO:simd=2
(testcase.f:7) LOOP WAS VECTORIZED.
(testcase.f:11) Non-contiguous array "X" reference exists. Loop was not 
vectorized.
(testcase.f:11) Non-contiguous array "X" reference exists. Loop was not 
vectorized.
 
$ openf90 testcase.f -O3 -LNO:simd_verbose=on -LNO:loop_model_simd=on
Vectorizable outer loop at line:7 is moved to innermost position
(testcase.f:7) LOOP WAS VECTORIZED.
(testcase.f:7) LOOP WAS VECTORIZED.
(testcase.f:7) LOOP WAS VECTORIZED.

Unfortunately, don't have any details on "//bug 2456, bug 5724 and bug 9143" 
(an already-existing comment in the code base).
-Pallavi

-----Original Message-----
From: Christopher Bergström [mailto:cbergst...@pathscale.com] 
Sent: Thursday, June 02, 2011 3:28 PM
To: Mathew, Pallavi
Cc: open64-devel@lists.sourceforge.net
Subject: Re: [Open64-devel] Code review request for vectorizer patch

On Fri, Jun 3, 2011 at 6:15 AM, Mathew, Pallavi <pallavi.mat...@amd.com> wrote:
> Hi,
>
> Can a gatekeeper please review the attached vectorizer patch that
>
> moves the vectorizable loop to the innermost position. This optimization
>
> is disabled by default and can be enabled via -LNO:loop_model_simd=on.

Can you please provide a test case and if possible more details on
//bug 2456, bug 5724 and bug 9143.



------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to