wide volatile memory by parts.
* gcc.c-torture/compile/
20020304-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50314
138bc75d-0d04-0410-961f-
82ee72b054a4
2002-03-05 Jakub Jelinek <jakub@redhat.com>
+ * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
+ wide volatile memory by parts.
+
+2002-03-05 Jakub Jelinek <jakub@redhat.com>
+
* ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
is NULL.
the comparison into one involving a single word. */
if (GET_MODE_BITSIZE (mode) == BITS_PER_WORD * 2
&& GET_MODE_CLASS (mode) == MODE_INT
- && op1 == const0_rtx)
+ && op1 == const0_rtx
+ && (GET_CODE (op0) != MEM || ! MEM_VOLATILE_P (op0)))
{
if (code == EQ || code == NE)
{
* gcc.dg/20020304-1.c: New test.
+ * gcc.c-torture/compile/20020304-2.c: New test.
+
2002-03-04 Zack Weinberg <zack@codesourcery.com>
* gcc.c-torture/compile/20020304-1.c: New test case
--- /dev/null
+/* This testcase ICEd because a SUBREG of MEM/v was never
+ simplified. */
+volatile unsigned long long *a;
+
+unsigned char
+foo (void)
+{
+ unsigned char b = (*a != 0);
+ return b;
+}