Re: VIS2 pattern review

2011-10-13 Thread Eric Botcazou
> Right and as Richard said I can munge the modes during expansion of > existing builtins when needed. OK, but you precisely shouldn't need to do it since the type is fixed. -- Eric Botcazou

Re: VIS2 pattern review

2011-10-13 Thread David Miller
From: Eric Botcazou Date: Fri, 14 Oct 2011 00:41:42 +0200 >> Unfortunately, that would involve some ABI changes for the VIS >> builtins. I'm trending towards considering just changing things >> anyways since the VIS intrinsics were next to unusable beforehand. > > Could you elaborate? The call

Re: VIS2 pattern review

2011-10-13 Thread Eric Botcazou
> Unfortunately, that would involve some ABI changes for the VIS > builtins. I'm trending towards considering just changing things > anyways since the VIS intrinsics were next to unusable beforehand. Could you elaborate? The calling conventions for vectors (like for the other classes) shouldn't

Re: VIS2 pattern review

2011-10-13 Thread David Miller
From: Richard Henderson Date: Thu, 13 Oct 2011 13:06:19 -0700 > On 10/13/2011 12:55 PM, David Miller wrote: >> -(define_insn "_vis" >> +(define_insn "" > > Missing a "3" on the end. Otherwise these look ok. Thanks for finding that. >> Unfortunately, that would involve some ABI changes for the

Re: VIS2 pattern review

2011-10-13 Thread Richard Henderson
On 10/13/2011 12:55 PM, David Miller wrote: > -(define_insn "_vis" > +(define_insn "" Missing a "3" on the end. Otherwise these look ok. > Unfortunately, that would involve some ABI changes for the VIS > builtins. I'm trending towards considering just changing things > anyways since the VIS int

Re: VIS2 pattern review

2011-10-13 Thread David Miller
From: Richard Henderson Date: Wed, 12 Oct 2011 17:49:19 -0700 > The comment for fpmerge_vis is not correct. > I believe that the operation is representable with > > (vec_select:V8QI > (vec_concat:V8QI > (match_operand:V4QI 1 ...) > (match_operand:V4QI 2 ...) > (parallel [ >

Re: VIS2 pattern review

2011-10-13 Thread Richard Henderson
On 10/13/2011 11:26 AM, David Miller wrote: > Therefore, I think this "16 x 16 multiply" operation isn't the kind > you think it is, and it's therefore not appropriate to use this in the > compiler for vector multiplies. Ah, I see the magic word in the docs now: "fixed point". I.e. class MODE_ACCU

Re: VIS2 pattern review

2011-10-13 Thread David Miller
From: David Miller Date: Thu, 13 Oct 2011 14:26:36 -0400 (EDT) > product = src1 * src2; > > scaled = (product & 0x0000) >> 8; > if (product & 0x80) > scaled++; In fact, all of the partitioned multiply instructions scale the result by 8 bits with rounding towa

Re: VIS2 pattern review

2011-10-13 Thread David Miller
From: Richard Henderson Date: Wed, 12 Oct 2011 17:49:19 -0700 > There's a code sample 7-1 that illustrates a 16x16 multiply: > > fmul8sux16 %f0, %f1, %f2 > fmul8ulx16 %f0, %f1, %f3 > fpadd16%f2, %f3, %f4 Be wary of code examples that don't even assemble (even numbered floa