I have 4.3.0 SVN 20070523 and just updated it a minute ago to "revision
125011".

I ran "make -i check" and noticed a number of UNSUPPORTED in the "C" tests.


# grep -B 5 -A 0 15233 gcc/testsuite/gcc/gcc.log
PASS: gcc.target/i386/sse3-movshdup.c execution test
Executing on host: /opt/gcc-4_3-build/gcc/xgcc -B/opt/gcc-4_3-build/gcc/
/root/downloads/gcc-4_3-trunk/gcc/testsuite/gcc.target/i386/sse3-movsldup.c  
-O2 -msse3 -fno-show-column  -lm   -o ./sse3-movsldup.exe    (timeout = 300)
PASS: gcc.target/i386/sse3-movsldup.c (test for excess errors)
Setting LD_LIBRARY_PATH to
:/opt/gcc-4_3-build/gcc::/opt/gcc-4_3-build/gcc:/opt/gcc-4_3-build/i686-pc-linux-gnu/libstdc++-v3/.libs:/opt/gcc-4_3-build/i686-pc-linux-gnu/libmudflap/.libs:/opt/gcc-4_3-build/i686-pc-linux-gnu/libssp/.libs:/opt/gcc-4_3-build/i686-pc-linux-gnu/libgomp/.libs:/opt/gcc-4_3-build/./gcc:/opt/gcc-4_3-build/./prev-gcc
PASS: gcc.target/i386/sse3-movsldup.c execution test
Executing on host: /opt/gcc-4_3-build/gcc/xgcc -B/opt/gcc-4_3-build/gcc/  -O2
-msse4.1 -fno-show-column -c  -o sse4.15233.o sse4.15233.c    (timeout = 300)


Notice that the test of "sse3-movsldup.c" uses the path "gcc.target/i386/" .

Notice that the test of "sse4.15233.c" uses the path "" . In addition, the file
"sse4.15233.c" did not exist the other day when I got the SVN _AND_ it still
does not exist now when I re-got the SVN a few minutes ago. I checked
my HD to see if it was generated, it does not exist.


When the compilation of "sse4.15233.c" fails it causes a number of tests that
follow to be ASSUMED (or at least reported) as unsupported.

Here are a few:
UNSUPPORTED: gcc.target/i386/sse4_1-blendpd.c
UNSUPPORTED: gcc.target/i386/sse4_1-blendps.c
UNSUPPORTED: gcc.target/i386/sse4_1-blendvpd.c


_MY_ test method:

# ls -l sse4_1*
ls: sse4_1*: No such file or directory

# /opt/gcc-4_3-build/gcc/xgcc -B/opt/gcc-4_3-build/gcc/  -O2 -msse4.1
-fno-show-column -c  -o sse4_1-blendpd.o
/root/downloads/gcc-4_3-trunk/gcc/testsuite/gcc.target/i386/sse4_1-blendpd.c

# /opt/gcc-4_3-build/gcc/xgcc -B/opt/gcc-4_3-build/gcc/  -O2 -msse4.1
-fno-show-column -c  -o sse4_1-blendps.o
/root/downloads/gcc-4_3-trunk/gcc/testsuite/gcc.target/i386/sse4_1-blendps.c

# /opt/gcc-4_3-build/gcc/xgcc -B/opt/gcc-4_3-build/gcc/  -O2 -msse4.1
-fno-show-column -c  -o sse4_1-blendvpd.o
/root/downloads/gcc-4_3-trunk/gcc/testsuite/gcc.target/i386/sse4_1-blendvpd.c
: Assembler messages:
:187: Error: no such instruction: `blendvpd %xmm0,-1000(%ebx,%ebp),%xmm1'

# ls -l sse4_1*
-rw-r--r-- 1 root root 1648 May 23 17:38 sse4_1-blendpd.o
-rw-r--r-- 1 root root 1664 May 23 17:39 sse4_1-blendps.o


So the more correct message would be:
PASS: gcc.target/i386/sse4_1-blendpd.c
PASS: gcc.target/i386/sse4_1-blendps.c
UNSUPPORTED: gcc.target/i386/sse4_1-blendvpd.c


The testsuite thinks that the failure of a non-existant file means the rest of
the tests won't pass.

I'm not an "SSE" expert but with so many processors types and variables you
_might_ need to test for processor capability with a _COORECT_ program. Then
use a huge chart that says exactly what is supported by the manufacturer -
unless you actually wish to test unsupported but working instructions.

Many "cpuid" programs are not bleading edge and you don't want to keep
updating.
Keeping a chart is a pain. Using "cat /proc/cpuinfo" is not reliable.

cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 43
...
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat
pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow
up pni lahf_lm cmp_legacy ts fid vid ttp

I bet you think I have an Opteron, many programs do.


There were so many problems with the "gcc" tests that I'll need to poke around
and type "make -i check-gcc" to re-check gcc only. The other tests are not as
bad.

It is important that "C" work as it affects all the other compilers - and thus
the results. We need ZERO errors in "C" (and Ada since it is a "first-stager").


-- 
           Summary: gcc revision 20070523 - Non-existant sse4 test (with
                    wrong path) causes "UNSUPPORTED" for working tests
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: testsuite
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rob1weld at aol dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32062

Reply via email to