https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86133
--- Comment #1 from Kiran Alladi <kiran0802 at gmail dot com> --- I am trying to compile the code with -mno-spe but still it seems that compiler is generating spe instructions. ~/kiran$ cat test.c double var_double = 0; long var_long = 0; void my_func( double var_val ) { var_long = (long)(var_double); } ~/kiran$ powerpc-eabi-gcc-6.4.0 -mcpu=8548 -G8 -msdata=eabi -mhard-float -mno-spe -c test.c test.c: In function ‘my_func’: test.c:7:1: internal compiler error: output_operand: invalid %y value, try using the 'Z' constraint } ^ 0x785f50 output_operand_lossage(char const*, ...) ../../gcc-6.4.0/gcc/final.c:3409 0x78628c output_operand(rtx_def*, int) ../../gcc-6.4.0/gcc/final.c:3843 0x786ddb output_asm_insn(char const*, rtx_def**) ../../gcc-6.4.0/gcc/final.c:3740 0x788344 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ../../gcc-6.4.0/gcc/final.c:3015 0x788e41 final(rtx_insn*, _IO_FILE*, int) ../../gcc-6.4.0/gcc/final.c:2045 0x7892ed rest_of_handle_final ../../gcc-6.4.0/gcc/final.c:4441 0x7892ed execute ../../gcc-6.4.0/gcc/final.c:4516 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. ~/kiran$ powerpc-eabi-gcc-6.4.0 -v Using built-in specs. COLLECT_GCC=powerpc-eabi-gcc-6.4.0 COLLECT_LTO_WRAPPER=/home/cross_compiler/powerpc-eabi/6.4.0/install/libexec/gcc/powerpc-eabi/6.4.0/lto-wrapper Target: powerpc-eabi Configured with: ../gcc-6.4.0/configure --prefix=/home/powerpc-eabi/6.4.0/install --target=powerpc-eabi --enable-languages=c,c++ --disable-multilib Thread model: single gcc version 6.4.0 (GCC) ---------------------------------------------------------------------------- Respective assembly(test.s): .file "test.c" .globl var_double .section ".sbss","aw",@nobits .align 3 var_double: .zero 8 .size var_double, 8 .type var_double, @object .globl var_long .align 2 var_long: .zero 4 .size var_long, 4 .type var_long, @object .section ".text" .align 2 .globl my_func .type my_func, @function my_func: stwu 1,-24(1) stw 31,20(1) mr 31,1 evstdd 3,8(31) evldd 9, I had also tried with -G num size less than 8 and the compilation with through without any errors. However, in this case compiler is generating spe instruction even with -mno-spe option.