* config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
sequences.
+2015-10-02 Renlin Li <renlin.li@arm.com>
+
+ * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
+
2015-10-02 Renlin Li <renlin.li@arm.com>
PR target/66776
[(set_attr "type" "csel")]
)
+(define_insn "csneg3_uxtw_insn"
+ [(set (match_operand:DI 0 "register_operand" "=r")
+ (zero_extend:DI
+ (if_then_else:SI
+ (match_operand 1 "aarch64_comparison_operation" "")
+ (neg:SI (match_operand:SI 2 "register_operand" "r"))
+ (match_operand:SI 3 "aarch64_reg_or_zero" "rZ"))))]
+ ""
+ "csneg\\t%w0, %w3, %w2, %M1"
+ [(set_attr "type" "csel")]
+)
+
(define_insn "csneg3<mode>_insn"
[(set (match_operand:GPI 0 "register_operand" "=r")
(if_then_else:GPI
x = -x;
return x;
}
+
+unsigned long long
+test_csneg_uxtw (unsigned int a,
+ unsigned int b,
+ unsigned int c)
+{
+ /* { dg-final { scan-assembler "csneg\tw\[0-9\]*.*ne" } } */
+ /* { dg-final { scan-assembler-not "uxtw\tw\[0-9\]*.*" } } */
+ unsigned int val;
+ val = a ? b: -c;
+ return val;
+}