Re: [Patch ARM] Improve vdup_n intrinsics.

2012-07-06 Thread Ramana Radhakrishnan
On 27 June 2012 21:27, Richard Henderson wrote: > On 06/20/2012 05:44 AM, Ramana Radhakrishnan wrote: >> + case NEON_DUP: >> + if (TREE_CODE (argp[0]) == INTEGER_CST >> + || TREE_CODE (argp[0]) == REAL_CST) >> + return build_vector_from_val (result_type,

Re: [Patch ARM] Improve vdup_n intrinsics.

2012-06-27 Thread Ramana Radhakrishnan
On 27 June 2012 21:27, Richard Henderson wrote: > On 06/20/2012 05:44 AM, Ramana Radhakrishnan wrote: >> +         case NEON_DUP: >> +           if (TREE_CODE (argp[0]) == INTEGER_CST >> +               || TREE_CODE (argp[0]) == REAL_CST) >> +             return build_vector_from_val (result_type,

Re: [Patch ARM] Improve vdup_n intrinsics.

2012-06-27 Thread Richard Henderson
On 06/20/2012 05:44 AM, Ramana Radhakrishnan wrote: > + case NEON_DUP: > + if (TREE_CODE (argp[0]) == INTEGER_CST > + || TREE_CODE (argp[0]) == REAL_CST) > + return build_vector_from_val (result_type, argp[0]); > + return NULL_TREE; You can exp

[Patch ARM] Improve vdup_n intrinsics.

2012-06-20 Thread Ramana Radhakrishnan
Hi , This improves the vdup_n intrinsics where one tries to form constant vectors. This uses targetm.fold_builtin to fold these vector initializations to actual vector constants. The vdup_n cases are fine with both endian-ness as the vector constant is just duplicated. In addition I've made the *n