On 09/28/2011 07:34 AM, Nick Clifton wrote:
> -(define_insn "smaxsi3"
> -  [(set (match_operand:SI          0 "register_operand" "=r,r,r,r,r,r")
> -     (smax:SI (match_operand:SI 1 "register_operand" "%0,0,0,0,0,0")
> -              (match_operand:SI 2 "rx_source_operand"
> -                                "r,Sint08,Sint16,Sint24,i,Q")))]
> +(define_insn "smax<int_modes:mode>3"
> +  [(set (match_operand:int_modes                 0 "register_operand" 
> "=r,r,r,r,r,r")
> +     (smax:int_modes (match_operand:int_modes 1 "register_operand" 
> "%0,0,0,0,0,0")
> +                     (match_operand:int_modes 2 "rx_source_operand"
> +                                              
> "r,Sint08,Sint16,Sint24,i,Q")))]
>    ""
>    "max\t%Q2, %0"

Huh?  This doesn't work for HI or QImode.  You need to sign-extend them first
to get rid of (potential) garbage in the high bits of the register.

At least, there's no .W or .B specifiers in the document I have; only .L.


r~

Reply via email to