Commit 23e0d930 by Uros Bizjak

re PR target/47840 (incorrect _mm256_insert_epi{32,64} implementations)

	PR target/47840
	* config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
	(_mm256_insert_epi64): Use _mm_insert_epi64.

From-SVN: r170371
parent 11c9e8f1
2011-02-21 Uros Bizjak <ubizjak@gmail.com>
PR target/47840
* config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
(_mm256_insert_epi64): Use _mm_insert_epi64.
2011-02-21 Anatoly Sokolov <aesok@post.ru> 2011-02-21 Anatoly Sokolov <aesok@post.ru>
* config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove. * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
...@@ -187,12 +193,10 @@ ...@@ -187,12 +193,10 @@
(copy_arguments_for_versioning): Drop redundant get_var_ann. (copy_arguments_for_versioning): Drop redundant get_var_ann.
* ipa-inline.c (compute_inline_parameters): Do not compute * ipa-inline.c (compute_inline_parameters): Do not compute
disregard_inline_limits here. disregard_inline_limits here.
are not available.
(compute_inlinable_for_current, pass_inlinable): New. (compute_inlinable_for_current, pass_inlinable): New.
(pass_inline_parameters): Require PROP_referenced_vars. (pass_inline_parameters): Require PROP_referenced_vars.
* cgraphunit.c (cgraph_process_new_functions): Don't run * cgraphunit.c (cgraph_process_new_functions): Don't run
compute_inline_parameters explicitly unless function is in compute_inline_parameters explicitly unless function is in SSA form.
SSA form.
(cgraph_analyze_function): Set .disregard_inline_limits. (cgraph_analyze_function): Set .disregard_inline_limits.
* tree-sra.c (convert_callers): Compute inliner parameters * tree-sra.c (convert_callers): Compute inliner parameters
only for functions already in SSA form. only for functions already in SSA form.
......
...@@ -737,7 +737,7 @@ extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __arti ...@@ -737,7 +737,7 @@ extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __arti
_mm256_insert_epi32 (__m256i __X, int __D, int const __N) _mm256_insert_epi32 (__m256i __X, int __D, int const __N)
{ {
__m128i __Y = _mm256_extractf128_si256 (__X, __N >> 2); __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 2);
__Y = _mm_insert_epi16 (__Y, __D, __N % 4); __Y = _mm_insert_epi32 (__Y, __D, __N % 4);
return _mm256_insertf128_si256 (__X, __Y, __N >> 2); return _mm256_insertf128_si256 (__X, __Y, __N >> 2);
} }
...@@ -762,7 +762,7 @@ extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __arti ...@@ -762,7 +762,7 @@ extern __inline __m256i __attribute__((__gnu_inline__, __always_inline__, __arti
_mm256_insert_epi64 (__m256i __X, int __D, int const __N) _mm256_insert_epi64 (__m256i __X, int __D, int const __N)
{ {
__m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1); __m128i __Y = _mm256_extractf128_si256 (__X, __N >> 1);
__Y = _mm_insert_epi16 (__Y, __D, __N % 2); __Y = _mm_insert_epi64 (__Y, __D, __N % 2);
return _mm256_insertf128_si256 (__X, __Y, __N >> 1); return _mm256_insertf128_si256 (__X, __Y, __N >> 1);
} }
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment