EABI arm linux gcc 4.1.1 test result

Bridge Wu mingqiao.wu@gmail.com
Wed Aug 16 15:55:00 GMT 2006


Hello,

I built arm-iwmmxt-linux-gnueabi-gcc 4.1.1 with glibc-2.4 and ran gcc
testsuite-4.1.1. I got some unexpected FAIL results. Below are some
results and questions.

Results:

arm-iwmmxt-linux-gnueabi-gcc
# of expected passes            36767
# of unexpected failures        60
# of unexpected successes    2
# of expected failures           75
# of unresolved testcases      77
# of untested testcases         28
# of unsupported tests          384

arm-iwmmxt-linux-gnueabi-g++
# of expected passes            11773
# of unexpected failures        21
# of unexpected successes     3
# of expected failures            66
# of unresolved testcases      23
# of unsupported tests          131

Questions:

1. gcc.c-torture/execute/20050316-1.c
   This test case is for testing the issue at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16104.  If we compile it
with -O1 or -O2 option, there will be execution FAIL. The result is
similar with 20050316-2.c and 20050316-3.c

2. gcc.c-torture/execute/20050604-1.c
   This test case is for testing the issue at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21897
. There are seven FAIL cases.
FAIL: gcc.c-torture/execute/20050604-1.c execution,  -O1
FAIL: gcc.c-torture/execute/20050604-1.c execution,  -O2
FAIL: gcc.c-torture/execute/20050604-1.c execution,  -O3 -fomit-frame-pointer
FAIL: gcc.c-torture/execute/20050604-1.c execution,  -O3
-fomit-frame-pointer -funroll-loops
FAIL: gcc.c-torture/execute/20050604-1.c execution,  -O3
-fomit-frame-pointer -funroll-all-loops -finline-functions
FAIL: gcc.c-torture/execute/20050604-1.c execution,  -O3 –g
FAIL: gcc.c-torture/execute/20050604-1.c execution,  -Os

The code snippet from 20050604-1.c is shown below. u.v is not computed
with v4hi variables. So abort() is triggered. This only occurred with
above optimization options.

typedef short v4hi __attribute__ ((vector_size (8)));
union
{
  v4hi v;
  short s[4];
} u;
void
foo (void)
{
  unsigned int i;
  for (i = 0; i < 2; i++)
    u.v += (v4hi) { 12, 14 };
}

int
main (void)
{
  foo ();
  if (u.s[0] != 24 || u.s[1] != 28 || u.s[2] || u.s[3])
    abort ();
  return 0;
}

3. gcc.c-torture/execute/simd-6.c
   There are three FAIL cases.
FAIL: gcc.c-torture/execute/simd-6.c execution,  -O1
FAIL: gcc.c-torture/execute/simd-6.c execution,  -O2
FAIL: gcc.c-torture/execute/simd-6.c execution,  -Os

4. g++.dg/opt/switch4.C
   This test case is for testing the issue at
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20008. There were
compilation errors shown as below.

arm-iwmmxt-linux-gnueabi-g++ ./g++.dg/opt/switch4.C
-fmessage-length=0   -ansi -pedantic-errors -Wno-long-long  -S -o
switch4.s
./g++.dg/opt/switch4.C: In function 'void f(SECStatus)':
./g++.dg/opt/switch4.C:24: warning: overflow in implicit constant conversion
./g++.dg/opt/switch4.C:24: warning: case label value exceeds maximum
value for type
./g++.dg/opt/switch4.C:28: error: expected primary-expression before 'break'
./g++.dg/opt/switch4.C:28: error: expected `;' before 'break'


According to the bugzilla system, these issues should be solved in
gcc-4.1.1. I wonder if I used inproper configuration to build the tool
chain. For the issue 1,2 and 3, it was related to some vector variable
operations. Issue 4 is totally incomprehensibility to me. Does anybody
know the possible reason? How to solve these issues?

-- 
best regards,
-Bridge

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list