[Bug target/32191] ICE with complex __float128

2007-06-04 Thread ubizjak at gmail dot com
--- Comment #8 from ubizjak at gmail dot com 2007-06-04 12:27 --- A bit of debugging leads to following findings: build_common_builtin_nodes() defines supported complex mul/div functions depending on lang_hooks.types.type_for_mode(). This langhook defaults to c_common_type_for_mode().

[Bug target/32191] ICE with complex __float128

2007-06-03 Thread ubizjak at gmail dot com
--- Comment #7 from ubizjak at gmail dot com 2007-06-03 16:32 --- These missing complex types should probably be defined in i386.c (line 17710), alongside __float128 and __float80 definitions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32191

[Bug target/32191] ICE with complex __float128

2007-06-03 Thread fxcoudert at gcc dot gnu dot org
--- Comment #6 from fxcoudert at gcc dot gnu dot org 2007-06-03 13:45 --- (In reply to comment #3) > fndecl is already NULL there. > >> #1 0x0068d0bd in expand_complex_libcall (bsi=0x7fbfffed20, In tree.c, at line 7225, we define the builtins for complex multiplication:

[Bug target/32191] ICE with complex __float128

2007-06-03 Thread fxcoudert at gcc dot gnu dot org
--- Comment #5 from fxcoudert at gcc dot gnu dot org 2007-06-03 11:42 --- (In reply to comment #4) > c128 foo (c128 x, c128 y) > { > typedef _Complex float __attribute__((mode(TC))) c128; > x *= y; > return x; > } > > This will most likely also crash at higher optimization levels

[Bug target/32191] ICE with complex __float128

2007-06-03 Thread fxcoudert at gcc dot gnu dot org
-- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last recon

[Bug target/32191] ICE with complex __float128

2007-06-03 Thread pinskia at gcc dot gnu dot org
--- Comment #4 from pinskia at gcc dot gnu dot org 2007-06-03 07:00 --- Try compiling: c128 foo (c128 x, c128 y) { typedef _Complex float __attribute__((mode(TC))) c128; x *= y; return x; } This will most likely also crash at higher optimization levels. -- http://gcc.gnu.org

[Bug target/32191] ICE with complex __float128

2007-06-02 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2007-06-03 06:42 --- (In reply to comment #2) > #0 build_call_expr (fndecl=0x0, n=4) at ../../trunk/gcc/builtins.c:10379 fndecl is already NULL there. > #1 0x0068d0bd in expand_complex_libcall (bsi=0x7fbfffed20, There is a pack

[Bug target/32191] ICE with complex __float128

2007-06-02 Thread fxcoudert at gcc dot gnu dot org
--- Comment #2 from fxcoudert at gcc dot gnu dot org 2007-06-02 21:10 --- (In reply to comment #1) > typedef _Complex float __attribute__((mode(TC))) c128; > c128 g(void); > void foo () > { > c128 x, y; > x = g(); > } Nope. That one doesn't ICE. The backtrace for the ICE my code in

[Bug target/32191] ICE with complex __float128

2007-06-02 Thread pinskia at gcc dot gnu dot org
--- Comment #1 from pinskia at gcc dot gnu dot org 2007-06-02 21:06 --- This works for me with powerpc64-linux-gnu which has a TCmode. I think the reason why it is only triggered with -std=c99/-std=gnu99 is because __multc3 is only called then. __multc3 returns a TCmode. So you most li