Commit bb276776 by Bin Cheng Committed by Bin Cheng

aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init variable explicitly, also…

aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init variable explicitly, also assert on it before use.

	* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>: Init
	variable explicitly, also assert on it before use.

From-SVN: r239358
parent 183ac6d0
2016-08-11 Bin Cheng <bin.cheng@arm.com>
* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>: Init
variable explicitly, also assert on it before use.
2016-08-11 Richard Biener <rguenther@suse.de> 2016-08-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/72772 PR tree-optimization/72772
......
...@@ -2413,7 +2413,7 @@ ...@@ -2413,7 +2413,7 @@
enum rtx_code code = GET_CODE (operands[1]); enum rtx_code code = GET_CODE (operands[1]);
rtx tmp = gen_reg_rtx (<V_cmp_result>mode); rtx tmp = gen_reg_rtx (<V_cmp_result>mode);
rtx (*comparison) (rtx, rtx, rtx); rtx (*comparison) (rtx, rtx, rtx) = NULL;
switch (code) switch (code)
{ {
...@@ -2495,6 +2495,7 @@ ...@@ -2495,6 +2495,7 @@
a UNLE b -> !(a GT b) a UNLE b -> !(a GT b)
a UNLT b -> !(a GE b) a UNLT b -> !(a GE b)
a NE b -> !(a EQ b) */ a NE b -> !(a EQ b) */
gcc_assert (comparison != NULL);
emit_insn (comparison (operands[0], operands[2], operands[3])); emit_insn (comparison (operands[0], operands[2], operands[3]));
emit_insn (gen_one_cmpl<v_cmp_result>2 (operands[0], operands[0])); emit_insn (gen_one_cmpl<v_cmp_result>2 (operands[0], operands[0]));
break; break;
...@@ -2511,6 +2512,7 @@ ...@@ -2511,6 +2512,7 @@
a LE b -> b GE a a LE b -> b GE a
a LT b -> b GT a a LT b -> b GT a
a EQ b -> a EQ b */ a EQ b -> a EQ b */
gcc_assert (comparison != NULL);
emit_insn (comparison (operands[0], operands[2], operands[3])); emit_insn (comparison (operands[0], operands[2], operands[3]));
break; break;
......
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