CDImode in reg

Aurelien Buhrig aurelien.buhrig.gcc@gmail.com
Tue Oct 4 09:33:00 GMT 2011


Hi,

I'm trying to get the gcc testsuite passing for my new target port.
The last ICE deals with complex long long (gcc.c-torture/compile/20000804-1.c).
My target has 16-bit wide int, and regs can hold DImode max.

code:

  __complex__ long long v;
  asm("": "+r" (v) : "r" (0), "r" (1));

Is such the testcase an expected fail or not ?
Operations on complex are often split into DI operations. But the
target cannot hold a whole CDI into one register, but could hold 2 DI
into 2 distinct DI regs.

If it is an xfail, is there a way handle such a case at higher level
to prevent an ICE and generate a more user friendly error message ?

If it is a fail, I have no idea how to fix this (pb with
init_move_cost(CDImode), with a gcc_assert
(have_regs_of_mode[CDImode]))

Thanks,
Aurélien



More information about the Gcc-help mailing list