This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: sse hates me
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 20 Dec 2004 10:57:13 +0100
- Subject: Re: sse hates me
- References: <20041219081711.GA13057@redhat.com>
> So the other day I fixed the predicates for the SSE and MMX patterns, but
> I failed to fix the constraints. I left some of the alternatives as 'Y',
> which is SSE2 only, when they should have been 'x', which is SSE1.
Am I right in thinking that the 3.4 branch is still in broken state wrt to
this problem? AFAICS you backported some chunks of your initial mainline
patch to the branch:
2004-12-19 Richard Henderson <rth@redhat.com>
* config/i386/i386.c (ix86_hard_regno_mode_ok): Always accept all SSE,
MMX, 3DNOW modes in SSE registers; always accept all MMX, 3DNOW modes
in MMX registers.
* config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include
VALID_MMX_REG_MODE.
* config/i386/i386.md (movv4sf_internal, movv4si_internal,
movv2di_internal, movv2si_internal, movv4hi_internal,
movv2sf_internal, movv2df_internal, movv8hi_internal,
movv16qi_internal, movti_internal): Add leading '*' to name.
(movv2di_internal, movv2df_internal, movv8hi_internal,
movv16qi_internal, movv2df, movv8hi, movv16qi, movv2di,
pushv2di, pushv8hi, pushv16qi): Enable for SSE1.
(movv2si_internal, movv4hi_internal): Add SSE alternatives.
(movv8qi_internal, movv2sf_internal): Likewise.
(movtf): Simplify conditional.
(movv2sf, pushv2sf): Enable for MMX.
but not the follow-up patch. Can I ask you again why you backported it?
AFAICS the reason was your patch for PR target/19010, but it is not clear at
all that this PR was a regression.
And note that we now have a SSE-related failure on x86 on that branch:
FAIL: gcc.dg/20020218-1.c (test for excess errors)
ERROR: gcc.dg/20020218-1.c: error executing dg-final: couldn't open
"20020218-1.s": no such file or directory
UNRESOLVED: gcc.dg/20020218-1.c: error executing dg-final: couldn't open
"20020218-1.s": no such file or directory
20020218-1.c: In function `foo':
20020218-1.c:22: error: insn does not satisfy its constraints:
(insn 79 49 80 0 (set (mem:DI (plus:SI (reg/f:SI 6 bp)
(const_int -160 [0xffffffffffffff60])) [0 S8 A8])
(reg:DI 21 xmm0)) 82 {*movdi_2} (nil)
(nil))
20020218-1.c:22: internal compiler error: in reload_cse_simplify_operands, at
postreload.c:391
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
--
Eric Botcazou