spe.md
120 KB
-
rs6000.c (output_vec_const_move): Handle little-endian code generation. · 3ca588d3
gcc/ * config/rs6000/rs6000.c (output_vec_const_move): Handle little-endian code generation. * config/rs6000/spe.md (spe_evmergehi): Rename to... (vec_perm00_v2si): ... this. Handle little-endian code generation. (spe_evmergehilo): Rename to... (vec_perm01_v2si): ... this. Handle little-endian code generation. (spe_evmergelo): Rename to... (vec_perm11_v2si): ... this. Handle little-endian code generation. (spe_evmergelohi): Rename to... (vec_perm10_v2si): ... this. Handle little-endian code generation. (spe_evmergehi, spe_evmergehilo): New expanders. (spe_evmergelo, spe_evmergelohi): Likewise. (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation. (*frob_tf_ti): Likewise. (*frob_<mode>_di_2): Likewise. (*frob_tf_di_8_2): Likewise. (*frob_di_<mode>): Likewise. (*frob_ti_tf): Likewise. (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise. (*frob_ti_<mode>_8_2): Likewise. (*frob_ti_tf_2): Likewise. (mov_si<mode>_e500_subreg0): Rename to... (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big endianness only. (*mov_si<mode>_e500_subreg0_le): New instruction pattern. (*mov_si<mode>_e500_subreg0_elf_low): Rename to... (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to the big endianness only. (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern. (*mov_si<mode>_e500_subreg0_2): Rename to... (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the big big endianness only. (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern. (*mov_si<mode>_e500_subreg4): Rename to... (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big endianness only. (mov_si<mode>_e500_subreg4_le): New instruction pattern. (*mov_si<mode>_e500_subreg4_elf_low): Rename to... (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to the big endianness only. (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter pattern. (*mov_si<mode>_e500_subreg4_2): Rename to... (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big endianness only. (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern. (*mov_sitf_e500_subreg8): Rename to... (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big endianness only. (*mov_sitf_e500_subreg8_le): New instruction pattern. (*mov_sitf_e500_subreg8_2): Rename to... (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big endianness only. (*mov_sitf_e500_subreg8_2_le): New instruction pattern. (*mov_sitf_e500_subreg12): Rename to... (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big endianness only. (*mov_sitf_e500_subreg12_le): New instruction pattern. (*mov_sitf_e500_subreg12_2): Rename to... (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big endianness only. (*mov_sitf_e500_subreg12_2_le): New instruction pattern. gcc/testsuite/ * gcc.target/powerpc/spe-evmerge.c: New file. From-SVN: r212335
Maciej W. Rozycki committed