On 2022/1/11 06:55, David Edelsohn wrote:
>>> +(define_insn_and_split "sldoi_to_mov_<mode>"
> It would be more consistent with the naming convention to use
> "sldoi_to_mov<mode>" without the final "_".

OK, thanks.

> 
>>> +  [(set (match_operand:VM 0 "altivec_register_operand")
>>> +     (unspec:VM [(match_operand:VM 1 "easy_vector_constant")
> Should this be "easy_vector_constant_vsldoi"?


This doesn't work. easy_vector_constant_vsldoi return false due to
vspltis_shifted "return 0" as:

vspltis_shifted (rtx op):     /* If all elements are equal, we don't need to do 
VSLDOI.  */

 
(gdb) p op
$7 = (rtx_def *) (const_vector:V4SI [
        (const_int 0 [0]) repeated x4
    ])
(gdb) p easy_vector_constant_vsldoi(op, V4SImode)
$8 = false
p easy_vector_constant(op, V4SImode)
$9 = true

> 
>>> +                 (match_dup 1)
>>> +                 (match_operand:VM 2 "u5bit_cint_operand")]
> This should be match_operand:QI, right?

Yes. 

> 
> Thanks, David
> 

-- 
Thanks,
Xionghu

Reply via email to