This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/37809] [4.2/4.3/4.4 Regression] Incorrect code with MMX right shift __builtin_ia32_psradi
- From: "suckfish at ihug dot co dot nz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Oct 2008 22:18:56 -0000
- Subject: [Bug middle-end/37809] [4.2/4.3/4.4 Regression] Incorrect code with MMX right shift __builtin_ia32_psradi
- References: <bug-37809-2018@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from suckfish at ihug dot co dot nz 2008-10-17 22:18 -------
Pleasantly, my fears that this was just the tip of the iceburg seems to be
wrong. Writing some test cases, found another bug involving a shift, and also
the ICE below [fixed by some combination of change above and 38707 fix.]
Will fix the remaining case & post patches to gcc-patches list.
#include <mmintrin.h>
typedef int v2si __attribute__ ((vector_size (8)));
v2si shiftU (v2si y)
{
return _m_psrldi (_m_psrldi (y, 0), 0);
}
$ gcc -O shift2.c
shift2.c: In function ?shiftU?:
shift2.c:6: internal compiler error: in trunc_int_for_mode, at explow.c:55
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/cckqI2oC.out file, please attach this to
your bugreport.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37809