r266868 - in /trunk/gcc: ChangeLog config/rs600...

pc@gcc.gnu.org pc@gcc.gnu.org
Thu Dec 6 22:03:00 GMT 2018


Author: pc
Date: Thu Dec  6 22:03:25 2018
New Revision: 266868

URL: https://gcc.gnu.org/viewcvs?rev=266868&root=gcc&view=rev
Log:
[rs6000] x86-compat vector intrinsics fixes for BE, 32bit

Fix general endian and 32-bit mode issues found in the
compatibility implementations of the x86 vector intrinsics when running the
associated test suite tests.  (The tests had been inadvertently made to PASS
without actually running the test code.  A later patch fixes this issue.)

2018-12-03  Paul A. Clarke  <pc@us.ibm.com>

	PR target/88316
	* config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Fix for big-endian.
	(_mm_unpacklo_pi8): Likewise.
	(_mm_mulhi_pi16): Likewise.
	(_mm_packs_pi16): Fix for big-endian. Use preferred API.
	(_mm_packs_pi32): Likewise.
	(_mm_packs_pu16): Likewise.
	* config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix for big-endian.
	(_mm_cvtss_si64): Likewise.
	(_mm_cvtpi32x2_ps): Likewise.
	(_mm_shuffle_ps): Likewise.
	(_mm_movemask_pi8): Likewise.
	(_mm_mulhi_pu16): Likewise.
	(_mm_sad_pu8): Likewise.
	(_mm_sad_pu8): Likewise.
	(_mm_cvtpu16_ps): Fix for big-endian. Use preferred API.
	(_mm_cvtpu8_ps): Likewise.
	(_mm_movemask_ps): Better #else case for big-endian (no functional
	change).
	(_mm_shuffle_pi16): Likewise.
	* config/rs6000/emmintrin.h (_mm_movemask_pd): Fix for big-endian.
	Better #else case for big-endian (no functional change).
	(_mm_movemask_epi8): Likewise.
	(_mm_shufflehi_epi16): Likewise.
	(_mm_shufflelo_epi16): Likewise.
	(_mm_shuffle_epi32): Likewise.
	(_mm_mul_epu32): Fix for big-endian.
	(_mm_bsrli_si128): Likewise.
	(_mm_cvtps_pd): Better #else case for big endian.
	(_mm_mulhi_epi16): Likewise.
	(_mm_mul_epu32): Likewise.
	(_mm_slli_si128): Likewise.
	(_mm_sll_epi16): Likewise.
	(_mm_sll_epi32): Likewise.
	(_mm_sra_epi16): Likewise.
	(_mm_sra_epi32): Likewise.
	(_mm_srl_epi16): Likewise.
	(_mm_srl_epi32): Likewise.
	(_mm_mulhi_epu16): Likewise.
	(_mm_sad_epu8): Likewise.
	* config/rs6000/pmmintrin.h (_mm_hadd_ps): Fix for big-endian.
	(_mm_sub_ps): Likewise.
	* config/rs6000/mmintrin.h (_mm_cmpeq_pi8): Fix for 32-bit mode.
	* gcc/config/rs6000/tmmintrin.h (_mm_alignr_epi8): Use ENDIAN
	macros consistently (no functional changes).
	(_mm_alignr_pi8): Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/emmintrin.h
    trunk/gcc/config/rs6000/mmintrin.h
    trunk/gcc/config/rs6000/pmmintrin.h
    trunk/gcc/config/rs6000/tmmintrin.h
    trunk/gcc/config/rs6000/xmmintrin.h



More information about the Gcc-cvs mailing list