https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87496
Peter Bergner <bergner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bergner at gcc dot gnu.org, | |meissner at gcc dot gnu.org --- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> --- Here's a much smaller C test case. It seems we try and convert the SFmode var into a KFmode var before converting it to an integer?!?! Mike, does this look familiar to you? Should KFmode even be supported if we've disabled popcntd? bergner@pike:~/gcc/BUGS/PR87496$ cat pr87496.c unsigned long foo (float f) { return f; } bergner@pike:~/gcc/BUGS/PR87496$ /home/bergner/gcc/build/gcc-fsf-mainline-pr87496-debug/gcc/xgcc -B/home/bergner/gcc/build/gcc-fsf-mainline-pr87496-debug/gcc -O2 -S -mabi=ieeelongdouble -mno-popcntd pr87496.c cc1: warning: Using IEEE extended precision long double [-Wpsabi] during RTL pass: expand pr87496.c: In function ‘foo’: pr87496.c:4:10: internal compiler error: Segmentation fault 4 | return f; | ^ 0x1110517b crash_signal /home/bergner/gcc/gcc-fsf-mainline-pr87496/gcc/toplev.c:326 0x109e52f0 aggregate_value_p(tree_node const*, tree_node const*) /home/bergner/gcc/gcc-fsf-mainline-pr87496/gcc/function.c:2091 0x10652fa3 emit_library_call_value_1(int, rtx_def*, rtx_def*, libcall_type, machine_mode, int, std::pair<rtx_def*, machine_mode>*) /home/bergner/gcc/gcc-fsf-mainline-pr87496/gcc/calls.c:4747 0x108d894b emit_library_call_value(rtx_def*, rtx_def*, libcall_type, machine_mode, rtx_def*, machine_mode) /home/bergner/gcc/gcc-fsf-mainline-pr87496/gcc/rtl.h:4201 0x117edc13 rs6000_expand_float128_convert(rtx_def*, rtx_def*, bool) /home/bergner/gcc/gcc-fsf-mainline-pr87496/gcc/config/rs6000/rs6000.c:21918