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.