Commit 5f133038 by Kaz Kojima

sh.c (expand_cbranchdi4): Set msw_skip when the high part of the second operand is 0.

	* config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
	part of the second operand is 0.
	* gcc.c-torture/execute/pr49186.c: New.

From-SVN: r174456
parent 283e624c
2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/49186
* config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
part of the second operand is 0.
2011-05-30 Uros Bizjak <ubizjak@gmail.com> 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
......
...@@ -2143,7 +2143,10 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison) ...@@ -2143,7 +2143,10 @@ expand_cbranchdi4 (rtx *operands, enum rtx_code comparison)
else if (op2h != CONST0_RTX (SImode)) else if (op2h != CONST0_RTX (SImode))
msw_taken = LTU; msw_taken = LTU;
else else
break; {
msw_skip = swap_condition (LTU);
break;
}
msw_skip = swap_condition (msw_taken); msw_skip = swap_condition (msw_taken);
} }
break; break;
......
2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/49186
* gcc.c-torture/execute/pr49186.c: New.
2011-05-30 H.J. Lu <hongjiu.lu@intel.com> 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
PR target/49168 PR target/49168
......
/* PR target/49186 */
extern void abort (void);
int
main ()
{
int x;
unsigned long long uv = 0x1000000001ULL;
x = (uv < 0x80) ? 1 : ((uv < 0x800) ? 2 : 3);
if (x != 3)
abort ();
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment