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

           Summary: In addition to the bug uncovered in 42751, gcc can't
                    bootstrap using --with-cpu=power7
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: target
        AssignedTo: meiss...@gcc.gnu.org
        ReportedBy: meiss...@gcc.gnu.org
                CC: berg...@vnet.ibm.com
        Depends on: 42751
              Host: powerpc64-linux
            Target: powerpc64-linux
             Build: powerpc64-linux


The VSX support changed to use the VSX form of the instruction if both VSX and
Altivec forms existed.  Unfortunately, there are differences between the
Altivec memory references instructions (LVX/STVX) and the VSX memory reference
instructions (LXVW4X/STXVW4X).  In particular, the Altivec memory instructions
ignore the bottom 3 bits of the address field, and the VSX instructions do not.
 The altivec code in libcpp/lex.c was coded such that it knew about ignoring
the bottom 3 bits of the load.

Thus we should modify __builtin_vec_ld and __builtin_vec_st to use the Altivec
versions of the instructions, and provide other builtins that can use either
the altivec or VSX memory instructions, depending on the switches used.

In addition, during testing, I discovered that __builtin_vec_ld and
__builtin_vec_st don't support the vector double and vector long long types
added with VSX.

Reply via email to