On 6 January 2011 16:14, Ian Lance Taylor <i...@google.com> wrote:
> Frederic Riss <frederic.r...@gmail.com> writes:
>> I managed to get thinks going by constraining MODES_TIEABLE_P and
>> adding 2 patterns of the form:
>>
>>  [(set (subreg:SI (match_operand:DF 0 "register_operand" "=r") 0)
>>        (match_operand 1 "immediate_operand" "i"))]
>> and
>>  [(set (subreg:SI (match_operand:DF 0 "register_operand" "=r") 4)
>>        (match_operand 1 "immediate_operand" "i"))]
>
> These kinds of things should not normally require explicit patterns,
> they should be recognized by your movsi or supporting insns.  Could you
> be failing to accept subregs in your movsi predicate?
I use nonimmediate_operand as a movsi destination predicate. I think
this is pretty standard. But if I follow the code in
recog.c:general_operand, I can see that it will reject (subreg (subreg
...)) which my initial pattern is. So yes, my movsi destination
predicate will reject the initial pattern, but I'm not sure making it
more general is desirable. Isn't the real issue that this pattern gets
generated then?

Fred

Reply via email to