target/7321: ice on vectors with -O3 and -m3dnow

Andrew Pinski pinskia@physics.uc.edu
Mon Jan 13 05:17:00 GMT 2003


This was reported when 3.3 was 3.2, also it still fails with -O3  
-m3dnow on `3.4 20030110 (experimental)', remember the -O3.

And yes it starts at the typedef.

Error message from 3.4:
vector.c: In function `tempf':
vector.c:20: error: unable to find a register to spill in class  
`FLOAT_REGS'
vector.c:20: error: this is the insn:
(insn:HI 29 27 30 0 0x400473f4 (set (reg:SF 8 st(0) [70])
         (minus:SF (subreg:SF (reg/v:DI 30 rmm1 [66]) 0)
             (subreg:SF (reg/v:DI 30 rmm1 [66]) 4))) 406  
{*fop_sf_1_nosse} (insn_list 24 (nil))
     (expr_list:REG_EQUIV (mem:SF (reg/v/f:SI 2 ecx [60]) [3 S4 A32])
         (expr_list:REG_DEAD (reg/v:DI 30 rmm1 [66])
             (nil))))
vector.c:20: internal compiler error: in spill_failure, at  
reload1.c:1924

Error Message from 3.3 20021216 (experimental) (i686-pc-linux-gnu):
vector.c: In function `tempf':
vector.c:20: error: unable to find a register to spill in class  
`FLOAT_REGS'
vector.c:20: error: this is the insn:
(insn:HI 29 27 30 0 0x4004b2ec (set (reg:SF 8 st(0) [70])
         (minus:SF (subreg:SF (reg/v:DI 30 rmm1 [66]) 0)
             (subreg:SF (reg/v:DI 30 rmm1 [66]) 4))) 398  
{*fop_sf_1_nosse} (insn_list 24 (nil))
     (expr_list:REG_EQUIV (mem:SF (reg/v/f:SI 2 ecx [60]) [3 S4 A32])
         (expr_list:REG_DEAD (reg/v:DI 30 rmm1 [66])
             (nil))))
vector.c:20: internal compiler error: in spill_failure, at  
reload1.c:1920

It even fails on -O1 with the same error message.

Thanks,
Andrew Pinski

On Friday, Jan 10, 2003, at 17:04 US/Pacific, bangerth@dealii.org wrote:

> Synopsis: ice on vectors with -O3 and -m3dnow
>
> State-Changed-From-To: open->feedback
> State-Changed-By: bangerth
> State-Changed-When: Fri Jan 10 17:04:59 2003
> State-Changed-Why:
>     The testcase seems to have gotton somehow truncated. Does it
>     start at the typedef in the middle of the field? I can't
>     compile this with gcc3.2.x with this message:
>     tmp/g> /home/bangerth/bin/gcc-3.2.2-pre/bin/gcc -c x.c -m3dnow
>     x.c: In function `tempf':
>     x.c:16: invalid operands to binary *
>     x.c:17: invalid operands to binary *
>
>     However, it works cleanly with 3.3 and 3.4.
>
>     Thanks
>       Wolfgang
>
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit- 
> trail&database=gcc&pr=7321
>



More information about the Gcc-bugs mailing list