On 6/9/21 4:38 PM, Segher Boessenkool wrote:
> It is better if you *do* document the old names, but say "use the new
> stuff", I think? Or is there so little material with the old names
> out there that no one will notice?
The latter. There is only one user, but we want all new uses to use the
new built-in. Plus, LLVM will be removing their documentation for that
built-in too, so we want to be consistent.
>> + /* The ASSEMBLE builtin source operands are reversed in little-endian
>> + mode, so reorder them. */
>> + if (fcode == VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL && !WORDS_BIG_ENDIAN)
>> + pat = GEN_FCN (icode) (op[0], op[2], op[1]);
>> + else
>> + pat = GEN_FCN (icode) (op[0], op[1], op[2]);
>
> I think this reads simpler as
> /* The ASSEMBLE builtin source operands are reversed in little-endian
> mode, so reorder them. */
> if (fcode == VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL && !WORDS_BIG_ENDIAN)
> std::swap (op[1], op[2]);
> pat = GEN_FCN (icode) (op[0], op[1], op[2]);
> do you agree?
Do I think C++ is simpler than plain C? Is this a trick question? ;-)
If this is what you want, I'm fine with it.
> And
> /* The ASSEMBLE builtin source operands are reversed in little-endian
> mode, so reorder them. */
> if (fcode == MMA_BUILTIN_AS> +SEMBLE_ACC_INTERNAL && !WORDS_BIG_ENDIAN)
> {
> std::swap (op[1], [op[4]);
> std::swap (op[2], [op[3]);
> }
> pat = GEN_FCN (icode) (op> +[0], op[1], op[2], op[3], op[4]);
> for that then of course.
Ok.
>> @@ -14151,7 +14161,8 @@ mma_init_builtins (void)
>> if (gimple_func && mode == XOmode)
>> op[nopnds++] = build_pointer_type (vector_quad_type_node);
>> else if (gimple_func && mode == OOmode
>
> Pleae write the
> && mode == OOmode
> on a new line as well then?
Will do.
>> + int index = WORDS_BIG_ENDIAN ? i: nvecs - 1 - i;
>
> Space before colon.
Ah, thanks for catching that!
> Okay for trunk and 11 with at least that space fixed. Thanks!
Ok, I'll retest with the above (but still removing the assemble
built-in documentation) and push it if it's clean. Thanks!
Peter