On 05/07/2019 16:12, Richard Sandiford wrote:
This patch is part of a series that fixes ambiguous attribute
uses in .md files, i.e. cases in which attributes didn't use
<ITER:ATTR> to specify an iterator, and in which <ATTR> could
have different values depending on the iterator chosen.

I think this is a genuine bugfix for the case in which the 1REG_MODE
and 1REG_ALT are different, since previously we would use the 1REG_MODE
for both the comparison and the select, even though the operands being
compared are 1REG_ALT rather than 1REG_MODE.


2019-07-05  Richard Sandiford  <richard.sandif...@arm.com>

gcc/
        * config/gcn/gcn-valu.md
        (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
        gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
        gen_vec_cmp<VEC_1REG_MODE:mode>di.  Explicitly use
        gen_vcond_mask_<VEC_1REG_MODE:mode>di.
        (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
        but using the _exec comparison patterns.
        (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
        gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
        gen_vec_cmp<VEC_1REG_INT_MODE:mode>di.  Explicitly use
        gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
        (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
        but using the _exec comparison patterns.

This seems logically correct to me.

Thanks Richard.

Andrew

Reply via email to