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.

Reply via email to