This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [TESTCASE] gcc miscompiles Altivec code


Am Die, 2002-02-26 um 03.45 schrieb Dale Johannesen:

> Note that the posted testcase prints out the value after only one transpose
> 
>    ...v1[7] = vec[7];
> 
>    Transpose (v1, v2);
>    Transpose (v2, v1);
> 
>    vec[0] = v2[0];...     // v1 value lost
> 
> so the right answer is really
> 
>   1  9 17 25 33 41 49 57
>   2 10 18 26 34 42 50 58
>   3 11 19 27 35 43 51 59
>   4 12 20 28 36 44 52 60
>   5 13 21 29 37 45 53 61
>   6 14 22 30 38 46 54 62
>   7 15 23 31 39 47 55 63
>   8 16 24 32  4 48 56 64

Yes, you're right. I sent the wrong version of the code. Sorry.
I attached the correct version of it.

It still doesn't work with -O0 here.
egger@sonja:~$ /opt/gcc/bin/gcc -da -maltivec -save-temps -O -mregnames
test.c -
o test -Wall 
test.c: In function `do_something':
test.c:41: warning: unused variable `zeros'
egger@sonja:~$ ./test 
Unaltered
 1  2  3  4  5  6  7  8 
 9 10 11 12 13 14 15 16 
17 18 19 20 21 22 23 24 
25 26 27 28 29 30 31 32 
33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 
49 50 51 52 53 54 55 56 
57 58 59 60 61 62 63 64 

After double transposing
 1  2  3  4  5  6  7  8 
 9 10 11 12 13 14 15 16 
17 18 19 20 21 22 23 24 
25 26 27 28 29 30 31 32 
33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 
49 50 51 52 53 54 55 56 
57 58 59 60 61 62 63 64 

egger@sonja:~$ /opt/gcc/bin/gcc -da -maltivec -save-temps -O0 -mregnames
test.c 
-o test -Wall 
test.c: In function `do_something':
test.c:41: warning: unused variable `zeros'
egger@sonja:~$ ./test 
Unaltered
 1  2  3  4  5  6  7  8 
 9 10 11 12 13 14 15 16 
17 18 19 20 21 22 23 24 
25 26 27 28 29 30 31 32 
33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 
49 50 51 52 53 54 55 56 
57 58 59 60 61 62 63 64 
Segmentation fault

-- 
Servus,
       Daniel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]