diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f9ba7519f125..06b06ab68de7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2020-03-25 Jakub Jelinek + + PR target/94292 + * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to + mode rather than VOIDmode. + 2020-03-25 Martin Sebor PR middle-end/94004 diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 9b799084d440..d5207e0d8f07 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -15763,7 +15763,7 @@ arm_gen_dicompare_reg (rtx_code code, rtx x, rtx y, rtx scratch) cc_reg = gen_rtx_REG (mode, CC_REGNUM); emit_insn (gen_rtx_SET (cc_reg, - gen_rtx_COMPARE (VOIDmode, conjunction, + gen_rtx_COMPARE (mode, conjunction, const0_rtx))); return cc_reg; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 855edb686fbc..fe8460c76647 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-03-25 Jakub Jelinek + + PR target/94292 + * gcc.dg/pr94292.c: New test. + 2020-03-25 Martin Sebor PR middle-end/94004 diff --git a/gcc/testsuite/gcc.dg/pr94292.c b/gcc/testsuite/gcc.dg/pr94292.c new file mode 100644 index 000000000000..dd2a29c066f3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr94292.c @@ -0,0 +1,13 @@ +/* PR target/94292 */ +/* { dg-do compile } */ +/* { dg-options "-O1 -g -fno-tree-dce" } */ + +unsigned short a; +unsigned long long b; + +long long +foo (int d) +{ + d >>= a != (unsigned long long) -a; + return a + b; +}