Bug 61542

Summary: [4.8/4.9/trunk] vect-nop-move.c fails on powerpc64le-unknown-linux-gnu
Product: gcc Reporter: Bill Schmidt <bill.schmidt>
Component: targetAssignee: Bill Schmidt <bill.schmidt>
Status: RESOLVED FIXED    
Severity: normal CC: bergner, jakub
Priority: P3 Keywords: wrong-code
Version: 4.8.4   
Target Milestone: ---   
Host: powerpc64le-unknown-linux-gnu Target: powerpc64le-unknown-linux-gnu
Build: powerpc64le-unknown-linux-gnu Known to work:
Known to fail: Last reconfirmed: 2014-06-17 00:00:00

Description Bill Schmidt 2014-06-17 22:33:54 UTC
A test case (gcc.dg/vect/vect-nop-move.c) was added in 4.9 that exposes a bug on PowerPC little endian for extracting an element from a V4SF value.  When attempting to extract element N, element 3 - N is extracted instead when N <> 3.
Comment 1 Bill Schmidt 2014-06-17 22:37:58 UTC
The bug exists in 4.8 as well, but was not caught with existing tests (we do have a test that performs vec_extract on V4SF, but unfortunately only tested element 3).
Comment 2 Jakub Jelinek 2014-06-25 11:55:25 UTC
Why is this a regression?  ppc64le is a new port in 4.8.
Comment 3 Bill Schmidt 2014-06-25 12:33:17 UTC
I suppose it's not.  It looked like a regression at first with the test failing in 4.9 and not 4.8, but that was due to the test not existing in 4.8.  Fixed.
Comment 4 Bill Schmidt 2014-06-26 18:48:23 UTC
Author: wschmidt
Date: Thu Jun 26 18:47:52 2014
New Revision: 212047

URL: https://gcc.gnu.org/viewcvs?rev=212047&root=gcc&view=rev
Log:
2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/61542
	* config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
	extraction other than index 3.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/vsx.md
Comment 5 Bill Schmidt 2014-06-26 18:49:33 UTC
Author: wschmidt
Date: Thu Jun 26 18:49:01 2014
New Revision: 212048

URL: https://gcc.gnu.org/viewcvs?rev=212048&root=gcc&view=rev
Log:
2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/61542
	* config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
	extraction other than index 3.


Modified:
    branches/gcc-4_9-branch/gcc/ChangeLog
    branches/gcc-4_9-branch/gcc/config/rs6000/vsx.md
Comment 6 Bill Schmidt 2014-06-26 18:50:56 UTC
Author: wschmidt
Date: Thu Jun 26 18:50:25 2014
New Revision: 212050

URL: https://gcc.gnu.org/viewcvs?rev=212050&root=gcc&view=rev
Log:
2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/61542
	* config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
	extraction other than index 3.


Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/config/rs6000/vsx.md
Comment 7 Bill Schmidt 2014-06-26 19:40:29 UTC
Work is complete.
Comment 8 Peter Bergner 2014-06-27 19:31:57 UTC
Author: bergner
Date: Fri Jun 27 19:31:25 2014
New Revision: 212083

URL: https://gcc.gnu.org/viewcvs?rev=212083&root=gcc&view=rev
Log:
	Merge up to 212074.
	* REVISION: Update subversion id.

	Picks up fix for bug 61542.

Added:
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/cpp0x/initlist84.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/gcc/testsuite/g++.dg/cpp0x/initlist84.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/ext/complit14.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/gcc/testsuite/g++.dg/ext/complit14.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr61160-2.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr61160-2.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr61160-3.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr61160-3.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/template/pr61537.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/gcc/testsuite/g++.dg/template/pr61537.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/gcc.target/alpha/pr61586.c
      - copied unchanged from r212074, branches/gcc-4_9-branch/gcc/testsuite/gcc.target/alpha/pr61586.c
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd10.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd10.C
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd11.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd11.C
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd12.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd12.C
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd13.C
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/simd13.C
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-14.c
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-14.c
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-15.c
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-15.c
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-16.c
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-16.c
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-17.c
      - copied unchanged from r212074, branches/gcc-4_9-branch/libgomp/testsuite/libgomp.c/simd-17.c
