Re: A question on gimplifier

2007-04-21 Thread Jim Wilson
H. J. Lu wrote: __builtin_ia32_vec_set_v2di will be expanded to [(set (match_operand:V2DI 0 "register_operand" "=x") (vec_merge:V2DI (vec_duplicate:V2DI (match_operand:DI 2 "nonimmediate_operand" "rm")) (match_operand:V2DI 1 "register_operand" "0")

Re: A question on gimplifier

2007-04-14 Thread Paul Brook
On Saturday 14 April 2007 20:32, H. J. Lu wrote: > On Sat, Apr 14, 2007 at 12:23:24PM -0700, Andrew Pinski wrote: > > On 4/14/07, H. J. Lu <[EMAIL PROTECTED]> wrote: > > >__builtin_ia32_vec_set_v2di is > > > > > >v2di __builtin_ia32_vec_set_v2di (v2di, long long, const int) > > > > v2di and m128i a

Re: A question on gimplifier

2007-04-14 Thread H. J. Lu
On Sat, Apr 14, 2007 at 12:23:24PM -0700, Andrew Pinski wrote: > On 4/14/07, H. J. Lu <[EMAIL PROTECTED]> wrote: > > > >__builtin_ia32_vec_set_v2di is > > > >v2di __builtin_ia32_vec_set_v2di (v2di, long long, const int) > > v2di and m128i are the same type except for may_alias which only > matters

Re: A question on gimplifier

2007-04-14 Thread Andrew Pinski
On 4/14/07, H. J. Lu <[EMAIL PROTECTED]> wrote: __builtin_ia32_vec_set_v2di is v2di __builtin_ia32_vec_set_v2di (v2di, long long, const int) v2di and m128i are the same type except for may_alias which only matters when taking its address. --Pinski

Re: A question on gimplifier

2007-04-14 Thread H. J. Lu
On Sat, Apr 14, 2007 at 02:49:47PM -0400, Daniel Jacobowitz wrote: > On Sat, Apr 14, 2007 at 11:28:59AM -0700, H. J. Lu wrote: > > __builtin_ia32_vec_set_v2di will be expanded to > > > > [(set (match_operand:V2DI 0 "register_operand" "=x") > > (vec_merge:V2DI > > (vec_duplicate

Re: A question on gimplifier

2007-04-14 Thread Daniel Jacobowitz
On Sat, Apr 14, 2007 at 11:28:59AM -0700, H. J. Lu wrote: > __builtin_ia32_vec_set_v2di will be expanded to > > [(set (match_operand:V2DI 0 "register_operand" "=x") > (vec_merge:V2DI > (vec_duplicate:V2DI > (match_operand:DI 2 "nonimmediate_operand" "rm")) >

A question on gimplifier

2007-04-14 Thread H. J. Lu
I am working on SSE4.1 intrinsic. For code: typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__)); typedef long long __v2di __attribute__ ((__vector_size__ (16))); extern __m128i res[2]; void foo(long long x, __m128i val) { res[0] = ((__m128i) __builtin_ia32_vec_set_v2