Really commit patch announced at Oct 14 PR c/7344
authorJan Hubicka <jh@suse.cz>
Thu, 17 Oct 2002 15:11:57 +0000 (17:11 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 17 Oct 2002 15:11:57 +0000 (15:11 +0000)
Really commit patch announced at Oct 14
PR c/7344
* predict.c (can_predict_insn_p): New function.
(estimate_probability): Avoid unnecesary work.
(process_note_prediction): Likewise.
* toplev.c (rest_of_compilation): Account early branch prediction pass
as TV_BRANCH_PROB.

PR other/8048
Found by Ian Ollmann
* xmmintrin.h (_mm_shuffle_pd): Fix typo.
(_mm_load?_pd): Likewise.
(_mm_store?_pd): Likewise.

PR target/7386
* i386.c (builtin_description):Drop cmpg[te]s[sd].
* xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using
swapped alternative.

PR opt/7630
* reload1.c (reload_inner_reg_of_subreg): New argument output;
(push_reload): Update call.

From-SVN: r58247

gcc/ChangeLog
gcc/config/i386/xmmintrin.h

index 611755228719e3abc9c1f473b97ce7a2fd3d660c..b00610de28e9454322b9296b7bdbca282c844717 100644 (file)
@@ -8,6 +8,21 @@ Wed Oct 16 15:01:29 CEST 2002  Jan Hubicka  <jh@suse.cz>
        * toplev.c (rest_of_compilation): Account early branch prediction pass
        as TV_BRANCH_PROB.
 
+       PR other/8048
+       Found by Ian Ollmann
+       * xmmintrin.h (_mm_shuffle_pd): Fix typo.
+       (_mm_load?_pd): Likewise.
+       (_mm_store?_pd): Likewise.
+
+       PR target/7386
+       * i386.c (builtin_description):Drop cmpg[te]s[sd].
+       * xmmintrin.h (__mm_cmpg[te]_s[sd]): Rewrite using
+       swapped alternative.
+
+       PR opt/7630
+       * reload1.c (reload_inner_reg_of_subreg): New argument output;
+       (push_reload): Update call.
+
 2002-10-17  Richard Sandiford  <rsandifo@redhat.com>
 
        * config.gcc (mips*-*-*): Add OBJECT_FORMAT_ELF to $tm_defines
index 264608daad053aeb9144c90068bc56ec087158d7..627dcdf5ca349848030aef43d8e6c53bb57bbd17 100644 (file)
@@ -1521,7 +1521,7 @@ _mm_cvtss_sd (__m128d __A, __m128d __B)
   return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B);
 }
 
-#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)__A, (__v2df)__B, (C)))
+#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)__A, (__v2df)__B, (__C)))
 
 static __inline __m128d
 _mm_unpackhi_pd (__m128d __A, __m128d __B)
@@ -1536,27 +1536,29 @@ _mm_unpacklo_pd (__m128d __A, __m128d __B)
 }
 
 static __inline __m128d
-_mm_loadh_pd (__m128d __A, __m128d *__B)
+_mm_loadh_pd (__m128d __A, double *__B)
 {
   return (__m128d)__builtin_ia32_loadhpd ((__v2df)__A, (__v2si *)__B);
 }
 
 static __inline void
-_mm_storeh_pd (__m128d *__A, __m128d __B)
+_mm_storeh_pd (__m128d *__A, double __B)
 {
-  __builtin_ia32_storehpd ((__v2si *)__A, (__v2df)__B);
+  __v2df __tmp = __builtin_ia32_loadsd (&__B);
+  __builtin_ia32_storehpd ((__v2si *)__A, __tmp);
 }
 
 static __inline __m128d
-_mm_loadl_pd (__m128d __A, __m128d *__B)
+_mm_loadl_pd (__m128d __A, double *__B)
 {
   return (__m128d)__builtin_ia32_loadlpd ((__v2df)__A, (__v2si *)__B);
 }
 
 static __inline void
-_mm_storel_pd (__m128d *__A, __m128d __B)
+_mm_storel_pd (__m128d *__A, double __B)
 {
-  __builtin_ia32_storelpd ((__v2si *)__A, (__v2df)__B);
+  __v2df __tmp = __builtin_ia32_loadsd (&__B);
+  __builtin_ia32_storelpd ((__v2si *)__A, __tmp);
 }
 
 static __inline int