http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57717
Bug ID: 57717 Summary: error: unrecognizable insn compiling ./strtod_l.c from glibc on powerpc-gnuspe Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: raj.khem at gmail dot com Created attachment 30363 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30363&action=edit testcase The attached testcase fails causes a gcc ICE when building for gnuspe targets where -mfloat-gprs=double is used -mfloat-gprs=single works fine $ ./gcc/cc1 ~/a.c -mfloat-gprs=double __bswap_32 __bswap_64 atoi atol atoll gnu_dev_major gnu_dev_minor gnu_dev_makedev __libc_use_alloca atof stat lstat fstat fstatat mknod mknodat stat64 lstat64 fstat64 fstatat64 __stat __mknod btowc wctob mbrlen __sigismember __sigaddset __sigdelset pthread_equal __cmsg_nxthdr __ctype_b_loc __ctype_toupper_loc __ctype_tolower_loc tolower toupper __strcspn_c1 __strcspn_c2 __strcspn_c3 __strspn_c1 __strspn_c2 __strspn_c3 __strpbrk_c2 __strpbrk_c3 __strtok_r_1c __strsep_1c __strsep_2c __strsep_3c get_rounding_mode round_away __mpn_add_1 __mpn_add __mpn_sub_1 __mpn_sub overflow_value underflow_value round_and_return str_to_mpn __mpn_lshift_1 ____strtold_l_internal ____new_strtold_l ldbl_extract_mantissa ldbl_insert_mantissa ldbl_pack ldbl_unpack ldbl_canonicalize ldbl_nearbyint __copysign __copysignf __copysignl default_libc_feholdexcept default_libc_fesetround default_libc_feholdexcept_setround default_libc_fesetenv default_libc_feupdateenv default_libc_feupdateenv_test Analyzing compilation unit {GC 5330k -> 3381k}Performing interprocedural optimizations <*free_lang_data> <visibility> <early_local_cleanups> <*free_inline_summary> <emutls> <whole-program>Assembling functions: get_rounding_mode round_away overflow_value underflow_value round_and_return str_to_mpn {GC 5341k -> 4033k} ____strtold_l_internal In file included from ../sysdeps/ieee754/ldbl-128ibm/strtold_l.c:54:0: ./strtod_l.c: In function '____strtold_l_internal': ./strtod_l.c:1778:1: error: unrecognizable insn: (insn 6071 6070 1650 234 (set (reg:TI 4 4) (mem/c:TI (plus:SI (reg:SI 5 5) (const_int 2032 [0x7f0])) [0 %sfp+2032 S16 A128])) ./strtod_l.c:1002 -1 (nil)) ./strtod_l.c:1778:1: internal compiler error: in extract_insn, at recog.c:2158 0x7ec4c5 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:109 0x7ec4f9 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:117 0x7bf4c3 extract_insn(rtx_def*) ../../gcc/gcc/recog.c:2158 0x7bf534 extract_insn_cached(rtx_def*) ../../gcc/gcc/recog.c:2061 0x61f0a6 cleanup_subreg_operands(rtx_def*) ../../gcc/gcc/final.c:2998 0x7eb7b6 reload(rtx_def*, int) ../../gcc/gcc/reload1.c:1240 0x70637b do_reload ../../gcc/gcc/ira.c:4701 0x70637b rest_of_handle_reload ../../gcc/gcc/ira.c:4801 This has been seen on trunk and 4.8 branch works ok on 4.7 and below