2020-01-26 Jakub Jelinek <jakub@redhat.com>
+ PR target/93412
+ * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword):
+ Use nonimmediate_operand instead of x86_64_hilo_general_operand and
+ drop <di> from constraint of last operand.
+
PR target/93430
* config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for
TARGET_AVX2 and V4DFmode not in the split condition, but in the
(sign_extend:<QPWI>
(match_operand:<DWI> 1 "nonimmediate_operand" "%0,0"))
(sign_extend:<QPWI>
- (match_operand:<DWI> 2 "x86_64_hilo_general_operand" "r<di>,o")))
+ (match_operand:<DWI> 2 "nonimmediate_operand" "r,o")))
(sign_extend:<QPWI>
(plus:<DWI> (match_dup 1) (match_dup 2)))))
(set (match_operand:<DWI> 0 "nonimmediate_operand" "=ro,r")
(sign_extend:<QPWI>
(match_operand:<DWI> 1 "nonimmediate_operand" "0,0"))
(sign_extend:<QPWI>
- (match_operand:<DWI> 2 "x86_64_hilo_general_operand" "r<di>,o")))
+ (match_operand:<DWI> 2 "nonimmediate_operand" "r,o")))
(sign_extend:<QPWI>
(minus:<DWI> (match_dup 1) (match_dup 2)))))
(set (match_operand:<DWI> 0 "nonimmediate_operand" "=ro,r")
2020-01-26 Jakub Jelinek <jakub@redhat.com>
+ PR target/93412
+ * gcc.dg/pr93412.c: New test.
+
PR target/93430
* gcc.dg/pr93430.c: New test.
* gcc.target/i386/avx2-pr93430.c: New test.
--- /dev/null
+/* PR target/93412 */
+/* { dg-do compile { target int128 } } */
+/* { dg-options "-Og" } */
+
+unsigned char a;
+int b;
+unsigned c;
+
+int
+foo (int e, int f, int g, int h, int k, int i, short j)
+{
+ b = __builtin_add_overflow (a, 0, &c);
+ b = __builtin_add_overflow_p (b, a, (unsigned __int128) 0) ? b : 0;
+ return e + f + g + a + h + k + i + j + c;
+}