on 2019/7/19 上午3:48, Segher Boessenkool wrote:
> On Thu, Jul 18, 2019 at 01:44:36PM +0800, Kewen.Lin wrote:
>> Hi Segher,
>>
>> on 2019/7/17 下午9:40, Segher Boessenkool wrote:
>>> Hi Kewen,
>>>
>>> On Wed, Jul 17, 2019 at 04:32:15PM +0800, Kewen.Lin wrote:
>>>> Regression testing just launched, is it OK for trunk if it's bootstrapped
>>>> and regresstested on powerpc64le-unknown-linux-gnu?
>>>
>>>> +;; Expanders for rotatert to make use of vrotl
>>>> +(define_expand "vrotr<mode>3"
>>>> +  [(set (match_operand:VEC_I 0 "vint_operand")
>>>> +  (rotatert:VEC_I (match_operand:VEC_I 1 "vint_operand")
>>>> +                (match_operand:VEC_I 2 "vint_reg_or_const_vector")))]
>>>
>>> Having any rotatert in a define_expand or define_insn will regress.
>>>
>>> So, nope, sorry.
>>
>> Thanks for clarifying!  Since regression testing passed on powerpc64le,I'd 
>> like to double confirm the meaning of "regress", does it mean it's 
>> a regression from design view?  Is it specific to rotatert and its 
>> related one like vrotr? 
> 
> You will get HAVE_rotatert defined in insn-config.h if you do this patch,
> and then simplify-rtx.c will not work correctly, generating rotatert by
> an immediate, which we have no instructions for.
> 
> This might be masked because many of our rl*.c tests already fail because
> of other changes, I should fix that :-/
> 

Hi Segher,

Thanks for further explanation!  Sorry that, but I didn't find this 
HAVE_rotatert definition.  I guess it's due to the preparation is always 
"DONE"?  Then it doesn't really generate rotatert. 
although I can see rotatert in insn like below, it seems fine in note?

(insn 10 9 11 4 (set (reg:V4SI 122 [ vect__2.7 ])
        (rotate:V4SI (reg:V4SI 121 [ vect__1.6 ])
            (reg:V4SI 124))) "t.c":17:28 1596 {*altivec_vrlw}
     (expr_list:REG_EQUAL (rotatert:V4SI (reg:V4SI 121 [ vect__1.6 ])
            (const_vector:V4SI [
                    (const_int 8 [0x8]) repeated x4
                ]))
        (nil)))


Thanks,
Kewen

Reply via email to