Commit 8b5190ab by Alan Lawrence Committed by Alan Lawrence

[AArch64] Add vcond(u?)didi pattern

	* config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
	vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.

From-SVN: r222908
parent 938fb83d
2015-05-08 Alan Lawrence <alan.lawrence@arm.com> 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
* config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
* optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode. * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com> 2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
......
...@@ -2057,13 +2057,13 @@ ...@@ -2057,13 +2057,13 @@
}) })
(define_expand "aarch64_vcond_internal<mode><mode>" (define_expand "aarch64_vcond_internal<mode><mode>"
[(set (match_operand:VDQ_I 0 "register_operand") [(set (match_operand:VSDQ_I_DI 0 "register_operand")
(if_then_else:VDQ_I (if_then_else:VSDQ_I_DI
(match_operator 3 "comparison_operator" (match_operator 3 "comparison_operator"
[(match_operand:VDQ_I 4 "register_operand") [(match_operand:VSDQ_I_DI 4 "register_operand")
(match_operand:VDQ_I 5 "nonmemory_operand")]) (match_operand:VSDQ_I_DI 5 "nonmemory_operand")])
(match_operand:VDQ_I 1 "nonmemory_operand") (match_operand:VSDQ_I_DI 1 "nonmemory_operand")
(match_operand:VDQ_I 2 "nonmemory_operand")))] (match_operand:VSDQ_I_DI 2 "nonmemory_operand")))]
"TARGET_SIMD" "TARGET_SIMD"
{ {
rtx op1 = operands[1]; rtx op1 = operands[1];
...@@ -2365,13 +2365,13 @@ ...@@ -2365,13 +2365,13 @@
}) })
(define_expand "vcond<mode><mode>" (define_expand "vcond<mode><mode>"
[(set (match_operand:VALL 0 "register_operand") [(set (match_operand:VALLDI 0 "register_operand")
(if_then_else:VALL (if_then_else:VALLDI
(match_operator 3 "comparison_operator" (match_operator 3 "comparison_operator"
[(match_operand:VALL 4 "register_operand") [(match_operand:VALLDI 4 "register_operand")
(match_operand:VALL 5 "nonmemory_operand")]) (match_operand:VALLDI 5 "nonmemory_operand")])
(match_operand:VALL 1 "nonmemory_operand") (match_operand:VALLDI 1 "nonmemory_operand")
(match_operand:VALL 2 "nonmemory_operand")))] (match_operand:VALLDI 2 "nonmemory_operand")))]
"TARGET_SIMD" "TARGET_SIMD"
{ {
emit_insn (gen_aarch64_vcond_internal<mode><mode> (operands[0], operands[1], emit_insn (gen_aarch64_vcond_internal<mode><mode> (operands[0], operands[1],
...@@ -2398,13 +2398,13 @@ ...@@ -2398,13 +2398,13 @@
}) })
(define_expand "vcondu<mode><mode>" (define_expand "vcondu<mode><mode>"
[(set (match_operand:VDQ_I 0 "register_operand") [(set (match_operand:VSDQ_I_DI 0 "register_operand")
(if_then_else:VDQ_I (if_then_else:VSDQ_I_DI
(match_operator 3 "comparison_operator" (match_operator 3 "comparison_operator"
[(match_operand:VDQ_I 4 "register_operand") [(match_operand:VSDQ_I_DI 4 "register_operand")
(match_operand:VDQ_I 5 "nonmemory_operand")]) (match_operand:VSDQ_I_DI 5 "nonmemory_operand")])
(match_operand:VDQ_I 1 "nonmemory_operand") (match_operand:VSDQ_I_DI 1 "nonmemory_operand")
(match_operand:VDQ_I 2 "nonmemory_operand")))] (match_operand:VSDQ_I_DI 2 "nonmemory_operand")))]
"TARGET_SIMD" "TARGET_SIMD"
{ {
emit_insn (gen_aarch64_vcond_internal<mode><mode> (operands[0], operands[1], emit_insn (gen_aarch64_vcond_internal<mode><mode> (operands[0], operands[1],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment