This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug other/67841] New: Can't use vector registers if all vector registers are callee-saved
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 04 Oct 2015 17:38:44 +0000
- Subject: [Bug other/67841] New: Can't use vector registers if all vector registers are callee-saved
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67841
Bug ID: 67841
Summary: Can't use vector registers if all vector registers are
callee-saved
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
Assignee: unassigned at gcc dot gnu.org
Reporter: hjl.tools at gmail dot com
CC: julia.koval at intel dot com
Blocks: 67552
Target Milestone: ---
Target: x86
[hjl@gnu-tools-1 interrupt-1]$ cat y.i
typedef float xmm_t __attribute__ ((__vector_size__ (16)));
extern xmm_t x, y;
void
__attribute__((no_caller_saved_registers))
fn (void)
{
x = __builtin_ia32_addss (x, y);
}
[hjl@gnu-tools-1 interrupt-1]$
/export/build/gnu/gcc/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O2 y.i
y.i: In function âfnâ:
y.i:10:1: error: unable to find a register to spill
}
^
y.i:10:1: error: this is the insn:
(insn 6 12 13 2 (set (reg:V4SF 92)
(vec_merge:V4SF (plus:V4SF (reg:V4SF 92)
(mem/c:V4SF (symbol_ref:DI ("y") [flags 0x40] <var_decl
0x7fde708f0990 y>) [1 y+0 S16 A128]))
(reg:V4SF 92)
(const_int 1 [0x1]))) y.i:9 1410 {sse_vmaddv4sf3}
(expr_list:REG_EQUIV (mem/c:V4SF (symbol_ref:DI ("x") [flags 0x40]
<var_decl 0x7fde708f0900 x>) [1 x+0 S16 A128])
(nil)))
y.i:10:1: internal compiler error: in assign_by_spills, at lra-assigns.c:1431
0xceef23 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
/export/gnu/import/git/sources/gcc/gcc/rtl-error.c:109
0xbb54ba assign_by_spills
/export/gnu/import/git/sources/gcc/gcc/lra-assigns.c:1431
0xbb5e1d lra_assign()
/export/gnu/import/git/sources/gcc/gcc/lra-assigns.c:1606
0xbaf6f7 lra(_IO_FILE*)
/export/gnu/import/git/sources/gcc/gcc/lra.c:2343
0xb5c4f5 do_reload
/export/gnu/import/git/sources/gcc/gcc/ira.c:5391
0xb5c8a8 execute
/export/gnu/import/git/sources/gcc/gcc/ira.c:5562
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.
[hjl@gnu-tools-1 interrupt-1]$
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67552
[Bug 67552] [meta] x86 interrupt attribute