aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Cheng <bin.cheng@arm.com>2016-08-11 10:01:03 +0000
committerBin Cheng <amker@gcc.gnu.org>2016-08-11 10:01:03 +0000
commitbb2767763e5c1c2ad2846c4c48aff4c7b00f2f4e (patch)
tree28d734dd2b5c0982616367534fb0a714a98fb21b
parent183ac6d0d295cedffd0e7971151008e9a411f345 (diff)
downloadgcc-bb2767763e5c1c2ad2846c4c48aff4c7b00f2f4e.zip
gcc-bb2767763e5c1c2ad2846c4c48aff4c7b00f2f4e.tar.gz
gcc-bb2767763e5c1c2ad2846c4c48aff4c7b00f2f4e.tar.bz2
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/aarch64/aarch64-simd.md4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4984f50..5c618dc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+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>
PR tree-optimization/72772
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index 37d397c..3817895 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -2413,7 +2413,7 @@
enum rtx_code code = GET_CODE (operands[1]);
rtx tmp = gen_reg_rtx (<V_cmp_result>mode);
- rtx (*comparison) (rtx, rtx, rtx);
+ rtx (*comparison) (rtx, rtx, rtx) = NULL;
switch (code)
{
@@ -2495,6 +2495,7 @@
a UNLE b -> !(a GT b)
a UNLT b -> !(a GE b)
a NE b -> !(a EQ b) */
+ gcc_assert (comparison != NULL);
emit_insn (comparison (operands[0], operands[2], operands[3]));
emit_insn (gen_one_cmpl<v_cmp_result>2 (operands[0], operands[0]));
break;
@@ -2511,6 +2512,7 @@
a LE b -> b GE a
a LT b -> b GT a
a EQ b -> a EQ b */
+ gcc_assert (comparison != NULL);
emit_insn (comparison (operands[0], operands[2], operands[3]));
break;