+2018-02-06 Michael Collison <michael.collison@arm.com>
+
+ * config/arm/thumb2.md:
+ (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it.
+ (*thumb_mov_notscc): Ditto.
+
2018-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/84154
[(match_operand 2 "cc_register" "") (const_int 0)])))]
"TARGET_THUMB2 && !arm_restrict_it"
"#" ; "ite\\t%D1\;mov%D1\\t%0, #0\;mvn%d1\\t%0, #0"
- "TARGET_THUMB2"
+ "&& true"
[(set (match_dup 0)
(if_then_else:SI (match_dup 1)
(match_dup 3)
[(match_operand 2 "cc_register" "") (const_int 0)])))]
"TARGET_THUMB2 && !arm_restrict_it"
"#" ; "ite\\t%D1\;mvn%D1\\t%0, #0\;mvn%d1\\t%0, #1"
- "TARGET_THUMB2"
+ "&& true"
[(set (match_dup 0)
(if_then_else:SI (match_dup 1)
(match_dup 3)
+2018-02-06 Michael Collison <michael.collison@arm.com>
+
+ * gcc.target/arm/pr7676.c: New testcase for incorrect splitting.
+
2018-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/safe-indirect-jump-1.c: Detect deprecation
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O1 -march=armv8-a -mfloat-abi=soft -mthumb" } */
+/* { dg-skip-if "Do not combine float-abi= hard | soft | softfp" {*-*-*} {"-mfloat-abi=hard" -mfloat-abi=softfp } {""} } */
+int a;
+
+void fn2 (long long);
+
+void
+fn1 ()
+{
+ long long b;
+
+ for (;;)
+ {
+ b = ((a == (int)&fn1) <= 0 ^ 18446744073709551608ULL)
+ - 18446744073709551615ULL;
+
+ fn2 (b);
+ }
+}