Vectorizing
Peter <[email protected]> Thu, 12 Jan 2017 14:18:19 +0000
| Newsgroups | gmane.comp.compilers.gpc |
|---|---|
| Message-ID | <[email protected]> |
I've managed to get some Pascal code to vectorize! See attached example. I used GNU Pascal version 20070904, based on gcc-4.3.6. (64bit) Earlier 4.3.x might work, please try it. Caveats; Array to vectorize must start with lower bound zero. Must use While loop (For loop did'nt work). 32 bit Integers not working, floats or 64bit Ints only. gpc -O3 -ftree-vectorizer-verbose=2 av.pas av.pas:19: note: LOOP VECTORIZED. av.pas:0: note: vectorized 1 loops in function. Regards, Peter _______________________________________________ Gpc mailing list [email protected] https://www.g-n-u.de/mailman/listinfo/gpc
av.pas
(text/x-pascal, 395 B)
{ Vectorize test for gpc 4.3.x }
{ gpc -O3 -ftree-vectorizer-verbose=3 av.pas -o av }
program av;
type
d256 = array [0..255] of Single;
var
a,b,c : d256;
procedure loop1;
var i : Integer;
begin
i := 0;
while i < 256 do
begin
a[i] := b[i] + c[i];
i := succ(i);
end;
end;
begin
b[17] := 5;
c[17] := 2;
loop1;
writeln (a[17]);
end.