aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init variable explicitly, also assert...
authorBin Cheng <bin.cheng@arm.com>
Thu, 11 Aug 2016 10:01:03 +0000 (10:01 +0000)
committerBin Cheng <amker@gcc.gnu.org>
Thu, 11 Aug 2016 10:01:03 +0000 (10:01 +0000)
* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>: Init
variable explicitly, also assert on it before use.

From-SVN: r239358

gcc/ChangeLog
gcc/config/aarch64/aarch64-simd.md

index 4984f50d51d46f0ec550991295b906e8d50209fd..5c618dce549b04919e759595ea4084d4f4cd0438 100644 (file)
@@ -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
index 37d397c33d6353de5ed8aba6184e3d26b83c9ea6..3817895b6ee45f85f7fefc95b8e679c58746c276 100644 (file)
   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)
     {
         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;
         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;