On 02/09/14 16:47, Richard Henderson wrote:
On 09/02/2014 08:34 AM, Kyrill Tkachov wrote:
2014-09-02 Kyrylo Tkachov
* config/aarch64/predicates.md (aarch64_comparison_operation):
New special predicate.
* config/aarch64/aarch64.md (*csinc2_insn): Use
aarch64_comparison_op
On 09/02/2014 08:34 AM, Kyrill Tkachov wrote:
> 2014-09-02 Kyrylo Tkachov
>
> * config/aarch64/predicates.md (aarch64_comparison_operation):
> New special predicate.
> * config/aarch64/aarch64.md (*csinc2_insn): Use
> aarch64_comparison_operation instead of matching an operator.
Hi Richard,
Sorry for the delay.
On 19/08/14 17:09, Richard Henderson wrote:
(define_special_predicate "cc_register_zero"
(match_code "reg")
{
return (REGNO (op) == CC_REGNUM
&& (GET_MODE (op) == CCmode
|| GET_MODE (op) == CC_Zmode
|| GET_MODE (op)
On 19/08/14 17:09, Richard Henderson wrote:
(define_special_predicate "cc_register_zero"
(match_code "reg")
{
return (REGNO (op) == CC_REGNUM
&& (GET_MODE (op) == CCmode
|| GET_MODE (op) == CC_Zmode
|| GET_MODE (op) == CC_NZmode));
})
... and now t
> (define_special_predicate "cc_register_zero"
> (match_code "reg")
> {
> return (REGNO (op) == CC_REGNUM
> && (GET_MODE (op) == CCmode
> || GET_MODE (op) == CC_Zmode
> || GET_MODE (op) == CC_NZmode));
> })
... and now that I read the backend more closely,
On 19/08/14 16:25, Richard Henderson wrote:
On 08/19/2014 06:29 AM, Kyrill Tkachov wrote:
+(define_special_predicate "cc_register_zero"
+ (and (match_code "reg")
+ (and (match_test "REGNO (op) == CC_REGNUM")
+ (ior (match_test "mode == GET_MODE (op)")
+(ior (mat
On 08/19/2014 06:29 AM, Kyrill Tkachov wrote:
> +(define_special_predicate "cc_register_zero"
> + (and (match_code "reg")
> + (and (match_test "REGNO (op) == CC_REGNUM")
> + (ior (match_test "mode == GET_MODE (op)")
> + (ior (match_test "mode == VOIDmode
> +
On 18/08/14 19:52, Richard Henderson wrote:
On 08/18/2014 05:24 AM, Kyrill Tkachov wrote:
-(define_insn "*csinc2_insn"
+(define_insn "*csinc2__insn"
[(set (match_operand:GPI 0 "register_operand" "=r")
(plus:GPI (match_operator:GPI 2 "aarch64_comparison_operator"
-
On 08/18/2014 05:24 AM, Kyrill Tkachov wrote:
> -(define_insn "*csinc2_insn"
> +(define_insn "*csinc2__insn"
>[(set (match_operand:GPI 0 "register_operand" "=r")
> (plus:GPI (match_operator:GPI 2 "aarch64_comparison_operator"
> - [(match_operand:CC 3 "cc_register" "") (co
Hi all,
Currently for code:
int
foo (unsigned a, unsigned b)
{
int r = 0;
r = a & b;
if (a & b)
return ++ r;
return r;
}
we generate:
foo:
andw0, w0, w1
cmpw0, wzr
csincw0, wzr, w0, eq
ret
If we relax the csinc and similar patterns to accept the CC_Z and
10 matches
Mail list logo