Modified:
    branches/ibm/gcc-4_9-branch/   (props changed)
    branches/ibm/gcc-4_9-branch/gcc/ChangeLog
    branches/ibm/gcc-4_9-branch/gcc/ChangeLog.ibm
    branches/ibm/gcc-4_9-branch/gcc/DATESTAMP
    branches/ibm/gcc-4_9-branch/gcc/REVISION
    branches/ibm/gcc-4_9-branch/gcc/c/ChangeLog
    branches/ibm/gcc-4_9-branch/gcc/c/c-parser.c
    branches/ibm/gcc-4_9-branch/gcc/cgraphclones.c
    branches/ibm/gcc-4_9-branch/gcc/config/alpha/alpha.c
    branches/ibm/gcc-4_9-branch/gcc/config/i386/driver-i386.c
    branches/ibm/gcc-4_9-branch/gcc/config/i386/i386.md
    branches/ibm/gcc-4_9-branch/gcc/config/rs6000/vsx.md
    branches/ibm/gcc-4_9-branch/gcc/cp/ChangeLog
    branches/ibm/gcc-4_9-branch/gcc/cp/call.c
    branches/ibm/gcc-4_9-branch/gcc/cp/parser.c
    branches/ibm/gcc-4_9-branch/gcc/cp/semantics.c
    branches/ibm/gcc-4_9-branch/gcc/gimplify.c
    branches/ibm/gcc-4_9-branch/gcc/ipa-cp.c
    branches/ibm/gcc-4_9-branch/gcc/ipa-prop.c
    branches/ibm/gcc-4_9-branch/gcc/ipa-prop.h
    branches/ibm/gcc-4_9-branch/gcc/omp-low.c
    branches/ibm/gcc-4_9-branch/gcc/testsuite/ChangeLog
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/devirt-25.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr60600.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr61540.C
    branches/ibm/gcc-4_9-branch/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
    branches/ibm/gcc-4_9-branch/libgomp/ChangeLog
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c++/for-10.C
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c/for-2.c
    branches/ibm/gcc-4_9-branch/libgomp/testsuite/libgomp.c/for-2.h
    branches/ibm/gcc-4_9-branch/libstdc++-v3/ChangeLog
    branches/ibm/gcc-4_9-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-1.cc
    branches/ibm/gcc-4_9-branch/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs-2.cc
    branches/ibm/gcc-4_9-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-1.cc
    branches/ibm/gcc-4_9-branch/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs-2.cc

Propchange: branches/ibm/gcc-4_9-branch/
            ('svn:mergeinfo' modified)

Propchange: branches/ibm/gcc-4_9-branch/
            ('svnmerge-integrated' modified)
Comment 9 Peter Bergner 2014-06-27 19:33:23 UTC
Author: bergner
Date: Fri Jun 27 19:32:52 2014
New Revision: 212084

URL: https://gcc.gnu.org/viewcvs?rev=212084&root=gcc&view=rev
Log:
	Merge up to 212077.
	* REVISION: Update subversion id.

	Picks up fix for bug 61542.

Added:
    branches/ibm/gcc-4_8-branch/gcc/testsuite/g++.dg/template/local-fn1.C
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/g++.dg/template/local-fn1.C
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-13.c
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-13.c
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-14.c
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-14.c
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-15.c
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/gcc.target/aarch64/aapcs64/va_arg-15.c
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/alpha/pr61586.c
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/gcc.target/alpha/pr61586.c
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr61423.c
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr61423.c
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr61446.c
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr61446.c
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gfortran.dg/cray_pointers_10.f90
      - copied unchanged from r212077, branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/cray_pointers_10.f90
Modified:
    branches/ibm/gcc-4_8-branch/   (props changed)
    branches/ibm/gcc-4_8-branch/gcc/ChangeLog
    branches/ibm/gcc-4_8-branch/gcc/ChangeLog.ibm
    branches/ibm/gcc-4_8-branch/gcc/DATESTAMP
    branches/ibm/gcc-4_8-branch/gcc/config/aarch64/aarch64.c
    branches/ibm/gcc-4_8-branch/gcc/config/aarch64/aarch64.md
    branches/ibm/gcc-4_8-branch/gcc/config/alpha/alpha.c
    branches/ibm/gcc-4_8-branch/gcc/config/arm/arm.c
    branches/ibm/gcc-4_8-branch/gcc/config/i386/driver-i386.c
    branches/ibm/gcc-4_8-branch/gcc/config/i386/i386.md
    branches/ibm/gcc-4_8-branch/gcc/config/microblaze/microblaze.md
    branches/ibm/gcc-4_8-branch/gcc/config/microblaze/predicates.md
    branches/ibm/gcc-4_8-branch/gcc/config/rs6000/vsx.md
    branches/ibm/gcc-4_8-branch/gcc/cp/ChangeLog
    branches/ibm/gcc-4_8-branch/gcc/cp/pt.c
    branches/ibm/gcc-4_8-branch/gcc/fortran/ChangeLog
    branches/ibm/gcc-4_8-branch/gcc/fortran/trans-decl.c
    branches/ibm/gcc-4_8-branch/gcc/testsuite/ChangeLog
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gcc.target/aarch64/aapcs64/type-def.h
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90
    branches/ibm/gcc-4_8-branch/gcc/testsuite/gfortran.dg/nint_2.f90
    branches/ibm/gcc-4_8-branch/libjava/classpath/   (props changed)

Propchange: branches/ibm/gcc-4_8-branch/
            ('svn:mergeinfo' modified)

Propchange: branches/ibm/gcc-4_8-branch/
            ('svnmerge-integrated' modified)

Propchange: branches/ibm/gcc-4_8-branch/libjava/classpath/
            ('svn:mergeinfo' modified)