On 07/02/2018 04:55 AM, Richard Sandiford wrote:
>> +;; Predicated floating-point operations with select matching output.
>> +(define_insn "*cond_<optab><mode>_0"
>> +  [(set (match_operand:SVE_F 0 "register_operand" "+w, w, ?&w")
>>      (unspec:SVE_F
>> -      [(match_operand:<VPRED> 1 "register_operand" "Upl")
>> +      [(match_operand:<VPRED> 1 "register_operand" "Upl, Upl, Upl")
>>         (unspec:SVE_F
>> -         [(match_operand:SVE_F 2 "register_operand" "0")
>> -          (match_operand:SVE_F 3 "register_operand" "w")]
>> +         [(match_dup 1)
>> +          (match_operand:SVE_F 2 "register_operand" "0, w, w")
>> +          (match_operand:SVE_F 3 "register_operand" "w, 0, w")]
>> +         SVE_COND_FP_BINARY)
>> +       (match_dup 0)]
>> +      UNSPEC_SEL))]
>> +  "TARGET_SVE"
>> +  "@
>> +   <sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, %3.<Vetype>
>> +   <sve_fp_op_rev>\t%0.<Vetype>, %1/m, %0.<Vetype>, %2.<Vetype>
>> +   movprfx\t%0, %1/m, %2\;<sve_fp_op>\t%0.<Vetype>, %1/m, %0.<Vetype>, 
>> %3.<Vetype>"
>> +  [(set_attr "movprfx" "*,*,yes")]
>> +)
> 
> Reintroduces a (match_dup 1) into the SVE_COND_FP_BINARY.
> 
> OK otherwise, thanks.

Feh, and fixed again in patch 4.
I've squashed all 4 patches for final commit,
so the intermediate breakage is gone.

Thanks for the review.


r~

Reply via email to